Choosing a Platform
The first step for me in starting to design and plan for the development of the new Multiblog web product is to decide what platform. To be honest, this is a pretty trivial decision for me. But, lets discuss why I’ve made the choices.
Firstly, what do I mean by platform? Multiblog the first application runs on the “Windows” platform. That’s it’s target platform, but I’m not talking about that kind of platform. I’m talking about a web application, by default the client platform is any browser any operating system. Developers for an application had better have a good reason for narrowing that down, or they are losing customers.
When we talk about the platform for a web application we’re really talking about the server side. What kind of operating system? What Web Server on that operating system? What database server? What language to develop in?
Several things will impact on this decision. What the application needs to do, how it needs to do it, where it needs to do it, when it needs to do it and budget. There are languages with particular strenghs in the what and how market. For example, for a basic data in, data out application, Ruby on Rails would be hard to beat with it’s instant building of simple forms for managing data. For an application targetted at the enterprise market, Ruby’s an unlikely choice due to it’s lack of maturity and commercial support. Java, .NET, SQL Server and Oracle occupy that space.
There’s a lot of impacts. But, I’m going to go with Apache as the host web server, PHP as the development language and MySQL as the database. Why?
Simple. This is a startup niche product. Budget is critical. I can find PHP, Apache and MySQL hosting pretty much anywhere for hadly any money. This is a platform that can scale. I know how to set it up and manage it. If this does take off, I can easily migrate up and up with that base platform.
So the initial cost is zero. Everything is free, and I can develop on my laptop at home. Or any computer anywhere, since my Apache, MySQL and PHP environment can be mounted on a USB key and wacked into any Windows box and worked on with notepad. I’ll be able to find a good cheap host to start with and swiftly migrate and scale up as and when needed.
PHP is a mature web development language, and I’m very familiar with it. So, barriers to getting things done are pretty low. I also want to pick a language that is going to be of most interest as an example. There are lots of hobbiests working in PHP. Lots of professionals too. If this is to be an example of a professional approach to web development, the barrier of entry for the audience should be low. I’d still like to follow up wtih an attempt in Python and one in Ruby for reference and comparisson, but that will have to come much, much later.
Obvious and easy choice made…
However, which version of PHP should I target? PHP4 is ubiquitous. PHP5 provides some very nice features.
Well, for reasons I hope will become clear down the line, as I explain them, I want to write an Object Oriented system. So, given that PHP4’s OO options are limited and frustrating I’m jumping in on the much less supported (in terms of available, cheap, good hosts) PHP5.
Why Apache? Why not IIS? Frankly, PHP is mostly used in Apache. It works best there. it works in other places but not as easily and readily. I like IIS as a platform. I work with it in my day job. But for a PHP project, it’s not a good choice.
Popularity: 19% [?]










April 17th, 2007 at 11:38 am
[...] already posted an article about choosing a platform for your development. I missed a very important point, when choosing a language to develop in you [...]