race conditions
race conditions
race conditions
The puffer fish is Bash
Yep, it's the one starting everything.
And doing nothing else. And still something manages to no be right.
Rust is still in the locker room having an argument with their coach (borrow checker).
C++ is home sick, currently the doctor (compiler) is not sure whether it's got the flu or a terminal cancer.
terminal cancer
"I'm sorry, you've been diagnosed with :(){:|:&};:"
"You have a couple seconds to live."
Rust isn't shown because it's already completed the course
Not a word of a lie, I saw a "segmentation fault" error in JavaScript.
Can't remember how we resolved it, but it did blow my mind.
Technically any language runtime can end in a segmentation fault.
For some languages, in principle this shouldn't be possible, but the runtimes can have bugs and/or you are calling libraries that do some native code at some point.
Even safe rust can do it, if we allow compiler bugs
I have seen a Java program I wrote terminate with SIGSEGV. I think a library was causing it.
Yup, can confirm. We had a wrapper to a C++ library using JNI, so whenever this library crashed so did the entire JVM.
Ive also seen this, but not from js but node
I find it funny that the pufferfish blows up at its own gunshot
Labelling the crab as C is sure to ruffle some exoskeletons..
Only those who lack a sense of humor.
As at least one nautically themed childrens' book surely has it: C is for crab.
Coming at programming sideways feels more like a Haskell or Prolog thing, though.
I mean, at the end of the day, if you really understand your language of choice, you know that it is jusf a bunch of fancy libraries and compiler tricks of top of C. So in my mind, I'm a fully evolved programmer in a language, when I could write anything I can write in that language in C instead.
Or, rather, most compiled languages are just syntactic sugar on top of assembly, and that's especially true with C. (Oh, you can use curly brances and stuff for blocks? That's sure easier to read than the label mess you get with assembly.)
only true if your language compiles to c. fortran peeps are safe.
It's not what you can use that language to do - all general purpose languages are Turing Complete, so what you can do with them is exactly equal. It is about what the language will do for you. Rust compiler will stop you from writing memory unsafe code, C compiler cannot do that.
I mean, yeah, most languages are turing complete.
Why is openbsd the referee?
Rust: Downloading 7390327 crates...
I feel like Rust would be some complaint from the compiler saying that some apparently unrelated struct can't be Send/Sync for some inscrutable reason. Or something about pinning a future.
So it's just JS with an even more immature spec
Rust and Cargo were built to be in a symbiosis with each other.
NPM is an afterthought of a rushed language.
I would disagree. Especially since unlike npm every part of cargo was through through with all the experience and knowledge gained from npm, pip, nuget & co.
I have a LOT more problems with npm over cargo. Also it's 1 tool and not 100 different tools to do the same job (npm, pnpm, yarn, bun, deno, etc...)
No NullPointerExceptions in Kotlin.
The humble !!
operator.
C trying to take the shortest path to the goal.
Would probably have won (and broken the universe), if the referee didn't exist.
Python is being even smarter by trying to underflow the distance to the finish line.
This implies that Javascript will get moving in the correct direction once it finishes installing dependencies, but it's just going to get fucked with incorrect behavior that doesn't even have the courtesy to throw an actual error.
incorrect behavior that doesn’t even have the courtesy to throw an actual error.
To be fair, this can be said of C. A C executable only really forces a crash out when you royally screw up beyond the bounds of your memory. Otherwise functions just return a negative value and calling code that never bothers to check just keep on going.
Golang is similar, slightly mitigated that if you are assigning any return value from a function, you must also explicitly receive an error and you know full well that you are being lazy if you don't handle it. Well unless you use a panic/recover scheme but golang community will skewer you alive for casually suggesting that and certainly third party libraries aren't going to do it that way.
"npm install" in particular is getting me.
Noob should've used PNPM
and then there's ruby who didn't even qualify but still would have done better than the others.
"NPM install" isn't going to be the direct result of a race condition in JavaScript. And while I'm not familiar with Python, I'd guess that an "Indentation error" wouldn't be one either. A missing library or syntax error that's only discovered by executing a particular branch is still just a missing library or syntax error, not a race condition.
Also, while Node.js is popular, it isn't an integral part of JavaScript in the way that the other errors are integral to their respective languages.
I had to come up with a title, this was it.
It's a cartoon.
none of these are race conditions, they're just runtime errors. python only parses code when it is about to run that block so you can absolutely get a crash from bad indentation.
in my experience, the js world's focus on developer ergonomics has absolutely yielded some insane situations where running an installed script has caused it to start downloading more dependencies. however, this has unfortunately started happening in python too lately.
Python? That’s an embarrassed GAMBAS!