Source: so old it’s lost
You can definitely tell how old it is because both Rust and 3D printed guns have gotten way better.
And TypeScript is just the JavaScript sword, but with a cheap leather hilt.
And C# now can be taken off the donkey and mounted on a penguin and works rather well.
It’s a heavy duty hilt that’s easily detachable by a small recessed switch labeled “any”.
(It does its job very well as long as you don’t opt out of using it)
Except the tool you use to build the hilt in the first place has 100 permutations of settings, and most of them kill you on the spot.
Also C# (or should I say the .net framework) is now cross platform, which wasn’t really the case when I first saw this meme.
This joke made sense when instead of .net you could only use Mono with C# on other platforms, which wasn’t very good at the time.
I hosted my personal site using Mono over 10 years ago now and it mostly worked well. I contributed some code to Mono to fix a few edge cases where their behaviour deviated slightly from Microsoft’s.
Of course, I couldn’t actually look at Microsoft’s shared source code when doing that, so I had to just observe its outputs. At the time, Mono code had to all be clean-room implementations, since Microsoft’s shared source program, where they released parts of the .NET Framework 4.x source code publicly, had a very restrictive license that didn’t permit reuse (it wasn’t open-source). Even just looking at the code meant you couldn’t contribute to Mono.
I was very happy when .NET Core was announced and switched to a beta of 1.0 as soon as I could.
Perhaps a paper hilt. It’ll trick some people into thinking it’s safer but as soon as you begin using it you realise it still has all the same problems as before.
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. 🤣
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.
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!
As does C#. The Windows-specific parts are not the parts most developers will use these days.
C# is .Net though. It’s only syntax without it.
I think it’s definitely a dig at windows, because that used to be the primary issue with c#, you could only really target windows and you could only write it using windows. You could run .net framework applications on Linux, but it was a lot of work and it really underperformed (which would fit the timeline of 2015, when this comic was first posted). Now with .net core you can make a self contained executable that can run on anything.
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.
And does anything require Python v2 anymore? I work almost exclusively in Python and haven’t run into that in many years.
C is a knife. The basic thing you can build weapons (programming languages) with.
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.
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.
Old enough they still know Prolog.
And before the time people actually talked about the multidimensional clusterfuck that C become.
C changed from the 90’s to now. It got a lot of syntactic improvements, and a ton of semantic madness.
Our C is not the same as the last generation’s.
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.
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.
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
Using unsafe is like manually inserting a bullet in your foot using the 3d printed gun as a hammer