Our great sponsors
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
- I don't think the problem is on dynamic vs static typing (Python gets way less hate, even though it is also dynamically typed) but on the fact that most of the operations you do on different types does not make a lot of intuitional sense (https://github.com/denysdovhan/wtfjs). This is even more confusing when you are switching between languages all the time (like I do). There are quirks about JS that are JS-specific, as someone mentioned in another comment.
JS almost died out completely, but got a rebirth when people decided to start using the browser as a development platform (inherently bad idea). My list for python (I believe JS does some of these things too): https://github.com/barrycarter/bcapps/tree/master/WhyPythonSucks.md
I say this as a JS user, but there is no singular JavaScript (realistically, it's not even JavaScript but instead ECMAScript). There is no one place to go that lays out all of what the language can or can't do the way PHP and Python do. The ECMAScript board makes recommendations, then the browsers and runtimes implement features of the recommendations. This site does a good job laying out which features are implemented for browsers and runtimes based on the flavor of the ECMAScript standard. This unique experience can be especially frustrating for someone learning JavaScript and coming from another language that does not have this problem.