Long before starting Kyusl, I was asked, during a job interview, what platform (or language) would I use for a project if I was free to choose? It sounded funny first because we are never free and that’s what I said first. I remember that then I finally answered “.NET” because at that time it was still new and I wanted to learn it. Microsoft provides the best documentation when compared to anyone else, but unfortunately, .NET locks you into one OS. Yes, I know what Mono is, but it’s not 1:1 port.
With Kyusl, I don’t remember having any problem to make up my mind. I didn’t use PHP and MySQL at the time for anything bigger than “Hello world”, and had to learn starting from basics. For simple scripts at work and at home, Python is my favourite, but to create a Web application, the choice of PHP was almost obvious.
One of the main questions that you have to answer is what kind of hosting plan can you afford. You can always find a niche company offering support for the most exotic software, for a reasonable price, but what if you are going to move? Actually, those days you can easily get a virtual private server and install any software you want. It’s how Kyusl.com is hosted, but doing things, say, in beautiful Python would be a pain because most of Web libraries it offers are developed and supported by small communities and most of them are moving too slow. So, unless you commit to the workload of maintaining the software on VPS all by yourself, you have to choose among “standard” offers. They are normally ASP.NET for Windows-based or Perl/PHP (plus MySQL) for Linux/UNIX/BSD-based hosting, plus Java. The latter has normally higher price tag, though, and even JSP, if you count all the works behind (the created servlets), looks too heavy. All of them, however, are widely and wildly supported, with huge communities and huge choice of libraries and tools.
So, after calming any political thoughts about choosing the language, I started with PHP. The first couple of months were hard because I never used those languages full of dollars. Now I can easily produce dollars when they needed, though I will probably never get the idea why using them in (originally) Perl and (in Perl’s descendant to some extent) PHP to indicate your intent and distinguish between different way of interpreting data is sooooo important in our life.
Another (less important) reason to choose PHP over overhyped things like Java was its “environment friendly” system requirements. Even if you don’t use any IDEs, running a heavy tool plus a Web server in background would bring my then four year old home computer to a complete halt. Forget the modern IDEs wasting 200 megs of memory right after start, even without doing anything useful! I coded the HTML layout myself simply to have more flexibility and control and without having to learn yet another library just to hit the wall of its bugs and limitations several months later. This way, all that you need is a decent editor (the choice is also almost obvious) and probably a couple of scripts to manage tasks like backups until you grow to the point where the real version control is needed.
Now, when the first version is running, it seems like I have made a right decision. The most important thing is that even if you are completely free in your choice, you have to take a pragmatic approach, even if it will result in starting from basics.