Rust:
Cannot move princess out of
castle
which is behind a shared referenceYou can’t rescue the princess, but you can borrow her.
It will also complain that trying to break into the castle is unsafe, so you have to tell it that you know.
“Alright, but you better be outside of a properly locked up and OSHA-compliant castle with the princess by the time I get back, or I’m not compiling”
And then you do that, but you miss a smoldering ember from one of the castles torches, and everything including the horse and princess catches fire. Next time, pick an escape plan that only requires
unsafe
for the drawbridge.There’s a totally safe way to do it too, I guess, but it involves building a series of replacement castles, and it’s also totally ugly and sinfully slow.
That just means you designed your castle unsafely.
Skip the castle and call the princess directly!
Just clone the princes and get on with your day.
You have Rust. (the knight in this panel looks very cool, wears sunglasses, and probably has a ponytail)
You’ve been told how easy it is to rescue the princess. Absolutely nothing will get in your way, they say; nobody can possibly get access to your plan, and you can even rescue multiple princesses simultaneously! (in this panel, the knight is imagining rescuing three princesses from three different castles at the same time)
You start working on your plan. It’s elegant and beautiful. You write articles on Medium to tell other knights how to rescue their princess. You tell everyone who will listen about your plan. You become a Rust zealot. You never rescue the princess. (In this panel, the knight is nowhere to be seen, and the princess looks bored in her tower. The knight is across the field, at a festival with the banner “RUSTCONF” flying overhead)
yeah but memory safety tho
Yeah not one mention of “I’ll never forget you Princess”
Great punch-up. I wish I’d thought of it.
I’ll never
std::mem::forget
you…
no python? how are normie programmers like me supposed to relate to this?
You have python. You import antigravity. The princess flies off into space. You monkey patch the princess so she has wings.
And this is how I learned about the antigravity module. Pretty cool!
Same! I also learned about
import this
“In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you’re Dutch.”lol
Python: You send someone else to rescue the princess on your behalf. That someone else is the C knight.
Only if you have to rescue many princesses in a short period of time
import army
Which is a library written in C, of course.
The artist is still waiting for the python cells to render.
Rescuing is only I/O bounded; your argument is irrelevant.
No perl either. Much like python you find a relevant library (in cpan), but unlike python there will be seven different implementations, and any four perl devs will come up with at least ten solutions, nine of which will successfully rescue the princess
Everything will seem to be be going great, but to actually gain access to the castle you’ll have to compare your situation to successful rescues to find the undocumented drawbridge control
You have Rust.
Forget rescuing the princess, that’s unsafe. Lock her down even more!
You use Assembly.
You describe each and every leg movement and each and every step to the castle and over the castle bridge and inside the castle.
You somehow end up in the castle kitchen.
Or more precisely. You end up in a dark room. You’re not sure it’s in the castle.
And the only way back is by counting every step you took on the way in, and if you miss one, the castle buries you.
But if you’re right, you have the princess and return home before the guards are done drawing their swords.
Here is the original comic, it’s got the word fuck in it! Direct link to higher-quality image.
Changed the image link, thanks.
You seem very excited so now I have to check it out.
e: holy shit, it does
Python:
from Rescues import Princess Princess.rescue()
map(lambda princess: princess.rescue(), [castle.get_princess() for castle in castles])
Don’t forget to keep your return values…
rescued_princesses = [{"princess": princess, "rescued": princess.rescue()} for princess in [castle.get_princess() for castle in castles]]
from Castle import Princess
Done
You have rust.
You get a horse and arrive at the castle within seconds but the horse is too old and doesn’t work with the castle.
You remove the horse, destructure the castle and rescue the princess within seconds, but now you have no horse.
While you’re finding a compatible horse and thinking whether you should write your own horse, Bowser recaptures the princess and moves her to another castle.
So let me summarise this:
Only C and Lisp actually completed the initial task of getting the princess free, and Author clearly favors C over the drooling and homeless lisp hacker. Also, turns out, C greatest weakness helped to save not only the princess but everything she ever possessed! How convenient!
Naah, C stabbed himself in both of his feet while planning. The rest of it is his dying mind hallucinating saving the princess.
Lisp is the true hero, but the author has parenthophobia
Rust:
You crushed the princess under the weight of all the crates you imported
Nothing against the singularity that is a node_modules directory
You have rust, you decide to rewrite the C plan but the only library that supports it uses unsafe code so you go back and rewrite it. Wait what were you working on?
You have Perl.
_=~aj/dy/hfiw8i/g;
$_/a(h0w8)y@;
FWA/E.*FW[tu29uy]/;
(1)hjc/f4ifh38/y;
The princess is saved, but all you can think about is rescuing another, with an entirely different plan. Which is just as well because you have no fucking idea how to explain the one you just wrote and executed.
PHP 8 makes it finally possible to rescue the princess, but you accidentally princess the rescue instead.
PHP 8 makes it possible to rescue the princess but your 83 legacy princesses are all still PHP 5.
I did not want to be reminded of that today 😡
Ruby: there is a built in method called
free_the_princess()
require 'castle' begin Castle.attack rescue Princess puts "Done" end
On Castle, no less.
C# is about right. LINQ was meant to make things easier, or at least the code easier to read. Instead, you gain this addiction to seeing how much functional logic you can fit into one line of code (or a single multi-line query) while still remaining readable.
I feel personally attacked.