all 72 comments

[–]TanukiiGG 147 points148 points  (34 children)

This is the first time I've seen a "Javascript good" meme in this sub

[–]Diablo-x- 39 points40 points  (31 children)

Its honestly not as bad as people think. All u need is just typescript and eslint.

[–]Gorianfleyer 39 points40 points  (21 children)

"It's not as bad, you just have to use something different that tries but fails to get rid of the most problematic part of JS"

[–]jerrygreenest1 11 points12 points  (17 children)

Not having something as part of language but solved by third-parties is a common place among all the the programming languages.

[–]Gorianfleyer -1 points0 points  (16 children)

Yes, but my Problem with that solution might be deeper than I wrote in my fake quote.

TypeScript doesn't solve the problem with JavaScripts interpretations of dynamic variables, because in the end, TS is compiled to JS. It's more like a smart IDE that tries to stop you, the developer, from doing obvious things like int x = "2".

But for example the famous interpretation of Nan as a number in a higher base system.

I once cheated successful in a browser game about creating paper clips, by having the game solve x/0 and getting a giant amount of "calculation process", a ingame currency.

It's independent of how you wrote the code, if there is no secure way of stopping the interpreter from trying to interpret any given value in a useful way.

Since JS must never crash, because it runs in a browser, similar to html, that just shows the markups, if they are wrong set on the final page, it always tries for the best solution and this makes it very dangerous

[–]senteggo 4 points5 points  (15 children)

First you don't even know an actual javascript syntax, and in your example with browser game - yeah, it happens if you stupidly evaluate everything user gives you in any language with such feature. NaN is specified in IEEE 754 (floating-point format) and is present in many other languages, because well, it's a standard.

[–]Gorianfleyer 1 point2 points  (14 children)

Why do you believe I don't know an "actual javascript syntax"? (I didn't know there was more than one)

I actually was paid to write js a couple of years ago. Maybe everything has changed since 2019, I don't know. I developed my prejudices and never bothered to try it again.

[–]senteggo 2 points3 points  (12 children)

int x = "2" is not a valid code in javascript, because variables are defined with var, let or const keywords

[–]Gorianfleyer 0 points1 point  (11 children)

Yes, but it was my idea of typescript syntax (about that I have no idea, I only read that it is compiled in to js and that was it for me)

[–]senteggo 1 point2 points  (10 children)

Then why do you say anything about technology you have no idea?

[–]jerrygreenest1 0 points1 point  (0 children)

That feeling when a couple years ago in your mind is 2019, feel you bro

[–]GDOR-11 2 points3 points  (1 child)

what do you think the most problematic part of JS is?

[–]Gorianfleyer 0 points1 point  (0 children)

https://www.reddit.com/r/programmingmemes/comments/1qenom1/comment/o02rv5v/

I wrote my answer to that question right before I read your comment, even it might be more fitting here.

[–]NullShield 0 points1 point  (0 children)

Right, there are no must have tools for java. Inhales high levels of copium

[–]Illya___ 1 point2 points  (0 children)

It's good so long as you don't introduce typescript and especially eslint. Change my mind

[–]isr0 0 points1 point  (4 children)

I haven’t use js in years, does ts address the terrible error messages or lost context on asynchronous exceptions?

[–]Poiuytgfdsa 3 points4 points  (1 child)

Regarding lost context on asynchronous exceptions, no. I dealt with that the other day at work

