I've been thinking about web development platforms a lot lately, and wondering how organizations without access to a lot of technical resources distinguish between platforms when faced with proposals that might span quite a range.
In my "
Build vs. Buy " post last month, I talked about how mature some kinds of web platforms are (such as CMS, CRM, and others) and how one should exhaust all "buying" options before considering building. But if you choose to build, you will invariably be faced with questions like:
- If a vendor is suggesting custom development, does it matter whether they are using frameworks such as Ruby on Rails or CakePHP , or not?
- Does it matter whether the application is written to run on UNIX (most often LAMP ) or Windows?
- Does it matter whether they will be writing their code in PHP, Python, Ruby, Java, or .Net?
Of course, I can't possibly begin to answer all of these in a single blog post. And I'm choosing to be agnostic in this post (I for sure have my opinions on the matter.) The programming language question is, generally, more "religious" than rational (with some exceptions). But here are a few bit of guidance that might help:
- Maturity: how mature is the framework/language? Has it been around a while? Are there lots of users and developers? Examples of the other end of maturity are the proprietary language/platform ColdFusion, which is ebbing in use and popularity, and what used to be the web programming language of choice, Perl, which has now been relegated to the trash heap (for some very good reasons.)
- Support: will you be able to find support for your project beyond just the vendor who will implement it? Are there user communities, and other vendors and consultants who use it? How big is that community? How many others support it? This might be an issue when selecting a vendor who a platform in a language (like Ruby or Python) that is not as widely used as a language like PHP.
- How does this jive with other systems that you have? (For instance, if you are a completely Windows shop, and you are implementing a web project internally, it might make a lot of sense to choose a Windows platform based on .Net.)
- What kind of scalability/robustness do you need, and will the platform/framework/language handle it with ease?
- For custom development: these days, the availability of frameworks such as RoR and Cake (there are many others) means that development time can be significantly shortened. If a vendor is suggesting custom development without using a framework like this, it might be worth asking why (they might have built their own libraries over time, etc.)
There are times when platform will matter - depending on the resources available and the requirements of the project. But all of that said, I would argue that for many projects, platform doesn't matter nearly as much to the nonprofits who will be using the web applications as it does to us geeks who have chosen the platforms we'll work with for our own sets of reasons.