6 ms·
The problem is that everything in JS exploded during just few years (Node was published in 2009), and it took few years to build tooling around Node to start ut
by bloomca 10y ago
The problem is that everything in JS exploded during just few years (Node was published in 2009), and it took few years to build tooling around Node to start utilising all this power.
And then everyone started to build "rich" web applications (it is called differently every year), with the "best" tool existing. I personally see two major problems – usually cool startups who can afford using the bleeding edge will die soon (or will get enough money to completely rewrite it), so 'maintanence' in idiomatic way doesn't work here – life cycle is extremely small, and it reflects in the way libraries are written in JavaScript. Also, the barrier is low, and therefore we have a lot of complex websites built by novices, running in development mode in the actual production.
Community also is very "poisoned" with the idea that you _have_ to work in your evenings (contributing to OSS, writing your own or just playing with hot technologies), and therefore new stuff is baked extremely quickly. It is usually very low quality, and you have to cope a lot in order to make it work, and often you have to dive into source code, and it is considered as normal, which is quite sick from my point of view.
Also, it is truly "hype" community, which is super excited about what is hot now – and it means that today kings will be overthrown very soon (right now stuff like Cycle.js and Vue.js is gaining traction). Nobody wants to maintain their libraries – and very often you can see projects with a lot of stars completely abandoned.
Recently, Babel.js was defined as _defacto_ standard, and it basically started transpiling era, which is not going to end in the foreseeable future. It shakes the stability, and makes extremely easy to add new features (like stage-0), and people just used to unrealiable tools.
So, all of this works as a snowball, which only speeds up. People create more and more complex web applications, and also js is going into other fields (like microcontrollers, Node.js grows in popularity, React Native is super hot now). When it will stop? Nobody knows. Maybe WebAssembly after implementing will stop it (people will spread over competing technologies), maybe no.
- cygned 10y agoAs someone who's working in that environment every day I cannot agree more.
- ourmandave 10y agoSoon we'll have trouble hiring Angular 1 devs to maintain legacy code, like COBOL. Except COBOL started in 1959, not 2009.
- tscs37 10y ago50 years later and we still haven't learned.
- Roboprog 10y agoAngular 1.0, June 2012 https://github.com/angular/angular.js/releases?after=v1.0.4 https://github.com/angular/angular.js/releases?after=v1.0.4 ... And I actually prefer ng-1 to the transpiling mess that is ng-2, as well as preferring to use functional composition rather than pseudo-static classes for the controller logic. https://github.com/roboprog/ang-prog-enh https://github.com/roboprog/ang-prog-enh
- rdeboo 10y agoIt seems to me that many big companies are asking for Java + Angular skills these days; and that many new projects are build using that stack. This has the effect that it is still very worthwhile to learn Angular 1. I don't think it is going anywhere soon, plenty of companies are invested in it.
- agentultra 10y ago> Also, the barrier is low, and therefore we have a lot of complex websites built by novices, running in development mode in the actual production. I'm not a huge fan of the "Javascript programmers are novices" myth. It's quite damaging. Javascript is a kitchen-sink language these days in the ES6+ world. You've got the functional programming features... monads, functors, applicative and even immutable data structures are just a library. You have classes, interfaces, protocols and of course event-driven programming, prototypes, etc, etc, etc. It's not a small spec these days. The point is that there are smart people who use the language to great effect. Enough with the "unwashed masses," story please. Personally I'll take an ML or Lisp based language anyway... but thankfully I can have my cake and eat it too by compiling to Javascript.
- LeoNatan25 10y agoNothing here disproves the claim you try to disprove. "There are smart people" - that's a given, but how does that disprove that the barrier is low, and the vast majority of less-to-none experienced developers choose JS these days?
- agentultra 10y agoI was tackling the blanket assertion that Javascript developers are novice programmers. It's understood that there are programmers of all skill levels who use Javascript. However statements like the aforementioned are dangerous when people just assume it must be true. There are novice programmers and many of them choose Javascript is more accurate. The aforementioned assertion is used as a pejorative by programmers from other languages who think, perhaps rightfully so, that Javascript is inferior to their language of choice. That doesn't make Javascript programmers as a whole inferior despite what such a blanket statement implies.
- fsloth 10y agoI think in general since the number of programmers grows, the majority must be novices, and the language growing most rapidly has relatively the largest amount of novices. I know it sounds like snobistry and not a statistical blanket statement, though.
- marcosdumay 10y agoMy hope is that with WebAssembly, it will stop mattering. JS development will probably go on like if nothing changed, but people that don't like it will be able to opt-out.
- minitech 10y agoWebAssembly is a neater target format, but we can already compile to JavaScript today.
- marcosdumay 10y agoAnd several projects already are compiling to it. But it is not neat, what makes those projects less reliable and featurefull. Often enough for people to say "fuck it!" and go back to JS. If WebAssembly takes too long, I can see JS compilers getting very good, but it's looming availability is discouraging that.
- minitech 10y ago> Often enough for people to say "fuck it!" and go back to JS. Because having an extra compile step or language to learn is inconvenient no matter what you target. > If WebAssembly takes too long, I can see JS compilers getting very good, but it's looming availability is discouraging that. I haven’t seen any of this.
- nobleach 10y agoHaving been a programmer for the past 18 years, I can say that JavaScript definitely suffers from "rock star" syndrome. There are great people in every programming community... and JavaScript is no exception. But never have I seen a community so plagued by the conference speaker, twitter famous types. (The types that refer to people not in their perceived realm of popularity as "filthy randos") It's incredibly toxic. I want to scream, "we're all geeks, just like you. You are not really a rock-star!!! No one outside of this niche community even cares what you think about anything at all!!!" Today's novice programmers have potential to be tomorrow's great inventors. That's why I can extend an amazing amount of empathy for sloppy code, bad architecture, etc. The poison that you speak of has the image of the SV archetypical, studio dwelling, hip 22 year old. None of this is the fault of the language though... or OSS. I think you're correct in mentioning "hype".
- erlich 10y agoSome ppl simply are rock stars. They are better than everyone else at the whole open-source lifecycle. They know how to do the marketing, manage scope, ship features, manage issues, etc. To make a successful open-source project is not easy and is about balancing a range of factors, including balancing their work/life. Not everyone can do this, or wants to do this. I think rock stars earn their status.
- bloomca 10y agoWell, the thing is that in JS community there are tons of rock starts who basically do simple stuff (which was done 100 times before them), but only after their presentations it goes crazy. People retweet them, use as a credible source, etc. Also, there are a lot of people who are very opinionated and just push it and by this become famous in JS land. Yeah, that's true, that they invest a lot of personal time in this stuff, and they do a very good job in balancing, but the problem is that people trust them in important questions like performance even despite the fact many of them don't know CS basics properly (like data structures, etc). I don't want to say all of them are this way, there are some well-educated people who definitely know a lot and deserve all of this. But as it was mentioned earlier, a lot of them are just 22 years old hip guys who released something what became mainstream/were involved in it and became ambassadors.
- stcredzero 10y agooften you have to dive into source code, and it is considered as normal, which is quite sick from my point of view. For an environment that's as dynamic and open as Javascript, my POV is that one should be able to dive into library source code -- but that changes resulting from this should be an unusual circumstance, having to do with edge cases. If the normal situation is that you are always doing this, and it is always is flat-out basic debugging, then this is messed up. The ability to dive into and debug everyone's source code should be considered a blessing. It's a great way to learn coding style and programming! It's one thing that was great about working in Smalltalk. However, the need to do so just to fix library bugs should be viewed as a symptom!
- spiffyman 10y agoI'm uncomfortable with how willing I am (and others are) to just make/accept claims about how terrible the JS community is without evidence. In this thread there are tons of people saying JS devs don't understand CS fundamentals, write low quality code, and take their bearings from hype; that the "vast majority" of inexperienced people choose JS; etc. And I haven't seen any statistics on this or even a single example of such things. I'm a Python guy who's working in Java at the moment. I don't particularly care for JS or frontend work, and I make no bones about it. But if someone were saying all this about the Python or Java communities, I'd be asking for evidence. And, frankly, I'd be pissed. So I think we should hold ourselves to similar standards -- don't just shit on a community because that's how you feel. Provide cases. And possibly even advice on how to improve!
- planteen 10y agoDo you have more details on JS in microcontrollers? I'm curious about real-time systems, etc. I found the Tessel (https://tessel.io/ https://tessel.io/), but its hardly a microcontroller - its a MIPS SoC. It looks like the Espurino is more of a traditional microcontroller. But the unit cost is high - $40! Is anyone using JS on a microcontroller in a high volume product?