Language Fanboyism

Jul 7, 2012 19:00 · 771 words · 4 minute read

This is an opinion and a rant based on my opinion and observations, you have been warned.

As a programmer, I see this a lot. People so engrossed in their language that they don’t see its problems or shortcomings, and in turn think every other language, new or old, is bad and will never match up. I sit in a lot of programming language channels on Freenode, and the way I see people defend their language of choice or completely dismiss other languages is baffling. I just don’t get why people CHOOSE to lock themselves in to a language so deeply that it becomes like a religion. I even have seen some people say they have only learned that one language, and won’t learn anything else. At my heavily Java focused school, I even heard a student say, “Well, I want to be a good Java developer, I have no care or interest in any other language or concept” as I was walking out of the room with WTF moment in my head.

One primary and quite universal example is stuff made by Microsoft. Even at the mention of C#, F#, CLR, .NET and people grab their pitchforks and are ready to lynch you for heresy. Most also seem to relate .NET and CLR directly to being Windows only, or Microsoft evil. Most don’t understand or know that C# and the CLR are ECMA standardized and Microsoft has made a public community promise to never try to do anything evil with it. You can safely peruse the promise on Microsoft’s site , don’t worry, it won’t defile your hard drives or require an exorcism of your computer when you are done. On top of that, many in the open source community don’t even know of the Mono project, and the incredible effort they have made to recreate the .NET framework for all other platforms. They even are fully up to date, including .NET 4.5 support on their development branch of their repo.

Another example is new languages. Recently, the Dart language was announced by Google and is in active early development. Before anyone tried it, or even checked it out, people immediately dismissed it for being made by Google. But even bigger was the screams and rioting of the Javascript community. How dare someone try to replace Javascript in the browser, or try to introduce a new language to compete with it in the browser space. Now I know it will have one of the hardest battles ever against Javascript, especially with the huge popularity boom for it and Node.js popularity. Then came the problems with Dart2js and its early development results of huge JS files. People immediately shot it down for having bugs, or being poorly optimized, regardless that it was a secondary effort alpha software for a very alpha language.

And you can go on and on about the language and platform wars that go on. Ruby vs Python vs Node for web dev? That’s its own war altogether.

But the real question is why? Are you that narrow minded? Wouldn’t it be better to strive to be a better programmer in general, know how to work with many languages, paradigms, and methods of thought, so that you can write programs that others only dream to write? This isn’t an all encompassing generalization. I know many programmers that after trying many languages, choose their language out of comfort, ease of use, and what fits them. They are fine, they have made an educated decision, and know the consequences. They also usually know the limitations, problems, and shortcomings of the language well enough to work around them or with them. I am mostly talking about the programmers that follow like sheep to the “in” thing. Or without knowing enough, jump into something, proclaim it as the divine gospel of the savior of the 1’s and 0’s, and never branch out.

I dunno, maybe I like being versatile, knowing more, bettering myself, exploring new things, and just giving everything a fair shot. Like for me personally, I hate Ruby. I have tried to use it many times, sometimes even forced myself to make entire projects with it. I just do not like it. And thats my problem, but I have come to this conclusion through research and actual use of the language.

Meh, their loss. I’ll be busy over here, writing IronDart in C# (Dart for the CLR for those that don’t know the naming convention), while running web apps with Node.js, maintaining everything with Python, processing logs with Haskell and Clojure, and facepalming at PHP. Mmm, looks good to me.