ARCHIVE

In a matter of a week, I’ve been “trolled” twice - I may be exaggerating a bit here - on Twitter by two very serious and talented developers: @dhh (creator of Ruby on Rails) and @JBossMike (a core engineer at JBoss).

The DHH incident

First, I got a bit pissed at @dhh for this tweet:

I could have let it go but it was not the first time I saw a Ruby developer bashing PHP about it being simple or messy or not professional.

So I answered with:

and got his attention with:

The discussion went on for a while but basically, @dhh said he admired PHP for its original simplicity but it shouldn’t have evolved toward OOP.

Discussing with Mike Brock

Then today I had a Twitter conversation with @JBossMike who reacted to this tweet of mine:

Basically, he took offence of “ROFL” associated with Java - or maybe because I made fun of his colleague’s article - and spent a surprising amount of time listing how much Facebook, Twitter and especially Google were using Java and how much Java is scalable. I can’t argue with that, he probably knows better than I do what language is used at Google and it’s absolutely true some very scalable tools like Cassandra or Hadoop are coded with Java.

Scalability is not the only criterium

But, like @dhh, @JBossMike missed my point or ignored it. There is a good reason Google was initially using Python. Facebook still uses PHP heavily and Twitter was created with Rails.

The reason is those languages and their ecosystem allow for a quick development and are easily deployable. I’m no Java expert but I’d suspect Java doesn’t perform as well on small architectures as those 3 languages. I’d also suspect that in order to deliver a working prototype of Facebook, Google or Twitter, the amount of code/work necessary in Java is higher. And finally, I think Java developers are more expensive than their fellow developers specialised in PHP, Python or Ruby.

Silver bullet

“Oh look what he’s done in this last chapter, he’s trolling Java!” Maybe but I just wanted to prove that Java, like Ruby (and Rails) are not the silver bullet that solves every problem. I could go on about Java, even though I know very little about it and not be that far from the truth. I mean, the article that started the discussion with @JBossMike is referring CoffeeScript replacing JavaScript. Like Scala is replacing Java? “Java is a strongly-typed language so it’s more maintainable and failure-proof” I’ve worked several years with very talented C/C++ developers and they still had much more difficulties refactoring their apps than me with my MVC framework written in PHP. Strongly-typed has nothing to do with code quality or maintainability. It happens I’m reading Clean Code again. All the examples are in Java but I can’t remember an occurrence where Uncle Bob refers to Java being strongly-typed having anything to do with writing clean code.

You’re not your code, you’re not your language!

You know why Cassandra or Hadoop are written in Java? Because they’re developed by better developers!

Yes they’re better developers, more experienced, more trained, more schooled. But they’re not better because they use Java. Those guys just tend to have learned Java early in their career and feel comfortable using it.

But you know what? Two of the best developers I know are not Java developers (I mean Java is not their prefered language). Fabien Potencier is the creator of the Symfony project (among other PHP projects) and Douglas Crockford created JSON and wrote the most educating book about JavaScript: JavaScript: The Good Parts.

The language you’re using doesn’t tell me how good a developer you are. That’s not because you’re a Java developer or a Ruby developer that you know better than Fabien or Douglas about anything. Actually it’s more impressive for someone to master a flawed language (and PHP, JavaScript, Perl are majorly flawed) than to master strong languages such as Java.

To DHH and Mike Brock

Finally, to answer directly to DHH and Mike Brock, I know why you took some time to argue with me on this topic. You, more than others, invested a lot in your respective language and you have all the reasons in the world to try to convince people it is better than PHP, Python, JavaScript or Perl. Lincoln’s article is just about proselytising Java. The more people you convince other languages suck, the more product/expertise in your preferred language you’re gonna sell to them.

But face it guys. PHP powers much more web sites than Ruby and Java:

![Server Side Programming Languages](/content/images/2015/02/server_side_programming_languages.png)

And against the odds - and Java applets, VBScript and Flash - JavaScript, as flawed as it is, is the de-facto browser’s language (I’m not convinced yet it’s an appropriate server-side language but node.js and SilkJS are promising).

Your languages are strong but not that strong.

That’s all trolls!

That’s the last time I’ll spend time on this holy war of languages. We got the same argument with web browsers and operating systems before that. And actual religions before that.

People tend to take offense when you criticise their preferred language the same way they’d take offence if you criticised their culture or religion. So don’t do it, that’s petty, mean and counter-productive.

You’d better spend your time developing great apps instead, whatever language you use.