Please explain this tech geek joke

I’m not familiar with the various programming languages but recently came across this joke on a tee shirt. Can someone take the time to patiently explain how the images relate to the respective programming languages? I know better than to expect I’ll LOL after reading the explanation, but hope at a minimum to gain an appreciation of aspects of certain programming languages. I can make an educated guess that the styles of weapon at least partly deal with the age of the languages and level of their sophistication, but don’t want to assume anything here.

Speaking as someone who has used all of those languages, I think your educated guess is dead on. It’s not the most hilarious joke ever.

N/M, it’s on the shirt.

Also as someone who has used all of the languages.

C++: Good, traditional
Java: Good, with some extra coolness for flavor
Python: Super-amazing future awesome
C: Old, archaic, brutish

Basically, it’s a Python fan’s shirt.

It ought to include an entry for Javascript with a picture of a rusty teaspoon.

ETA: I endorse @Sage_Rat’s serious response.

Programming in C is nasty, brutish and takes forever.

Java is a surprisingly old fashioned language, even when it came out. Lots of horrible kludges. I consider it the enemy of elegant. A katana? Please. (I went thru Java certification and really tried to program non-trivial stuff in it. Ugh.)

Python is full of kludges but at least most of them are fun ones.

C++ is okay to program in but you need to know all about a ton of libraries which are sometimes haphazardly done.

Now I’m wondering about other languages. Like, would BASIC be a Whiffleball bat?

Nope. A toddler’s plastic choo-choo spoon.

Java sucks so meme is wrong. I have spoken.

Maybe C# is the more elegant katana version of Java (despite the name).

C++ is based on C but forked off a long time ago, so they’re similar but different, C++ is the new sexier version (“new” == 40 years old).

LOL, I remember C++ when I went to college in the 90s so it can’t be that new. :stuck_out_tongue:

  1. Shut up, that was about 10 years ago! Get off my lawn.

There’s also the matter that C is (almost) a subset of C++. That is to say, if you have a valid program in C, and then call it a C++ program, it’s probably still a valid program. C++ programmers probably won’t like it, but it’ll still be valid.

Another old joke says that Fortran programmers can write Fortran code in any language, and C programmers can write C code in any language. The joke, of course, dates back to the Ancient Times when those two languages were the main contenders for Serious Programming, but the same idea is true for any language. Quite aside from the actual technical specifications, different languages are associated with different idioms and styles, and programmers will find ways to use their preferred idioms and styles in whatever environment they find themselves in.

I had a job once translating a C program written by a Fortran programmer into actual C. It was C, but zero tabs, no structures, labels and gotos everywhere. Probably not a very good Fortan programmer either, I guess.

I first interpreted the Python one as a foam bat. Good for children, hard to injure yourself with it, but useless for real work. I think it is a lightsaber, though.

Frankly, it’s really C++ that should be a lightsaber. It’s famous for its numerous ways of getting into trouble (the author of the language says “C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off”). In real life, anyone that tried to use a lightsaber would kill themselves with it almost immediately (though not before causing immense collateral damage). Swords are children’s toys in comparison.

C allows you to work at the machine level. You can make a computer do anything in C. When you start coding with swords or foam bats computers laugh. When you start coding in C the computer follows orders to the letter and doesn’t sass you.

So you’re saying C++ requires a Jedi.

Traditional BASIC, yes. One of its major uses was teaching programming. But extended versions developed later were much more powerful. In the RSTS/E timesharing system for the DEC PDP-11, an extended version called BASIC-PLUS was central to the OS and for a few years was the only programming language supported.

And years later, Microsoft Visual Basic was such a radical advance that it bore only a vague cultural relationship to traditional BASIC. It was a powerful object-oriented language fully integrated with the Windows paradigm, and was a particularly great tool for prototyping large systems – i.e.- building mockup screens to test and refine workflows and UI designs. When it’s impractical to fully flesh out a detailed functional specification for a large and complex project, this is a great way to involve the end users in the process of developing one through experiment and iteration.

Oh absolutely. I wrote code in BASIC quite a bit. I can’t understand VB at all.

I mean, I can take a script and tweak it using common sense, but it doesn’t bear any resemblance to me. My experience with BASIC is useless for it.

I don’t think I’d even say that. C64 BASIC had PEEK and POKE operations: you could write directly to any memory address on the system. Therefore it was as powerful (and dangerous) as assembly code.

The main problem with BASIC is just that it’s a terrible language. It was written before the concepts of “structured programming” were really widely known, and so the early versions were missing a lot of ideas like parameterized functions. It led to a lot of spaghetti code.

Yes it did. I remember writing BASIC code in high school with my best friend, we used PEEK and POKE for a couple of the games we were goofing around with.

I can’t be 100% sure what version of BASIC it was. I want to say QBASIC but I don’t think that’s right; QBASIC came out in 1991, and while that was the year we were writing code, I have trouble imagining that a small high school on Guam had anything that new. I’m guessing it was its predecessor QuickBASIC. Looking at screenshots of the interface of QBASIC and QuickBASIC, they both look like what I used.

I know for sure that I used both QBASIC and Pascal later in high school when I got back to the continental US.