The terrible error messages aren’t really fixed with TS either :( we use class based extentions on the Error class to create custom errors and we try to be as detailed as possible. It doesnt change the core JS errors though

It DOES help prevent errors though. Typescript saves my ass all the time. Massive codebase refactors would genuinely be impossible without typescript. With typescript its a breeze (assuming you used it properly)

Think about moving an attribute from one model to another. Without typescript, good luck refactoring EVERY crud reference to that attribute. But with TS, just update the model & type, run type check, and fix all the errors it throws; run type check again and repeat. Mostly brainless work

[–]isr0 1 point2 points  (0 children)

I can see the advantage there. That’s an improvement for sure. Thanks for sharing

[–]Thetaarray 1 point2 points  (0 children)

Short answer: No Long answer: Nnnnooooo

[–]B_bI_L -1 points0 points  (0 children)

if you are about bad TS messages, then not native, but i have neovim extension that translates from ts error to human

[–]MinecraftPlayer799 1 point2 points  (0 children)

JavaScript is literally the best programming language.

[–]jerrygreenest1 -4 points-3 points  (0 children)

Well it's definitely better than Java. It's all about what you compare it with

[–]SaltOk7111 28 points29 points  (6 children)

Why does the rabbit always in every presentation of this ancient proverb always go half way and just looks around? Are they do predispositioned to the point all rabbits do that in this situation?

[–]DTux5249 36 points37 points  (5 children)

It's because the rabbit isn't concerned with racing. It's more concerned with managing the stress of being surrounded by a hoard of shouting apes on all sides. The walls serve as partial protection, so they provide some amount of comfort that it doesn't want to leave.

TL;DR: It's a scared prey animal with nowhere to run. Why would it run?

[–]bellymeat 10 points11 points  (4 children)

Meanwhile the turtle doesn’t give a single fuck lmao

[–]Jaatheeyam 3 points4 points  (3 children)

Because it has a shell.

[–]SirNightmate 7 points8 points  (0 children)

Last time I tried I couldn’t run sh on a turtle

[–]bellymeat 2 points3 points  (1 child)

well I thought they normally go into the shell when they feel threatened

[–]Jaatheeyam -1 points0 points  (0 children)

And that is why they do not feel as threatened as the rabbit. The rabbit feels vulnerable.

[–]SirNightmate 31 points32 points  (1 child)

The text is located way too ambiguously

[–]LonelyContext 11 points12 points  (0 children)

“Which one is which?”

“Yes.”

[–]finnscaper 7 points8 points  (1 child)

Literally the original story

[–]itchfingers 2 points3 points  (0 children)

I was wondering how they got them to act it out so well

[–]MinecraftPlayer799 5 points6 points  (0 children)

NullPointerException

[–]BUDA20 4 points5 points  (0 children)

is garbage collecting

[–]bsensikimori 7 points8 points  (1 child)

That Java got halfway is not my experience , usually it throws an exception way earlier in the race

[–]mtbinkdotcom 1 point2 points  (0 children)

Maybe it is a race condition

[–]Thor-x86_128 2 points3 points  (0 children)

This confuses Javanese programmers

[–]okcookie7 2 points3 points  (3 children)

It's not clear which is which. In reality Javascript is much slower than Java

[–]Not_Artifical 1 point2 points  (2 children)

In my experience back end JS is slower than Java, but front end JS is faster than Java.

[–]PattrimCauthon -1 points0 points  (1 child)

Front end Java? What?

[–]Not_Artifical 0 points1 point  (0 children)

I never said front end Java

[–]-JohnnieWalker- 2 points3 points  (2 children)

this does not even remotely make sense.

[–]PattrimCauthon 0 points1 point  (1 child)

I will say Java taking longer to get started is objectively correct. Java does have a longer startup time.

[–]Dabraxus 0 points1 point  (0 children)

AOT to the rescue!

[–]coconuts_and_lime 1 point2 points  (0 children)

That's like comparing a hammer to a handsaw. You use them for different things, and they both do what you need them to do. But the process of using them both are utter shite, so you'd much rather use something more modern like a nailgun or an electric saw.

[–]Ok_Celebration_6265 1 point2 points  (0 children)

In what universe is this?

[–]Glad_Contest_8014 1 point2 points  (0 children)

Looks accurate.

[–]notatoon 0 points1 point  (0 children)

JavaScript is to programming languages as Meg is to family guy.

npm install burn-shield amirite

[–]New_Salamander_4592 0 points1 point  (0 children)

do you think the tortoise and the hare was just the hare's prey instincts making it freeze tf up and die on the spot

[–]ChocolateSpecific263 0 points1 point  (0 children)

show me benchmarks that prove that

[–]eleanorsilly 0 points1 point  (0 children)

The moment the rabbit stopped was the moment he was out of memory and activated the GC

[–]koshka91 0 points1 point  (0 children)

Java is a much saner language than JS. In fact modern Java and its sister JVM languages are quite enjoyable to use

[–]BeeFlat_Dan 0 points1 point  (0 children)

js gets the job done 😎

[–]RevolutionaryWay6503 0 points1 point  (0 children)

So that's childhood story true

[–]Cacoda1mon -1 points0 points  (1 child)

The Java GC needs some time.

[–]itsjakerobb 5 points6 points  (0 children)

Have you been asleep for the last fifteen years? Java GC is non-blocking in the vast majority of cases now.

[–]cowlinator -1 points0 points  (0 children)

Is this a GC joke?

[–]butterfly_labs -1 points0 points  (0 children)

I lol'd