The Future of Web Development
I have been developing web projects for the last 7 years. For me, stepping from a more than 18 years’ experience in ‘regular’ and pretty complex programming (C/C++, Pascal) to the development of web applications, was an easy step. Taking into account the complexity of building a windows application 10 years ago, developing applications on the web at the beginning was an easy task. However for the last few years web applications have been getting more and more complicated.
In an interview of Larry Wall in 1998 (creator of the Perl programming language), he said "Take a good look at what you want to do, and try to come up with the long-term lazy way, not the short-term lazy way". So how can we apply that?
I have been using mainly PHP as my first choice for developing Web applications. It is an easy to use language, with a lot of native capabilities, with both linux and windows servers’ support and lots of flexibility. I am not against ASP or any other web programming language. Each of those languages has its advantages and disadvantages – as with most things in life. It is just a matter of choice for different reasons, but this is not the topic of this article.
So how to apply Larry’s long-term lazy way? I would say that that concept behind this idea is the building of strong foundations that will result to an easy development of new applications and an easy extension of current applications – and thus to a more effective use of time. Isn’t it the same concept behind going from machine language to Assembly or to C or Pascal, or going from procedural programming to Object Oriented Programming?
If we take this concept to web programming and more specifically to PHP programming we will then refer to frameworks. Wikipedia defines a framework as ‘a basic conceptual structure used to solve or address complex issues’. In other words it means that you get a set of pre-made functionalities (scripts) that you will base your application on.
Here I will mention a few advantages of using a framework:
1. Structured code following the Module-View-Controller logic. By keeping separate the data, data manipulation and display, you will find that it will become much easier to modify templates or underlying code.
2. Bundled classes that extend PHP functionality. From handling strings to managing databases and files, numerous of pre-made functions that will help in common tasks.
3. Easy to write your code by following specific standards. As a result your code will be uniform and bugs will be resolved faster. It will be much easier to find out where the problem is.
4. Attractive clean URLs. We are used to the ‘clean’ URL feature of the most popular CMS (Drupal, Joomla etc). Using frameworks you can incorporate that functionality to any of your custom developed sites.
5. Finishing coding faster and more efficiently. A framework is designed with a purpose in mind ‘Make things easier, help you focus in the whole idea rather than tiny details of the coding’.
There are a few PHP frameworks out there (Zend, Symfony, YII, Codeigniter, Cakephp, etc), with Zend Framework on top of them in my opinion – although many will disagree but I will explain more about my choice in another article.
As Zend Framework ‘describes itself’: "Zend Framework framework is a simple, straightforward, open-source software framework for PHP5 designed to eliminate the tedious details of coding and let you focus on the big picture".
In order to decide which framework will be your choice, I would suggest you make a demo with different frameworks and see which one suits you best. Most of the ones mentioned are popular frameworks, with lots of plug-ins and a fairly big community support. So at the end it is up to you!
I will finish this article with a suggestion for those that are not already using a framework, to investigate more on that option and I promise it will save you a lot of development time and increase the quality of your web applications …