5 ms·
> The only real outlier being Javascript which gets its popularity from being the only option for the browser. This is probably the reason for Javascript's pop
by nnq 13y ago
> The only real outlier being Javascript which gets its popularity from being the only option for the browser.
This is probably the reason for Javascript's popularity, but if you ignore some bad language design, Javascript is a very simple language with a very small number of concepts that you need to understand to start getting work done in it. Even Python (which I think is the simplest of the widely used dynamic languages) has a larger number of concepts that you need to understand than Javascript.
So I don't think Javascript it's an outlier according to your theory, it's very much a simple language, the only remarking features compared to C/Java/C#/etc are the fact that it's dynamic and that some corners of it are badly designed, plus exceptionally badly designed API if you're doing anything in the browser that's not abstracted by a platform library.
- Sirenos 13y agoThat doesn't qualify as simple in my book though. Javascript has fewer concepts that programmers need to keep in their heads, but they are horribly inconsistent and quirky. Python, on the other hand, is consistently designed so that there are very few cases where you get hit with unexpected behavior.
- Skinney 13y agoWell, to be fair, most unexpected behaviour in js comes from people not knowing the language, or people expecting js to behave like other languages. I do agree though, that js does have its share of design quirks.
- chilldream 13y ago> most unexpected behaviour in js comes from people not knowing the language Isn't this just a rationalization? Any unexpected behavior is by definition something the user didn't know to expect.
- Skinney 13y agoWell yes. But in that case Haskell is full of unexpected behaviour for someone completely new to functional programming, as C++ is to someone used to Lisp.
- w0utert 13y ago>> This is probably the reason for Javascript's popularity, but if you ignore some bad language design, Javascript is a very simple language with a very small number of concepts that you need to understand to start getting work done in it I hear this a lot. JavaScript is great unless you [insert example why JavaScript isn't great]. You could easily turn that statement around: JavaScript sucks, unless you don't [insert example why JavaScript sucks]. It's an empty statement that could apply to almost any development language no matter how objectively 'good' or 'bad' it is. I don't know Scala, but judging from the (interesting) article it appears that Scala can be perceived as a bad language because it allows you to write obfuscated, hard to read code that hides many details of what's going on in the program. This can be both a good and a bad quality, depending on the kind of program, and the kind of developer. Personally I like languages that aren't too opinionated or restrictive, so I might like Scala. Compare this to JavaScript, which is a bad language for the simple fact that it's downright dangerous to program in looking at all the idiotic, arbitrary corner cases you have to avoid. You could have a philosophical discussion about the merits of the design choices in Scala, I don't think you could say the same about JavaScript though, it really is popular only by accident.
- berntb 13y ago>>It's an empty statement that could apply to almost any development language no matter how objectively 'good' or 'bad' it is. No, it isn't really contentless. All really complex systems will have ... well, less than perfect parts. That goes for programming languages in (at least) a subset of their use cases. You can either live in denial of "cruft" when choosing programming language or accept that you need to enforce a standard of best practices in your group. Then you evaluate languages with how they works if the best practices are followed. JavaScript's "good parts" -- and bad -- are well documented and discussed, most everyone knows about this subject. The overhead of designing/teaching and following those "best practices" needs to be factored into the equation too, of course. It might e.g. be too much of a pain for the std library of PHP (example chosen because I don't know PHP enough to have an opinion.)
- edwinnathaniel 13y agoThe problem is we can't ignore the bad language design. Look around and see those (depending on how you view them) odd/complex "design patterns" that only exist in JavaScript to emulate missing features.