Through long and weary travels,* I bring the gift of source preserved by the workers of the great archives: https://web.archive.org/web/20140831164530/http://bjorn.tipling.com/if-programming-languages-were-weapons
* (they weren’t that bad honestly, a kind soul that took the journey 9 years ago made mine much shorter)
Thank you! The original source of truth! 💎 As IT people, this is part of our culture and should be transmitted. 🤣
It seems the image is a screenshot of the original page, slightly upscaled, but since the source page includes links to larger images we can make the HD remaster. Shotgun not me.
Python V2/V3??? How old is this thing? Not even Debian comes with Python 2 these days.
Not even Debian comes with Python 2 these days.
It was only removed 9 months ago
OP was technically correct, the best kind of correct.
Then you have Clojure - a machine gun that shoots shivs.
I feel like python would be an AR-15 or something, generic modern weapon that’s easy to use but doesn’t really do anything special
Definitely better than this outdated version. Nobody uses Python2 unless they want to at this point
Assembly: A gauss rifle, but you have to manually align the magnets
BASIC: 2mm Kolibri
Nim: An AR-15 that you can modify to shoot explosive minigun bullets
Crystal: A halberd with obsidian crystals
Pascal: Trebuchet. A small handful of people know how to make it a truly powerful weapon capable to bringing down any and every opponent.
Python needs an update:
Python would be a Tavor TS12 automatic shotgun with rotating tube magazines. It’s heavy, doesn’t have a fast fire rate, but it can fire a ridiculous array of ammunition, and they’re working on the ability to fire all the barrels at once (GILess)
They’ve been talking about removing the GIL since I was in primary school. My children are in primary school now. I’ll believe it when I see it.
I believe it was announced that 3.14 will make it an optional flag, so here’s to hoping.
There’s now been an investment of dev time from the company formerly known as Facebook to try to push it in 3.12 or 3.14.
If you write C/C++ libraries for Python you can disable the GIL
JavaScript is a foam bat. Easy enough to wield and it’ll get the job done, but very inefficiently and it’ll be an ugly sight…
however, it is still used and endorsed by every army
C++ and ruby are weird, especially since C is somehow considered a reliable rifle. Rust betrays it’s age
C is reliable in the sense that your C program reliably has memory leaks and security holes.
Unlike your Java program amirite.
The benefit of java is that you didn’t write the security holes in your software.
I don’t trust Masterlock, so I’m gonna make my own lock out of duct tape, then tape scissors to the door to use as the key.
Programmers can trust language security features too much…
Of course, they’re nice to have and really can make things easier to implement securely but it’s still very easy to introduce security problems or bugs into any code. This is just an unsolvable problem of writing imperative code. All imperative code will reliably have memory leaks (even in Java!) and security holes because no compiler can check to see if you thought of everything.
And large and complex compilers/interpreters with these security features can end up introducing their own security problems or bugs in the process of implementing them.
I’m just tired of people entirely dismissing languages like C because they don’t have these features. Especially when the operating systems their code runs on and their languages may even be implemented in C!
because no compiler can check to see if you thought of everything.
We can try to get closer to that with better language design. You’ll never get there but I think there are obvious benefits as to why you’d want to do that.
I write way less bugs in Rust than I have in Java or C++, and that’s mostly thanks to the language design.
I’m just tired of people entirely dismissing languages like C because they don’t have these features. Especially when the operating systems their code runs on and their languages may even be implemented in C!
Because that code has been review and re-reviewed and patched by experts in the field for years. You’re not gonna write a backend for an app with short deadlines in C because that would be absolutely fucking insane.
Right tool for the right job. C is a stupid choice for most modern apps but it’s indispensable for embedded stuff
Buffer overflows were last seen on the OWASP top 10 list in 2004. Favoring of anything else over C for most things is a pretty obvious reason why. A language change destroyed an entire class of bugs.
The M1 Garand is known for having a problem during reloading where you have to stick your thumb in a slot that’s about to shut very hard. There are techniques to avoid getting pinched, but “Garand thumb” is a well-known phrase among vintage rifle enthusiasts.
This fits C very well.
The old joke is that C++ is an octopus made by nailing legs to a dog.
So it should probably be a rifle-chaku made by connecting two Garands with a chain.
C# vs Java is also really weird since C# started out as basically a Java clone.
As does C#. The Windows-specific parts are not the parts most developers will use these days.
I took it as the donkey being .NET
I watched Jon Gjenset’s stream where he implemented the beginnings of a BitTorrent client in Rust and of the four hours about 25% of it was spent wrestling with quirks in serde and reqwest.
It was pretty discouraging watching a pro have to fight the ecosystem so hard.
How long ago was this? I think the ecosystem got waaay better in the last 1-2 years. 3-4 years ago it was rough but shit still worked with a bit of trouble.
Two days ago lol
Eh, that’s unfortunate. Yeah the whole ecosystem is still a bit wonky, probably more wonky than most popular languages but tbh I rarely used a stack that just worked out of the box, it almost always took some dicking around, I’d rather do the dicking around with a language that doesn’t always seem to work against me.
C is a knife. The basic thing you can build weapons (programming languages) with.
Agree. That one didn’t age well…
C is very reliable. It works almost everywhere with very little resources or overhead and many of the most fundamental parts of our systems (that have to work reliably) are written in C. Many of the languages in that image are even implemented in C.
If you want to write portable, fast, and simple code C can help you with that if you use it in the right way.
still waiting for some of these memes to include haskell…
Haskell is the “words as a weapon”, a heavy book that nobody really understands but is great to thump heads
haskell is an intricately designed laser gun that you cant shoot it without a learning group theory and lambda calculus
Definitely ancient since C# has been cross-platform for 4 years with Dotnet Core. If you include Mono, make that 19 years.
Finally, a computer analogy that’s not about cars
Batmobile
Hey now! PHP may be old and a bit clunky, but it gets shit done. I’d say PHP is the Colt repeating rifle, since PHP won the internet and the Colt won the West. Much like the Colt, there are better tools available today, but if you want stuff done reliably and quickly, PHP and the Colt are good choices.
Old enough they still know Prolog.
It’s not as common any more, but there’s still things using logic programming languages (Prolog and similar) even today.
Java uses it in the type checker. From the JVM spec:
The type checker enforces type rules that are specified by means of Prolog clauses.
There’s some other compiler and NLP (natural language processing) use cases for it too. I’ve seen some companies use it to define restraints for their business logic, which isn’t too different from the type checker rules use case.
It’s definitely fallen out of common use though.
We did Prolog in university - actually it was one of the two languages we had to learn in CS, the other one being Pascal.
I always considered Prolog a pain in the ass and unsuitable for anything bigger than a piece of homework due to the “we don’t do loops, we have tail recursion” making the code unnecessary complex and hard to read. On a list of Write-Only languages I’d rate it a few steps below Perl.
Tail recursion is just fancy way to loop.
There’s a few things it’s very good at, but anything outside of that tends to be painful.
I also used Pascal and Prolog in university, in my first year. That was… 15 years ago now. Wow.
I’m using Prolog in university right now. And Scala :(
Since my father makes anywhere from $400-$1200 an hour coding in COBOL, what’s COBOL?
Secret magic chants of the ancients
A T-Rex. The only people with the know-how to convert everything it does to something more modern are $400-$1200/hour motivated not to.
It’s a pretty good representation of Rust, being 3d printed means that it’s the only gun where you can’t shoot yourself in the foot
But it can just blow up in your face
[flips safety off[
Yet