243 points
*

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.

permalink
report
reply
47 points

And C# now can be taken off the donkey and mounted on a penguin and works rather well.

permalink
report
parent
reply
5 points

Now i can’t get that picture out of my head. Its amphibious too!

permalink
report
parent
reply
36 points
*

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)

permalink
report
parent
reply
18 points

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.

permalink
report
parent
reply
3 points

I’ll take .tsconfig and .webpackrc over C# .config files every day of the week.

permalink
report
parent
reply
32 points

because it makes it (type)safe to use…!

permalink
report
parent
reply
27 points
*

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.

permalink
report
parent
reply
9 points

Yes, especially when you’re running linux, and the project you started on windows that uses serial ports suddenly doesn’t work any more and you wonder why.

Hint: The events for serial data received didn’t fire under mono, for reasons.

permalink
report
parent
reply
8 points
*

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.

permalink
report
parent
reply
8 points

Mostly right. Microsoft showed off how .NET 1.0 worked on FreeBSD but it was absolutely pointless since they didn’t provide commercial licenses to run it on anything else but Windows until .NET Core.

permalink
report
parent
reply
17 points

And Python’s migration to 3.x is more or less complete. Took a while (15 years since 3.0), but it’s to the point where migration is not a common topic of conversation.

permalink
report
parent
reply
2 points

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.

permalink
report
parent
reply
3 points

I don’t know, man. I migrated one of my libraries and found 3 bugs just from that. It’s prevented a number of other bugs and issues too.

permalink
report
parent
reply
131 points

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)

permalink
report
reply
41 points

Thank you! The original source of truth! 💎 As IT people, this is part of our culture and should be transmitted. 🤣

permalink
report
parent
reply
12 points

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.

permalink
report
parent
reply
78 points

C++ and ruby are weird, especially since C is somehow considered a reliable rifle. Rust betrays it’s age

permalink
report
reply
71 points

C is reliable in the sense that your C program reliably has memory leaks and security holes.

permalink
report
parent
reply
17 points
*

Unlike your Java program amirite.

The benefit of java is that you didn’t write the security holes in your software.

permalink
report
parent
reply
3 points
*

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!

permalink
report
parent
reply
2 points

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.

permalink
report
parent
reply
25 points

As does C#. The Windows-specific parts are not the parts most developers will use these days.

permalink
report
parent
reply
24 points

I took it as the donkey being .NET

permalink
report
parent
reply
12 points

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.

permalink
report
parent
reply
15 points
*

Agree. That one didn’t age well…

permalink
report
parent
reply
15 points

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.

permalink
report
parent
reply
12 points
*

And does anything require Python v2 anymore? I work almost exclusively in Python and haven’t run into that in many years.

permalink
report
parent
reply
7 points

Python v2 was sunset in 2020. So only legacy software.

permalink
report
parent
reply
5 points

Someone should tell Ubuntu (or Debian, I’m guessing).

permalink
report
parent
reply
9 points
*

C is a knife. The basic thing you can build weapons (programming languages) with.

permalink
report
parent
reply
2 points

Or a screwdriver?

permalink
report
parent
reply
4 points

Yes. Knives can also be used as screwdrivers for fasteners with a “blade” or “flat” head.

permalink
report
parent
reply
2 points

It’s a screwdriver without a head because you have to build it yourself

permalink
report
parent
reply
7 points
*

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.

permalink
report
parent
reply
4 points

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.

permalink
report
parent
reply
3 points

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.

permalink
report
parent
reply
1 point

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.

permalink
report
parent
reply
1 point

Two days ago lol

permalink
report
parent
reply
52 points

Old enough they still know Prolog.

permalink
report
reply
9 points

And before the time people actually talked about the multidimensional clusterfuck that C become.

permalink
report
parent
reply
5 points

Well, to be honest C is still C, but it’s children have run mad.

permalink
report
parent
reply
5 points
*

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.

permalink
report
parent
reply
6 points

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.

permalink
report
parent
reply
4 points

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.

permalink
report
parent
reply
4 points

Tail recursion is just fancy way to loop.

permalink
report
parent
reply
2 points

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.

permalink
report
parent
reply
42 points

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

permalink
report
reply
17 points

[flips safety off[

permalink
report
parent
reply
16 points

But it can just blow up in your face

permalink
report
parent
reply
8 points

Yet

permalink
report
parent
reply
1 point

You underestimate me

permalink
report
parent
reply
2 points

Using unsafe is like manually inserting a bullet in your foot using the 3d printed gun as a hammer

permalink
report
parent
reply
1 point

Using unsafe

You really underestimate me

permalink
report
parent
reply

Programmer Humor

!programmerhumor@lemmy.ml

Create post

Post funny things about programming here! (Or just rant about your favourite programming language.)

Rules:

  • Posts must be relevant to programming, programmers, or computer science.
  • No NSFW content.
  • Jokes must be in good taste. No hate speech, bigotry, etc.

Community stats

  • 6.5K

    Monthly active users

  • 1.5K

    Posts

  • 35K

    Comments