Skip to content
DevMeme
3646 of 7590
Languages Post #3984 · source on Telegram

The Annual Meeting of Unhated Programming Languages

Description

A two-panel meme illustrates the cynical reality of programming language preferences. The top panel shows an exterior view of a building with a sign that reads "UNHATED Programming Languages ANNUAL MEETING," pointing toward the entrance. The bottom panel reveals the meeting room inside, which is completely empty, with a large, vacant conference table and chairs. The humor stems from the universally accepted truth among experienced software engineers that no programming language is perfect or free from criticism. Every language has its own set of trade-offs, quirks, and vocal detractors, making the concept of an "unhated" language a humorous impossibility. This meme resonates with senior developers who have witnessed decades of "language wars" and appreciate the nuanced reality that language choice is about finding the right tool for the job, not a universally beloved solution

Comments

85
Anonymous ★ Top Pick The 'Unhatable Programming Languages' meeting was moved to /dev/null to save on room booking fees
  1. Anonymous ★ Top Pick

    The 'Unhatable Programming Languages' meeting was moved to /dev/null to save on room booking fees

  2. Anonymous

    An “unhated” language only exists in two states: experimental toy or legacy liability - scale it past hello-world and the hate flag flips to true

  3. Anonymous

    The only thing rarer than this meeting is a senior engineer who hasn't written a blog post about why their favorite language is actually terrible after maintaining it in production for five years

  4. Anonymous

    The only programming language that could claim to be 'unhated' would be one that nobody has actually used in production - which explains why the meeting room remains perpetually empty. Every language that's solved real problems has accumulated enough battle scars and opinionated developers to guarantee it'll never achieve universal approval. It's the software equivalent of 'you either die a hero, or live long enough to see yourself become the villain' - except in this case, you become the villain the moment your first production bug ships

  5. Anonymous

    Unhated programming languages are just the ones we haven’t shipped to prod long enough to be blamed for a 3 a.m. incident

  6. Anonymous

    After 20 years scaling monoliths to microservices, the only unhated language is the one you rewrote last quarter

  7. Anonymous

    Programming languages obey a social CAP theorem: pick any two of fast, safe, and ergonomic - the third spawns a hate thread, so the 'unhated languages' meeting never reaches quorum

  8. @sylfn 4y

    whitespace is here

    1. @SamsonovAnton 4y

      I now wonder if there is a programming language consisting of whitespaces only... 🤔

      1. @sylfn 4y

        there is https://en.wikipedia.org/wiki/Whitespace_(programming_language)

        1. @SamsonovAnton 4y

          "Rule 34, only for programmers", no exceptions.

        2. @sylfn 4y

          "when tabs were banned by codestyle"

        3. @SamsonovAnton 4y

          Wow, it is C++ compatible, but cannot be mixed with Python. I always knew Python is flawed! 🤪

          1. @sylfn 4y

            https://www.stroustrup.com/whitespace98.pdf C++ could have operator () (operator <Space>) Single letter variable names (we have full unicode range, what could be wrong? spoiler: a != а (latin/cyrillic))

            1. @sylfn 4y

              good things were said; the only flaw is that no compiler supports this good C++

  9. @qtsmolcat 4y

    JavaScript is best, fight me

    1. @sylfn 4y

      for what? without this information your statement is true and false

      1. @qtsmolcat 4y

        Everything

        1. @sylfn 4y

          try doing competitive programming in javascript (e.g. on codeforces)

    2. @erizpl 4y

      Since when another framework has been released, eg. this hour?

      1. @qtsmolcat 4y

        Only things I use are jQuery and bootstrap lol

  10. @neitex 4y

    I like Kotlin, Is it hated too? If yes - for what?

    1. @sylfn 4y

      if you don't hate <x> this does not mean that no one doesn't hate <x> (russian: не означает что никто не ненавидит, quadruple negation)

      1. Deleted Account 4y

        I like it ¯\_(ツ)_/¯

    2. Deleted Account 4y

      +

    3. @deerspangle 4y

      Because of the Kotlin evangelists

  11. Deleted Account 4y

    How you can hate python :D?

    1. @sylfn 4y

      Other way is impossible because of shitty python [sticker text]

    2. @deerspangle 4y

      When you realise that item in my_list == False evaluates as (item in my_list) and (my_list == False) You do start raising some eyebrows at the language. And yes, the right way to do that would obviously be item not in my_list , but I was helping out a starter programmer who got some very odd results. I had to dig into the byte code before I recognised what was happening. It's the same logic that allows a < b < c to mean (a < b) and (b < c) but it certainly does confuse things for a while!

      1. Deleted Account 4y

        Yeah, that's how python sometimes works :D

      2. @RiedleroD 4y

        fair, but the first statement is ambiguous anyway - Assuming the a<b<c syntax doesn't exist, it could still either mean (item in my_list)==False or item in (my_list==False) - keyword importance ordering shouldn't be relied on. So setting parentheses for situations like these is important anyway.

        1. @deerspangle 4y

          Yeah, assumed it was one of those at first

        2. @deerspangle 4y

          But the first of those would have returned True, and the second would raise a syntax error. So the fact it returned False was very confusing

          1. @RiedleroD 4y

            not a syntax error, a TypeError.

            1. @deerspangle 4y

              Yeah of course, sorry, only just woke up

              1. @RiedleroD 4y

                same, I'm barely alive.

  12. @SamsonovAnton 4y

    In KuMir programming language (that was popular in Russian secondary schools throughout 80-s and 90-s, and is still developed nowadays) we were able to use whitespaces as a part of identifier - that is, something like this (how it would look like in English): begin function My Fancy Function var My Cool Variable := 42 print My Cool Variable end function

    1. @sylfn 4y

      > that was popular in Russian secondary schools throughout 80-s and 90-s i think it is also popular now

      1. @SamsonovAnton 4y

        As of today, children are instructed to install Python and write some sorting algorithms as their very first excercise. 😳

        1. @sylfn 4y

          it depends on school. in my school we learn python and first task was print 2 to 179-th power

          1. @SamsonovAnton 4y

            By using BigInt, right? Not by rolling out your own arbitrary precision math library, right? :padme_meme:

            1. @sylfn 4y

              print(2 ** 179) one line solution

          2. @RiedleroD 4y

            I my school, we learn java

    2. @sylfn 4y

      that := just makes my eyes bleed

      1. @SamsonovAnton 4y

        Thas is actually better than having tons of typical C/C++ bugs due to = and == confusion.

        1. @sylfn 4y

          if (r = get()) { // equals to ((r = get()) != 0) // do smth } good code, especially when you really need to assign some values

          1. @SamsonovAnton 4y

            That's exactly it! The if (a = b) bug is so common in C/C++ that extra parenthesis are usually required to prevent compiler warnings in a perfectly correct code.

            1. @sylfn 4y

              or just -Wdisable or something

              1. @SamsonovAnton 4y

                Disabling any warning is bad, and also non-portable. That's why adding extra parenthesis is better, despite impairing readability.

  13. @QutePoet 4y

    How about bash? It's powerful enough for much use cases, even as a solution for the REST API.

    1. @RiedleroD 4y

      bash = trash

      1. @RiedleroD 4y

        sorry, but it just does not work as a general-purpose scripting language

        1. @thematdev 4y

          no, it does

        2. @QutePoet 4y

          For frontend cases I guess no (it's still possible via CGI or FastCGI but it's not solution for nowadays). For backend cases it surely can and I have successfull results. Depending on the task. For example it can do passive checks for Nagios. Moreover it follows most POSIX standards so it's quite understandable and can be checked for errors and closed checks before the run with ShellCheck. It also does not need compilation, and takes small amount of CPU if the scripting had been done cleverly.

          1. @RiedleroD 4y

            all of this and more is also doable with python, just in much less lines and much more readable. Except if you really just want to pipe some programs into each other.

  14. @elleqt1337 4y

    C++ is best, change my mind.

    1. Deleted Account 4y

      I feel sorry for your legs

      1. @elleqt1337 4y

        ?

        1. Deleted Account 4y

          C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off. Bjarne Stroustrup

          1. @elleqt1337 4y

            Cpp is easy af

            1. Deleted Account 4y

              Of course C++ is easy! Only an idiot would write C++ code with UAF and other memory bugs. I mean idiots like Chrome developers. And im not even talking about "UB this, UB that", large STD/STL (though it still doesn't provide a way to work with network) C++ is one of the hardest languages, you shouldn't underestimate it's complexity

              1. @RiedleroD 4y

                > idiots like chrome devs Have they had many problems with UAF? I use FF, so I have no idea tbh.

                1. Deleted Account 4y

                  I've seen several news about memory-related cves in chrome but it's not like "new day new cve". I've used it as an example that it's hard to write C++ code without bugs even for professional developers with experience

                  1. @RiedleroD 4y

                    I see

              2. @RiedleroD 4y

                I'm like 50% sure the first paragraph is sarcastic, but honestly, I can't tell for sure.

                1. Deleted Account 4y

                  It's sarcastic, yap C++ gives very much freedom but it also takes equally much attention and understanding of language. C++ isn't easy and it won't be considering the committee's clinging to keeping backward compatibility and huge legacy codebase, that's what i've meant

                  1. @RiedleroD 4y

                    C++ giveth and C++ giveth and C++ giveth and jesus please taketh some legacy away

                    1. Deleted Account 4y

                      Looking at c++ subreddit I can say that many people share this opinion (including me). C++ committee is so striving for backward compatibility and portability that it became PITA for some c++ developers. C++ needs a really huge update but who would take responsibility for consequences

                      1. @RiedleroD 4y

                        what version are we at rn? C++20? (are the versions numbered after the years?) I say we need C! or smth - just a C++ fork (of gcc or smth idk) with many deprecated warnings turned into compilation errors. Also we could call it C-bang, which is an incredibly funny name.

                        1. @RiedleroD 4y

                          there's probably already something like this out there though

                          1. Deleted Account 4y

                            There is such thing. If you don't believe me, google "Rust language" /s

                            1. @RiedleroD 4y

                              lmao. Ignoring the fact that Rust has a completely different language design, it does benefit from its lack of legacy standards.

                              1. @RiedleroD 4y

                                I mean, even python3 is starting to feel old e.g. with all those legacy string formatting standards.

                                1. Deleted Account 4y

                                  I like python formatting syntax (f"{variable}"). It's not the best but it's quite simple and not too much explicit

                                  1. @RiedleroD 4y

                                    aye, but then there's also these: "{}".format(variable) "%s"%(variable) ↓ not technically format strings, but achieve the same goal str(variable) variable.__str__() repr(variable) variable.__repr__()

                                    1. @RiedleroD 4y

                                      I think there's even more, but those are the ones I know about

                                    2. Deleted Account 4y

                                      These are someway ugly but i don't use them (and hope that nobody uses them except the first)

                                      1. @RiedleroD 4y

                                        the first is godawfully slow, the second is fast, but unreadable, the rest are shit. They're all being used. That's why a language needs to be simply clean.

              3. @affirvega 4y

                If it isn't in STD, then it's in boost

          2. @RiedleroD 4y

            hand-pistol vs. Rocket launcher

          3. @affirvega 4y

            Life be so fine then boom, segfault

  15. @rekechynskyi 4y

    The least hated programming language is the least known language (for example, someone created a language and loves it, but nobody else knows about it)

  16. @Shheeerrrr 4y

    Dont you hate YOUR main pl the most? or is it just me

  17. @lol123a10 4y

    Undoubtedly, it's js.

  18. @biskwiq 4y

    where is rust tho

Use J and K for navigation