Why [Programming Language X] Is Unambiguously Better than [Programming Language Y]

Recently I have seen a lot of people wondering about the difference between [X] and [Y]. After all, they point out, both are [paradigm] languages that target [platform] and encourage the [style] style of programming while leaving you enough flexibility to [write shitty code].

Having written [simple program that’s often asked about in phone screens] in both languages, I think I’m pretty qualified to weigh in. I like to think about it in the following way: imagine [toy problem that you might give to a 5th grader who is just learning to program]. A [Y] implementation of it might look like this:

[really poorly engineered Y code]

Whereas in [X] you could accomplish the same thing with just

[slickly written X code that shows off syntactic sugar]

It’s pretty clear that the second is easier to understand and less error-prone.

Now consider type systems. [Religious assertion about the relative merits and demerits of static and dynamic typing.] Sure, [Y] gives you [the benefit of Y’s type system or lack thereof] but is this worth [the detriment of Y’s type system or lack thereof]? Obviously not!

Additionally, consider build tools. While [Y] uses [tool that I have never bothered to understand], [X] uses the far superior [tool that I marginally understand]. That’s reason enough to switch!

Finally, think about the development process. [X] has the amazing [X-specific IDE that’s still in pre-alpha], and it also integrates well with [text-editor that’s like 50 years old and whose key-bindings are based on Klingon] and [IDE that everyone uses but that everyone hates]. Sure, you can use [Y] with some of these, but it’s a much more laborious and painful process.

In conclusion, while there is room for polyglotism on the [platform] platform, we would all be well served if you [Y] developers would either crawl into a hole somewhere or else switch to [X] and compete with us for the handful of [X] jobs. Wait, never mind, [Y] is awesome!

(Hacker News link)

65 thoughts on “Why [Programming Language X] Is Unambiguously Better than [Programming Language Y]

  1. Reverend Jim

    I rarely come across a column that is so spot on and so entertaining. And as a bonus, the comments are equally witty and entertaining.

    Brilliant post.

  2. Pingback: Every programming language advocate’s argument | keyrecovery

  3. Anton

    Hi guys. My teacher asked me to write the following program in [Pascal].

    Given array of N integers, find maximum element in it, and output the array, skipping this maximum element.

    I tried to [google the exact problem statement] and found no solutions. Instead I found [program solving completely different task] at [shitty internet forum where stupid students trying to help each other]. Here it is:

    [
    ~200 lines of random unformatted code here, in which your [PHP-based CMS] discarded [leading spaces] and [some other important code parts] because they were interpreted as [HTML tags or other reserved tokens]. The code formatting cannot be fixed from the [admin console] because [some stupid filter or plugin] filtered the comment before it was written to the database. The [stupid filter or plugin] cannot be disabled because otherwise [SQL injections or XSS vulnerabilities] may happen. You, as site administrator, do not know what you hate the most: this stupid student, or stupid programmers who made this [PHP-based CMS], or [PHP language], or, may be, yourself, because you love and promote programming language [X], but use [CMS] written in [PHP] at the same time.
    ]

    I found that maximal element in my array is 42. I also noticed that [Pascal] supports “skip” comand. So, I added skip(42) to the end of my program without any success.

    I must finish the task before [tomorrow].
    PLEASE HELP!!11

  4. Johnny Spittle

    [text-editor that’s like 50 years old and whose key-bindings are based on Klingon] – brilliant :)

  5. Michael

    I definitly must disagree with you

    I mean alone the obvious performance advantage of [Programming Language Y], see for example this perfromance test here [Link to Performance Test of Y Blogger in which he increments a integer in a for loop 100.000.000 times compared to a poorly written X Sample which ignores completly the advantages of X language. Important: All Tests made in debug mode].

  6. Michael

    One Other thing:

    My favorite moment in one of this language comparisons was when in some c++ forum some guys ranted about C# (I must admit I’m a fanboy and make my money with it) and then there was one guy (I think he had more than 1000 posts in the form) who said something like:

    C#? I want to see how this language could replace my 100.000 Lines of C++ Database Access Code.

    Task: Find all Errors in this sentence. Pro Tip: 2 in 100.000 Lines and Database Access Code, and one in C++ and Database Access Code

  7. Dan S

    I went straight to [Z] and then discovered [*]. Why is everyone talking about kitchen sinks? Oh, what’s that? It’s beautiful, minimalist, like it’s not even there. From now on, I’ll only use []

  8. SM Greenfield

    Beautifully written, with a natural elegance that demonstrates an intimate knowledge of programming landscape. I’ve wittnessed these exact religious battles since learning Algol, Pascal, Basic, SNOBOL, SAIL and various assembly languages in the 1970’s (and somehow dodging Fortran, COBOL, ADA, RPG). In the 1980’s I recall pitched discussion over C, C++ (which I still use daily), Smalltalk, LISP, and Apple’s Objective-C/C++, Java in the 90’s, and C# in the 00’s. As you so cleverly templatetized, there are hundreds of other substitutions that easily fit. But my favorite comment was about the programming editor(s): I still run into engineers that insist on using some EMACS variation with a non-intuitive command set that defies ease-of-use.

  9. Pseudonym

    I must vehemently disagree with this. [Y] has [idiosyncratic and incompatible packaging system] which makes using [half-baked, impossible-to-customise third-party library or framework] easy! This is perfect for [obscure problem domain that most will never care about] and [less-efficient reimplementation of existing program]. Just look at [toy implementation] on [source repository web site that you don’t have an account on].

  10. The Frank

    So.

    You guys seem all to agree: There is no difference between programming languages?!

    It is just a matter of taste and people act by irrational motiviations if they prefer one
    over the other?!

    All thoughts and efforts spend on design of programming languages are wasted time?!

    There was no progress in the last 100 years whatsoever?!

    Please, try to write a similar article about CPUs. Surely, it might be fun to read.

  11. Pseudonym

    The Frank, brilliant reply, but you should have used square-bracket templates, or you run the risk that people might think you were serious.

  12. Greg

    This template could act as a template template. For example, try a simple search and replace of “Programming Language [X]” with “SQL” and “Programming Language [Y]” with “MongoDB”. That nicely summarizes every article I read about everything wrong with MongoDB in the last couple of months or so.

    I have never personally used MongoDB, other than the barebones of how it works. I wonder how much effort these people into learning about it, or interacting with the community to find solutions. I wonder if they had any kind of production monitoring, or simply said “hey, this is dying and we have to fix it right now, so back to SQL”. Like anything else, I hear more failure stories than success stories :)

Comments are closed.