7 ms·
All of these compile-to-JS efforts are great, and as much as I love things like CoffeeScript I have to say I definitely worry about language fragmentation. Jav
by arturadib 14y ago
All of these compile-to-JS efforts are great, and as much as I love things like CoffeeScript I have to say I definitely worry about language fragmentation.
JavaScript is full of flaws, but its monopoly in the browser space has brought about one intriguing and welcome side-effect: a VERY efficient market for both employers and employees.
It's easy to overlook how important this common denominator has been for everyone involved. Employees have a tremendous amount of mobility within the industry: don't like your current JavaScript job? No problem - just about every dot-com needs a JavaScripter. Similarly, companies can today tap into a tremendous pool of JavaScript developers.
In today's fast-paced development environment, the ability to hit the ground running is key, and I worry that fragmentation will introduce unnecessary friction in the industry.
- zem 14y ago> In today's fast-paced development environment, the ability to hit the ground running is key actually, i think one of the major flaws in the current programming job market is overrating the ability to hit the ground running. that leads to a dangerous level of short-term optimisation, where, say, you'd choose an employee who has experience with your current stack over someone with a better track record but requiring a month or so to learn their way around the specific languages and ecosystems involved.
- latchkey 14y agoThis same fear of fragmentation is what kept Java from progressing for so many years and look what happened there. Things 'fragmented' by people just switching to other languages. I say roll the dice and see what happens.
- camus 14y agoJavascript is dreadfull , and its flaws are counter productive and intolerable. It has good things like closures and first class functions , and that's it. Most of js developpers hate javascript , but are forced to work with it. So they dont care what they use as client language provided it gets the job done. few people cares about Javascript. most of the devs hate it. But the browser as dev plateform is a fact.
- kofman 14y agoAgreed, it's a terrible language. Among other things, it makes it way too easy to write code which many people will read as being correct, but will actually be subtly incorrect. A few of the weakest parts: - for (var x in y) when used for array iteration or even dict iteration; hasOwnProperty? Really? - x[obj] = y; seriously, did i really want '[Object object]' as my key? - the choice of function level scope over block level scope
- Xcelerate 14y agoI'm not sure function level scope over block level is a bad thing. It makes it more Lisp-y. And if you want block level scope, it's about as easy as (in CoffeeScript): do -> ... local variables right here ...
- munificent 14y ago> I'm not sure function level scope over block level is a bad thing. It makes it more Lisp-y. Lisp has block scope.
- kofman 14y agoIt might be nice to make a canonical list of things which suck about JavaScript. https://hackpad.com/spTEgxqvFYj#Things-That-Suck-About-JavaScript https://hackpad.com/spTEgxqvFYj#Things-That-Suck-About-JavaS...
- 14y ago
- georgemcbay 14y agoJavaScript is forever stuck in design-by-committee hell, which dooms it long-term. Developers who do nothing but pure JavaScript and don't at least play around with the other options (Dart, TypeScript, Haxe, CoffeeScript, et al) are just going to be hurting themselves long-term. It is always a bad idea to tie yourself too strongly to any single language.
- zachrose 14y agoI don't know, ECMAScript 6 looks a lot like Coffeescript, and ECMAScript 6 modules look a lot like Node modules.
- georgemcbay 14y agoECMAScript 4 looked a lot like ActionScript 3 up until the whole thing was suddenly killed. I don't care too much what a language is supposed to look like years from now if everything goes right. This goes double for languages with a tortured history of failure when it comes to big changes.
- dmorgan 14y ago>I don't know, ECMAScript 6 looks a lot like Coffeescript, and ECMAScript 6 modules look a lot like Node modules. The fact that after all this time and efforts, ES6 won't be released for another year plus, speaks volumes about the "design by committee" thing.
- BrendanEich 14y agoNope, spec finalization follows shipping. First, Firefox and Chrome (under a flag, to be removed) already ship great pieces of ES6. JSC (Safari) and IE prototypes coming too. This is necessary to test interop and design soundness. Second, we don't do "Design by Committee", we use the "Champions" model where 1 or 2 people design a proposal and a larger number beat it into consensus shape without "redesign". Nothing's perfect, least of all with multi-browser standards, but if you have an alternative for evolving the actual JS language implemented by browsers, lay it on us. Compilers on top are great, and many. Good to see MS do one that tries to build on ES6.
- eddieplan9 14y agoI think you were referring to the JavaScript syntax when you said JavaScript is full of flaws, because IMHO the language itself - except the syntax component - is actually very good. Someone on Quora said[1] it very well: JavaScript is a wonderful language, deep down: It's Lisp-y, yet imperative. Its lack of support for threads has turned out to be a strength on the server side. And recent implementations have made it very fast. People favoring node.js and compile-to-JS languages like Iced CoffeeScript to other server-side languages supports the fact that JavaScript itself is actually quite decent. At the end of the day, a language too broken could not easily be fixed with any thin compile-to-* effort, and most of the compile-to-JS efforts (with the notable exception of emscripten, whose goal is not to fix JavaScript) are quite quite thin. [1] http://www.quora.com/CoffeeScript/What-are-disadvantages-of-using-CoffeeScript/answer/Trevor-Burnham?srid=XL5&st=ns http://www.quora.com/CoffeeScript/What-are-disadvantages-of-...
- stdbrouw 14y agoThe intrinsic beauty of JavaScript doesn't matter in this context. Either you use JavaScript or you use something else, and if you use something else then that'll lead to language fragmentation, which is arturadib's concern.
- norswap 14y agoThe good parts are good. The bad parts are pretty horrible.
- zemo 14y ago>Its lack of support for threads has turned out to be a strength on the server side. ummmm, can someone elaborate? I don't understand that statement.
- eddieplan9 14y agoI think it means the language forces designs and eventually an ecosystem that's optimized around having cooperative multitasking as the only option. That makes dealing with concurrency an easier task since every library you depend on also takes concurrency seriously. And since cooperative multitasking is much much more efficient than preemptive alternatives, you end up with applications with great efficient concurrency support by default.
- deleted 14y ago[deleted]
- deleted 14y ago[deleted]