Update

Ok, so here’s where I’m at. I’m over Rails, done with it, caput. It’s got the greatest ideas, but the implementation is lacking. Many of the most common ideas are easy to implement elsewhere (Like PHP’s Adodb Active Record as one example). So my interests have floated back to PHP. I’m still a big JavaScript and XUL fan, and have been playing around with Dojo and Prototype a lot and have been able to accomplish a lot. And PHP and other languages have matured more than Rails, and you don’t end up with bizarre errors that are unhelpful, impossible to google with, and just silly when you learn the problem(the gem didn’t fully uninstall itself and ended up causing problems with the new version). I don’t consider wiping out all of my gems, ruby, and all rails stuff and doing a fresh reinstall “fixing” a problem. It’s more like whitewashing over an existing problem. To those who enjoy Ruby and Rails, keep going after the dream man. You have my support. It’s a great testbed for new ideas, and I had no problems with Ruby itself. Oh, and Rails people, if you haven’t yet, put spam controls on the Wiki. It’s used by lots of people but having to go to an earlier version every time you load a page is really a pain in the ass.

But PHP I’m finding is lacking something, a big something. Multithreadedness. Before, simple apps, simple servers, no problem. Now I’ve done work on 8 core machines, and find something that takes 20 minutes to run(typically statistics), but I could be using 2 or more of those cores and it would run that much faster. Sometimes there are ways around this that are simple, other times there are not. You can always break up one request into multiple request, since Ajax is Asynchronous. Sometimes you can execute each thread separately and have it randomly pick another server(in the case of Clusters) to do the work on or with. Not that I’m a multithreaded master, but I’ve done some before in C++ and I know the benefits. Sometimes it’s a good idea to make one request, rather than many, and keep the thin client, well, thin.

A good way around the lack of threads can be found here.

PHP6 doesn’t hold any promise for my current dilemma, but it has lots of new great features. I’d hate to learn another language just to be turned off to it.

There also looks to be a good implementation of threading here, but I would prefer more built-in approach. So I’m not giving up on PHP, far from it. For 90% of what I do it fits the bill perfectly.

I’ve been thinking of .NET or something, which has *nix support from mono, but I don’t care for the heavier languages unless there is serious advantages. ASP.NET is far from what I have intention of doing. I’ve always been averse to python but it could be time to look into it.

Posted: February 1st, 2008 under AJAX, PHP, Ruby on Rails.
Comments: none

Write a comment