iToto's Blog

A Montreal based full-stack web developer who loves learning and trying out new things. This blog is my attempt to document my work as well as a place to discuss ideas or topics that I find interesting. Feel free to follow me on linked social networks.

Time for a change

DISCLAIMER: This article isn't an attempt to start a flame war with php enthusiasts, this is just my honest opinion.

I've been developing in PHP for the better part of 5 years now. Yes, I have touched other languages in my career, but most of my development has been in PHP because there was more of a demand for it.

After five years I've come to a conclusion: I don't like it.

Yes PHP has an easy syntax and a small learning curve. And I know you can quickly build big and complex applications. It's resemblance to C makes it a good language for learning as well. Hell, if you've done even a little bit of C, you can hack up some web app in PHP. But I found that it's strengths are also some of its weaknesses. Because it's so easy to pick up, you end up finding a lot of projects without and proper development style/pattern. Those end up being some of the hardest and worst ones to work on.

Furthermore, as I'm maturing as a hacker, I'm starting to see the beauty in strong typed languages. I've been hacking with Go lately (if you haven't tried it yet, I suggest you give it go - ha!). After working with a strong typed && compiled language, going back to PHP is like going from Tolkien to Seuss. It just feels so much better reading/writing code that tells you what everything is and is supposed to be. Not to mention the speed difference between a compiled language and an interpreted one is un-comparable.

So it's clear to me now that I'm in search of a new fast, strong typed web language to master. My problem is, I don't know which one to choose. Go is really cool so far, but it's still fairly young - although being backed by Google does have its advantages. Another language I was thinking of picking up is Scala. Even though it runs on the JVM, I've heard great things about it.

So I turn to you, my fellow developers. What language do you suggest I try?