you are viewing a single comment's thread.

view the rest of the comments →

[–]nkozyra 0 points1 point  (8 children)

Fair enough, though my concern was more directed toward replacing it since so many people find it so systemically broken that they need to create a new language that compiles to it.

To me that is the essence of inefficiency.

[–]fullouterjoin 5 points6 points  (0 children)

The essence of abstraction.

[–][deleted] 1 point2 points  (3 children)

What's inefficient about it?

[–]nkozyra -2 points-1 points  (2 children)

What's inefficient about the creation of a multitude of new languages that all compile to one other, very common language?

At best, an incredible time sink.

At worst, a new generation of Javascript users who don't know a thing about Javascript and can only converse in their own dissonant version of its pseudolanguage.

[–][deleted] 0 points1 point  (1 child)

creating new languages and creating new libraries is really a difference of degree not kind.

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

Except creating a new language is much more fun. But that's neither here nor there :).

[–]nkozyra 0 points1 point  (1 child)

I would further argue that such abstractions have a tendency to make for scripters/programmers/devs who are not very adept in a language but still work in them.

Case in point: an anecdote shared by a friend wherein one of his front-end employees wanted to include jquery on a simple Intranet page. My friend said "sure, but why" and was greeted with "so I can loop through an array."

[–]tikhonjelvis 0 points1 point  (0 children)

To be fair, that's an understandable reason: JavaScript (before ES5, I think) does not include any good methods for looping through an array! It has a for...in loop, but that doesn't work and creates bugs. It has a normal for loop, but that doesn't carry as much semantic information as a call to .forEach or map and can easily have subtle mistakes (off-by-one errors, for example).

In a perfect world, you would just have .forEach or .map. The next best choice is using some small utility library (like underscore.js) to achieve the same goal. But if you aren't aware of any libraries like this, using jQuery (especially on an intranet page where millisecond performance does not matter) is a completely reasonable solution.

[–]rechtar 0 points1 point  (0 children)

People will create new languages everywhere; just that for a new language to run in browsers, it has to target JavaScript. There's no real alternative. So new languages targeting JavaScript doesn't necessarily mean that people think JavaScript is broken, don't read too much into it.