1. It takes java’s name in vain.
You know what the name ‘javascript’ says to you? It says “I am a script based heavily off the language java.” You know what the documentation for javascript says to you? “My developer was sitting outside in the rain coding this while playing the ‘take a shot for every semi-colon’ drinking game.”
It is NOTHING, and I mean NOTHING like java. What does it get from java? Semi-colons at the end of expressions and other grammar-like syntaxes.
2. Half-assed typecasting.
Static typing is when you note what type of variable you have next to your variable. Like, if you’re doing algebra, all your variables will eventually be replaced with numbers, yes? Or perhaps integers. In the case of integers, you would tell the computer: int x. This means: “Dear Computer, if I ever try to put anything other than an integer in this variable, slap me shitless.”
Java does static typing. Javascript does not….except for one case. Whenever you make a variable, you have to half-assedly typecast it ‘var’. Like, how does that help? If you’ve decided not to type anything, stick with it! Bro, we both know this is a variable. You know what I can’t remember? WHAT’S INSIDE THE VARIABLE! Is this supposed to hold a list or a number or a letter? I don’t know! You know, but you won’t tell me because….
3. It can’t debug for shit.
Debugging is when the computer comes back to you and goes: “Master, I was trying complete the task you assigned to me. However, I reached this line and everything went kaput.”
Javascript doesn’t do that. No. If you get one thing wrong in javascript, your whole piece of code will tear itself into tiny shreds in front of your face laughing maniacally while you wonder where you went wrong. Oh, your browser will tell you sometimes. But only sometimes.