- The PHP bug report
- The Ruby programm
- The Java class
Plankalkül is the first high-level programming language, designed by Konrad Zuse in 1945.
This strip is based on various posts and comments which I found on Reddit’s /r/ProgrammerHumor community.
- Sign: Melody’s Guide to Programming Languages
- Melody: Spoiler: I hate them all.
- Caption: Everything that’s wrong with PHP in a single bug report:
- Caption: Everything that’s wrong with JavaScript in two calculations:
- Caption: Everything that’s wrong with Ruby in a single program that outputs “Hello World”:
- Caption: Everything that’s wrong with Java in a single class:
- Richard: So which language do you use to develop your cutting-edge web application?
- Melody: Plankalkül.
|
Lost
<3 this is going on my wall @ work
Uhh, what do you do, when the comic itself already fulfils Godwin’s Law before any discussion has even started? 😀
My argument against JavaScript would be everything regarding “this” and what it points to at any given time.
My gripe with C/C++ would be its lack of a sensible string library though my biggest gripe is a meta grudge against OpenGL and of its render pipeline goodness.
In general though I think the intrinsic problem is the fact that these languages are built by engineers/computer scientists, for engineers/compSci. Being in a field that requires very end user friendly systems, coding in these very overly convoluted languages full of little “gotchas” and edge rules has given me no small dose of irony.
But all said and done, lolcode is clearly the best coding language.
Try Haskell. Functional programming for the life.
So… Melody is a Programming Hipster?
Isn’t every programming language a compromise of some sort? As for Ruby, wouldn’t puts “HELLO WORLD” be much easier or is there a problem with it?
What exactly do I need to do to Ruby for it to even parse this program? The very first `=` is already invalid syntax.
@ Slamfish:
Nerd joke.
I prefer Whitespace, Brainfuck and Ook!
https://en.wikipedia.org/wiki/Esoteric_programming_language#Whitespace
https://en.wikipedia.org/wiki/Esoteric_programming_language#brainfuck
https://en.wikipedia.org/wiki/Esoteric_programming_language#Ook.21
Casuals not using butterflies smh
Manuel wrote:
? Where is the word “Nazi” in that comic ?
By the way: very funny page 😉
clickbait wrote:
The word “Plankalkül” is.
@ Wyzwon:
HAI 1.2
CAN HAS STDIO?
I HAS A VAR ITZ “UR COMMENT”
I HAS A CHECK ITZ WIN
CHECK, O RLY?
YA RLY
VAR R SMOOSH VAR AN ” IZ AWSUM” MKAY
VISIBLE VAR
NO WAI
INVISIBLE “IZ SAD”
OIC
KTHXBYE
Can someone tell us, the people who don’t know these programming languages, what the joke and punchline are. The only programming languages I kind of know are C# and C++.
SO hot for Melody right now.
I swear by C64 BASIC, and swear AT anything else.
I’m actually using that way of JavaScript interpreting text as numbers. Here is an example:
var Index = $get("TextBoxIndex").value * 1;
It’s the easiest way to get a string to a number to perform calculations on.
@ Oleg Oshmyan (Chortos‑2):
Not if you have a Unicode non-breaking space as a variable name.
“Plankalkül” is typically translated into English as “Plan Calculus.”
Ada to rule them all!
@ nameless:
(DEFUN COMMENT ()
"WHY COMPLICATE EVERYTHING WHEN YOU COULD USE EMACS"
)
JavaScript is a b*tch for maths indeed. That error over there is what ACTUALLY HAPPENS, it’s so frustrating xD
Not sure about the PHP not a bug over there tho, never came across that thing.
And I still haven’t learned Java.
I’m so proud of myself for understand ebough to laugh some more at this trip.
Let’s talk about Ruby..
https://www.destroyallsoftware.com/talks/wat
I do hope she’s kidding about Plankalkül, though.
At least she’s not writing her application in Shakespeare…
Epic. The PHP, JavaScript, and Java ones are SO fitting! I feel a cognitive dissonance between how incredibly insane, yet typical and unsurprising these look.
MJ wrote:
Or F#. Admittedly, it has occasional insanity of its own, but that’s usually a deliberate trade-off to remain highly compatible and connected with the CLI and its libraries, or mix in imperative code where the compiler’s ability to optimize declarative code doesn’t suffice yet.
Not that I’d complain about Haskell. 🙂
@ clickbait:
Implying that the creator of Plankalkül, Konrad Zuse, was a natzi because he worked as a engineer for the German Gov. during WWII.
REAL programmers learn to code in hexadecimal.
ALMOST real programmers learn to code in assembler. 😉
@ Melkior:
01000010 01100101 01100111 01101001 01101110 01101110 01100101 01110010 0100001
BT94 wrote:
looks that way lol. shes got some serious beef with ruby
view layout [text “Rebol to the masses!” button “Quit” [quit]]
Reminds of a destroy all software presantation (which has more JS examples).
I was kinda hoping that the PHP one was made up. But of course not.
I’ve taken one programming class and we only ever used C++ and Java. They seemed fine to me but I do not, by any means, know what I’m talking about.
Even I’m not sure what’s up with that Ruby program. Is it using nonstandard spaces that Ruby treats as identifiers? That’s really alarmingly terrible if so.
@ Paul Z:
Seems like Ruby does treat some whitespace as vallid characters for variable names. At least that it what this post claims:
http://qrohlf.com/posts/ruby-whitespace-shenanigans/
Not sure what the problem is with that Spring Java class. Once you understand how Spring works, the description makes at least some sense.
That Javascript code on the other hand… Eek. O_o
That ruby code doesn’t compile. In fact that joke isn’t really funny considering most ruby developers are all about writing elegant beautiful code. (Perl on the other hand… looks the same both encrypted and unencrypted).
If you’re going to make fun of Ruby you are better off finding the bitchfests on github about whether or not to use inject or reduce (same function).
all of that went right over my head, but I am glad to see more Melody.
In fact Melody comes off as a ruby developer.
Try Python! Make programming fun again.
@ bloodycelt:
Ruby code does compile, does what it is intended to do (yes, I’ve just checked), does look out-of-this-world, and will cause your PM to haunt you till the end of times if you commit anything like this to the project repository. Check this gist: https://gist.github.com/qrohlf/7045823
The only language that you’ll ever need to atomize your numbers properly is FORTRAN*, the Incredible Hulk of scientific number-crunching. Numbers in, numbers out, and none of this OOL foolishness.
*Yes, I’m aware that the current spelling is Fortran, but I learned FORTRAN 77, the manliest of all FORTRANs, and it’s still my favorite.
There are many other valid reasons to be mad at Javascript but that ain’t really one. You might rather ask why the coder is using a string for their calculations (i.e. didn’t make sure they’re dealing with numbers first, relying on implicit casting).
@ Thane:
“Fun coding” and “positional syntax” are two opposite concepts.
MJ wrote:
Everything wrong with Haskell in a single sentence: “Functional programming combines the flexibility and power of abstract mathematics with the intuitive clarity of abstract mathematics.” ;-P ( https://xkcd.com/1312/ )
PHP:
Learned that back in the day. It is fun.
Until you realise that we invented strong typing for some very good reasons.
And that a Langauge for dynamic websites without proper Unicode support is pretty useless.
Javascript:
Not used it before, but I give it a try.
ASCII code for ‘5’ is 52. The one for 3 is 50.
It treats ” ‘5’ -3 ” as ” ‘5’ – ‘3’ ” or “52-50”, thus 52-50+3 = 5
No idea how it is screwing up all logic to get to 50 in teh first case however (that propably needs something like multiplication/division isntead of addition/substraction; Propably both).
Ruby:
Again something I have not used before.
I think you are creating an array of integers, then transform it into char and join them together?
Indeed that looks like you translated the Brainfuck “Hello World” programm to ruby.
Java:
I am rusty with Java, but C#/.NET programming is pretty similar in the end.
I know the Factory pattern and the singleton pattern.
I know that every singleton must use a Factory pattern (but not vice versa).
Abstract/Superclass is pretty clear.
Proxy in this context I have to look up.
And no idea what java beans are and how they need any of the above.
I know that as a programmer your friends are:
Strong typisation
Conservative Implicit casts
Garbage Collection
Not becuase they are so good (nothing is ever without tradeoff in programming), but because they stave off these much worse things:
No typisation
Too many implicit casts
Handling naked pointers
Wyzwon wrote:
Yeah, `this` in JavaScript is pretty weird, but even if it’s not intuitive at least it’s easy to understand. `this` within a function, unless explicitly bound to something else, will always point to whatever object you called the function on. So if you call `object.func()`, `this` inside func will point to object. That’s it; simple.
In contrast, the rules for automatic type conversion in JavaScript are completely insane and not easy to learn without memorizing a whole list of rules for precedence and the like.
Christopher wrote:
Nope.
“5” + 3 – 3 = (“5” + 3) – 3 = (“53”) – 3 = 53 – 3 = 50
“5” – 3 + 3 = (“5” – 3) + 3 = (5 – 3) + 3 = (2) + 3 = 5
=P The rules for type conversion in JavaScript are ridiculous.
Christopher wrote:
She’s using non-printable characters as variable names. Ruby supports full Unicode in its source code. Honestly this isn’t a real problem with Ruby, just the way she’s using it. Probably could have come up with a better reason to hate Ruby.
Can we get a high-res version of this? Must print and frame this!! Store link maybe?
TripleS wrote:
Ah! I did copy the program from the gist, but I should’ve known better than to select all and copy from the Web browser.
I feel ashamed a bit; this isn’t my first time seeing non-breaking spaces abused, and I have abused them myself—not in my source code, mind—and I generally use them (and all sorts of Unicode characters) in writing.