Robert Scoble has an interesting post on Django, which is a framework for Python that makes creating web applications easier, as does Ruby on Rails for Ruby. The interesting part is not so much the post but the comments from his readers.? As is often the case, people are very passionate about the tools they use either because of the language it supports or the bias they may have toward the framework.? This is very evident by the numbers of people following Ruby on Rails, where the followers treat Rails more like a religion than a programming discipline. I think too often a developer chooses their tool based on current popularity rather than on the technology it uses, the problems it solves or how the tool?fits? to the problem at hand.
Picking a tool
I choose my tool(s) on differing criteria but follow these guidelines:
- How well do I know the language? – Ruby may be the best tool for the job based on how a certain aspect of the language may more easily solve my problem, but if I don’t know Ruby very well there is no since in jumping on Ruby just because someone else said I should.
- What is the community support like? – This is big when it comes time to running into a problem, and you will.? Is there a group of forums to post questions?? IRC Chat Channel?? Source code repository of
- What type of third-party tools are available?
- What operating system does the tool run on?? – This one has been a big one for me.? I am a Windows developer and there are times where a project could be run nicely on Ruby on Rails on a Linux box but working alone or with my other Windows developer friends, I can’t justify trying to put the project on Linux when none of the supporting folks know the operating system.? Knowing the operating system is just the surface, you have to know the web server (usually Apache), the database (MySQL), and various deployment mechanisms.
We have biases and this is natural as we typically use what we either like or know and what has worked for us in the past.? This is an inherently bad way to solve a problem as oftentimes we try to put?square peg in a round hole.? I am guilty of it but I try to be more open minded as my knowledge and awareness of languages and frameworks grows.
Back to Django
I have played with Django on several occasions and in looking at the developer’s site it appears it was created with the newspaper publishing business in mind.? Maybe this tool would be best suited for putting a newspaper or magazine online or even a great tool for creating the next Content Management System (CMS).? Who knows, but I am sure it has strengths we won’t know about until we give it a fair shake.? I for one plan to do so once I figure out how to run it under Windows and IIS. I ran across a project called XAMPP which gives me the ability to run Apache, MySQL, Perl and PHP on my Windows system all pre-configured much like InstantRails does for me.? The XAMPP project also has a Python add-in so I can run Python under it too.? So, I am most of the way there and I am sure someone has done it.? If I dig around the Django site maybe I will find a recommendation as the best way to accomplish this task. It looks like there are a good number of sites running Django as well, check out Djangosites.org. Of course it is probably in my future to become versed in Linux and use it to my advantage, we will see.
I think keeping an open mind when choosing a tool, language, framework or even an operating system is essential.? Our clients count on us to pick the best tool for the job.? Ideally we should not shout “.NET Rules” from the rooftops just because it is the tool we favor.? I know everyone knows this already but sometimes it helps to hear it again.