Yes, you read it correctly. After years (approximately 13) of using PHP as my go-to tool for web development, I decided to ditch it. It was becoming more and more of a nuisance and when I got more into C# and Java development lately, PHP started to really feel like a incoherent mess. I read some extra resources about it and the Bad Things I experience are not only experienced by others, no, the PHP mess is even bigger. So I decided to ditch it completely. The first thing of course that pops in your mind is: what next? Which language fits the needs that were filled by using PHP? So I wrote up a little list of features this other language should have for the best transition:
- Good templating. I always use Smarty when I program in PHP (that is, I do now, in the past I have written a lot of bad
- Good database support. For now, MySQL will do, but I am in the process of ditching that as well, in favor of PostgreSQL. I still want to be able to use my current databases.
- Apache integration. I cannot afford to run a specialized application engine on our servers. Many sites still use PHP (like this one). It has all to be combined.
- Good library availability. To make real-world applications, XML support, XLS/PDF generation, image generation, etc is mandatory.
- Good documentation / community to go to to find stuff out or ask questions when I am stuck. (This is one of the good things of PHP; the documentation is good and there are many people out there that can help you.)
I put this all in a question on Stack Overflow, but also found out, as I already should have known, that these kinds of questions are not a good fit for the site. Thankfully the remarks gave me enough to start digging a little further. Two languages that immediately pop to mind are Python and Ruby. So let’s start with those.
First Stop: Python
Installing / configuring
In my PHP-minded mind, I started to think
mod_python was the way to go, but I immediately get reminded that
mod_wsgi is a better fit. So I set upon installing and configuring that, which is quite a breeze on Ubuntu. It is right there in the repositories so no need to compile anything. Apache accepted the module easily and configuring it to run an example worked right away. So: installing Python in my Apache server: +1. Now it is time to get up to speed with my Python, which will take some time. Next post, I’ll see if I can get a simple database connection going.