Ramblings of a Code Monger

The weblog of some guy named Cameron Cox

Posts Tagged ‘merb php rails ruby zend zend-framework technology fram

The Zend Framework sucks, and why I’m moving to Rails.

with 6 comments

Updated December 17th: For those who think this is rails/ruby vs PHP, you’ve missed the point.I said it, the Zend Framework sucks, I really tried to give it another chance, but in the end, I got frustrated, said a few not so nice things about someone’s mother, and I gave up, again. I was hoping things had gotten a slight bit better, but you know what? Screw it, I’m going back to ruby, and rails, and merb, which is the new thing, and looks awesome.So, why you ask did I become frustrated, and say not so nice things about someone’s mother? Well I could probably name reasons until I’m blue in the face, but I’ll give a few that are pretty much ones that’ i’ve noticed people I talk to mention, or at least agree with me on.

(1) Rushing = Bad, unless you’re a football team

Seriously, 1.0 was in my opinion a huge farce. It felt half-done, and extremely rushed. No fault on Bill’s part, he did the best and then some with the resources available. However, I 100% blame Zend, they had a lot riding on the 1.0 Release. After all, It is their name thats gonna have mud on it if they didn’t deliever, after all the hype into how 1.0 would revolutionize creating applications with PHP.Congratulations, You revolutionized something all right, a big ol stinker. I actually hate dealing with PHP now, well, I never exactly liked it, since PHP itself is another huge farce, but I won’t touch that one (I’m already on thin ice with some people now, most likely =D). Features like partials, and layouts: missing and non-existant. Sure, they’re in trunk now, but they’re about 1.0.3 releases late.One other thing, 1.5? You must be joking? There is no excuse to jump from 1.0.3 to 1.5.0, partials and layouts are not that big of a change. Get bent.

(2) Code Quality… not so great

Ok, so I realize not everyone is an expert, and that there is community contributed code in the framework, which is fine. But it’s certainly no excuse for not going back and cleaning said code up. For that matter, it’s also no excuse for having standards written out, then flat out ignoring them. If protected and private variables and methods are to be prepended with an underscore, then fucking prepend them an underscore. Consistancy, it’s a very important thing.Another thing, and this is a gripe of its own about Zend_Cache, which, on its own, is another giant farce. What the hell is with hard-coding which backends and frontends I can use? Security? It must be, which honestly, is the dumbest thing i’ve seen. Guess what, its a caching system, if someone is using it to run bad code, chances are I have a lot bigger issues at hand. Also, The Sqlite backend is crap; actually, all of Zend_Cache, is crap. Rewrite it, seriously.

(3) Ok, you blockhead, pick a standard convention, and enforce

Seriously, convention is king, look at rails, pretty damn successful, and oh hey, they preach one standard, that works. Flexible, somewhat, but the general rule is, you work with the framework, bending it do your will only results in looking like a fool, and a huge idiot in front of the internet (  cdbaby anyone?).Also, claiming it’s not the “PHP” way, is a load of crap. The “PHP” way is fundamentally broken, it’s the reason why people can write something without understanding what the hell they’re doing. Which results in a lot of bad code, and a lot more idiots claiming to be “experts”. Quit giving these idiots an inch.

(4) To the one person who says “Do something about it”

I’d love to, however I have better things to do then propose changes, and patches and pray they don’t get steam-rolled by some committee because it doesn’t fit in with their marketing guidelines, or god forbid, breaks BC.

(5) Do I have a point?

Probably not, I’m just venting, so if you don’t like what I have to say, I think you’ll live.

Written by Cameron

December 15, 2007 at 8:39 pm

Posted in Uncategorized

Tagged with