Chris Tankersley

Yes, the Zend Framework is Complex

Posted on 2009-09-18

[caption id="attachment_218" align="alignright" width="150" caption="Photo by steveluscher (via Flickr)"]Photo by steveluscher (via Flickr)[/caption]

Over the last few days, I've seen two discussions on mailing lists that I subscribe to. One was on the Zend Framework MVC list and the complexity of Zend Framework and and the second was on the OpenBSD misc mailing list on the degradation of the computer industry as a whole.

I've been programming for as long as I can remember, starting with BASIC on an old Tandy that we just happened to have since my father worked at Radio Shack years ago. From there I had a dry spell until the web started to take off and I learned HTML (yes, it isn't a programming language but a markup language, but humor me). Javascript was about as tough as I would get until dabbling with some C++ books during high school.

During college I was blessed with having a great teacher that taught me one thing: Programming is an art, and it takes patience and learning to get it right. I had him for two years across multiple languages (COBOL, RPG ILE, Visual Basic .NET, C++, C#, AS/400 CL) and every single class was the same thing, just a different syntax. Why?

He was teaching how to program, not how to slap some language verbs together and get a running program. A programming language was nothing more than a tool, and there is a reason that there are so many languages out there. Define a problem, pick the appropriate language(s), and develop a solution. VB isn't the answer to everything, and neither is C#, Python, or PHP. If you need a quick and dirty Windows app, use VB.NET/C#. Need a web app, pick Python, PHP, or .NET.

Of course, a major part of learning the art of programming is the ability to troubleshoot. If code isn't working, it is a programmer's job to find out why. It is also the programmers job to keep on learning and diving into the more complex nature of languages to better themselves, their code, and their ability to move forward.

My favorite language thus far is PHP. The strength of PHP and its weakness is that PHP allows anyone to pick up the code and develop extremely powerful web applications (or desktop apps if one is inclined) with little knowledge of what they are doing. One doesn't need to know what they are actually doing when there are multitudes of tutorials out there that just spoon-feed up-and-coming 'programmers' solutions. Take a look at stackoverflow.com's PHP questions and you'll see what I mean.

The main gripe of the original author of the Zend Framework thread was that Zend Framework was too complex to be useful to new programmers. No, it isn't. Zend Framework is complex and hard to use to programmers that are lazy and can't be bothered to actually learn what is going on with the tools that they are using (though I will admit I still am dismayed at the new Bootstrapping process, but just because I don't like it doesn't make it hard, and I see where it is going).

Each new version of Zend Framework is more complex than the last but that is a trade-off of progress. As a programmer this should not be an issue. You have the source code and what I consider some of the greatest documentation for a framework out there, and there are some great people leading the team. If a framework and its core principles are too hard, either switch frameworks/languages or learn. Don't complain (unless it's a bug, but then ZF is open source so just fix the bug).

*Just as a note, I'm not saying that function-based programming is any easier or better. The Drupal and Wordpress source code can be just as complex as the Zend Framework and it's OO-based approach.

Comments

Categories: Programming