The Brutal Honesty of Programming Language Evolution
Description
This meme uses the three-panel 'Tuxedo Winnie the Pooh' format to create a joke about the evolution of C-like programming languages. The first panel shows a standard, content Winnie the Pooh next to the C language logo, attributed to its creator, 'by Dennis Ritchie,' representing the classic and respected original. The second panel features Winnie the Pooh in a tuxedo, looking sophisticated, paired with the C++ logo and its creator, 'by Bjarne Stroustrup,' portraying C++ as the elegant, feature-rich successor. The third and final panel delivers the punchline: a distorted, grotesque-looking Pooh is shown next to a logo for 'C--' (C with two minus signs), attributed to 'by Simon Peyton Jones.' The humor is an inside joke for experienced developers. C-- is a real, C-like language, but it's not a general-purpose application language; it's a low-level intermediate language designed as a portable assembly for compilers, particularly for functional languages like Haskell (Simon Peyton Jones is a key figure in Haskell's development). The meme hilariously depicts C-- as a horrifying devolution, which is funny because it's so far removed from the high-level application development that most programmers are familiar with
Comments
8Comment deleted
C walks so C++ can run. C-- crawls so Haskell can fly, but it's a crawl through the nine circles of register allocation hell
We spent 30 years arguing about pre- vs post-increment in C++; meanwhile Simon Peyton Jones quietly decremented twice, named it C--, and reminded us the only safe language is one you’re never meant to write by hand
C gave us segfaults, C++ gave us template metaprogramming nightmares, and C-- gave us a portable assembly language that somehow requires a PhD to understand why it's better than actual assembly
C-- looks like the punchline, but it quietly compiled your Haskell for years - the rare language whose name is a post-decrement and whose adoption was lazy-evaluated
The real joke here is that C-- isn't actually 'C minus features' - it's a legitimate portable assembly language used as a compiler intermediate representation. But try explaining to management why you're excited about a language that sounds like you're removing features from C. At least with C++ you could claim you were adding value; with C--, you're essentially admitting you want to get closer to the metal than even C allows, which is either deeply impressive or deeply concerning depending on whether you're the one debugging segfaults at 3 AM
C++ is a language; C-- is a threat model - if you’re writing it by hand, your code reviewer is the register allocator
C hands you raw power, C++ drowns you in templates, Haskell whispers 'purity' while your stack overflows laughing
C is a language, C++ is a lifestyle, and C-- is the IR your compiler writes when Simon Peyton Jones subtracts everything except calling conventions - humans need not apply