Jacks_Depression

Jacks_Framework Reflections

Posted: 2008.05.04 14:21

Optimal Xms has gone neglected for the past month. Likewise for the blog. To make a bunch of long stories short... Girl troubles, fixing girl troubles, building up more debt, interviewing, finishing classes, finishing up projects and starting new job. In the midst of all these happenings some things have been going through my mind about Optimal Xms and this blog. Let me first set this up by talking about my new job.

So... I got a job! I've been accused of gloating a lot about it, so I'm not gonna go into how great of an opportunity this is for me. What is most important in the pretense of this post is that they run ruby, rails and python at this new job. I have never written any code in any of these languages but they think (and I know) that I can pick them up fast.

As a result, I have started looking onto Ruby/Rails, Python/Django and about this time Google announced App Engine. So all the sudden I am kicked into a whole new world of web dev software. I have spent the last year perfecting my C#. I actually miss learning new stuff. However I am kicking my self right now for not learning anything new, but not really.

I am glad that I have been working on C# for so long. If I hadn't then I would of missed the past few months where I learned a ton about plug-ins, interfaces, abstract classes and application domains. I knocked a lot off my list of things that I want to learn. Things that remain are: compiler directives, socket/network programming and more binary work. And I was quite ecstatic about Optimal Xms. It was looking and working great.

On the other hand, I looking at all these other Website Frameworks are doing something very similar to that I have been doing. At first I felt like I was competing against Rails and Django. I don't stand a chance against them. After all I am only one Man. (Ok, maybe 1.2 Men) So at this point in the story I am giving up on Optimal Xms. I am prepping an official "I give up" post. I would not mind dumping all the work up until this point. It was a learning experience after all.

Then I started to look into Ruby/Python more. Somehow I did not release that they are both interpreted languages until I wrote my first app. I hate interpreted languages with a passion. I mostly hate them because they are slow. I checked some benchmarks thanks to The Computer Language Benchmarks Game. C# (Mono) is 64.8 times faster then Ruby (on average) and 18.3 times faster than Python (on average). Memory usage seems to be the same. However, the xml/sql format that Optimal Xms stores instructions in would make it interpreted. However, I would move to say it is strongly interpreted. The framework was designed to be as small as possible. At this rate it is not looking too bad in my opinion. I can probably make a Ruby/Python version of Optimal Xms if the public demands it. Additionally, unlike Rails/Django, Optimal Xms was designed to be edited by non-programmers. This puts my framework in a whole different class. This is truly something that is unique. So calling it an Xms (eXtensible Management System) seems a much better match than a Website Framework. Optimal Xms is still alive for now.

Google App Engine! It is just a customized version of Django. I have learned a lot from it thus far though. It is designed to be extremely scalable. I bet Google plans to charge for this service in the long run. It was clearly designed to be a processing powerhouse. The application is limited by how much CPU usage it takes in a month.

I was looking up how to store and read database and I found google is using something they call GQuery. (Google Queary I assume) That will balance the load and pull from what ever server has free usage. The term scalability never really sunk in until that point. I finally understand what it means to have a scalable application. You better bet that this is in the list of goals for Optimal Xms.

More to come from Optimal Xms. Not yet though, I gotta get caught up on Ruby/Python for work. This blog might be fully functional one day.