--> -->
Messaging

Archive for the ‘Technology’ Category

Agile application development

Wednesday, June 21st, 2006

When it comes to developing web applications, using open technology is always the best business decision. New technology now means we will be able to do more for our clients.

As a web application developer, I’m faced with an essential decision: Microsoft or the open source crowd? With the former, if I choose to write all my web apps in Visual Studio .NET, then I’m limiting myself to the kinds of server I can eventually run that software from. With open standards, I can run it on anything from the latest Windows server to the 8-year-old 486DX chugging in the corner. That’s because open source software is maintained by thousands of independant developers around the world, and openness is their mantra.

Currently, the best-regarded toolset for developing Web applications in the open source world is a combination of the Apache web server, the PHP scripting language and the MySQL database server. In particular, PHP is the driver of the entire suite, because it’s the conductor in the whole orchestra: it controls what you see on a web page, calls information from a database to display, and responds to user input. PHP is so popular because it’s insanely easy to learn.

The language is extremely flexible, but this flexibility is also a burden. For every well-built application out there on the Web, there are dozens of shoddily-built, insecure applications that get the job done, but do so only when conditions are just so.

And here’s the confession: I’ve built some of those apps. In the heat of development, when deadlines are put before most other considerations, I’ve pushed an app out the door that is not architecturally sound. It always makes me cringe, but it’s the power that PHP gives to me, and I take it. So sometimes I spend time after the job is done, patching holes and making fixes. This costs me time… and in this business, time is money.

You wouldn’t be hearing about any of this, except that I may have found a solution. For the last couple of years, a framework has been under development by another Web agency based in Chicago called 37Signals. It’s called Ruby on Rails. It’s not based on PHP, but another scripting language called Ruby. I’m learning it now, and I can say that it imposes far more order than PHP lets me get away with.

And the Rails framework — the toolset that provides the means to create Web applications — is extremely strict. It provides the means to create the functionality I want, such as a content management system or mail handler, without sacrificing security. Why? Because all the boring, hard-to-implement stuff, like form validation (so malicious users can’t enter javascript coding instead of their email address, and crack the application) are handled automatically.

Rails also provides a new paradigm for web development, that firmly separates the database, from the programming logic, from what the user sees. Which means that I can work on one element without affecting any other. That’s agile web development, and it promises to make my job not only easier, but more cost effective.

Rails is also open source, and uses Apache and MySQL, just like PHP. That means I can install it on any Web server.

The verdict? I’m learning it now, and expect to move my application development to Rails by year’s end. If you’re a client of mine you shouldn’t notice too much, except that your web apps will happen faster, be more secure, and include some surprising functionality. To me, that’s a huge win.

Posted in Technology | No Comments »

Close
E-mail It