+1 "JS is the only API we currently have to use one of the most popular plateform we have" would be more accurate. And it's a terrible API. I can't wait for webassembly.
It's maybe fair to say it's the most important technology when it comes to web development. The software engineering world is much bigger than just web development, though.
* Cross platform app development: React Native, NativeScript, Electron, nw.js, and others are extremely powerful, arguably among the best cross platform solutions, and all are gaining in popularity
* Server development. NodeJS is hard to ignore because it's fast, easy to develop in, and has the amazing (if sometimes frustrating) NPM ecosystem.
Software engineering is bigger than that trifecta, but you probably hit the 80% mark if you count all application, web, and server code development. JavaScript is making some inroads into embedded, but it's not as ideal for embedded work, except as a control language from the outside, so I'm not as bullish on JavaScript there.
Throw in TypeScript and a good linter and you have a really strong, flexible, dynamic-yet-statically-typed environment that you can use to hit the (estimated) 80% mark. It really does live at a sweet spot in productivity and software engineering, if you ignore the anti-JavaScript snobs. [1]
[1] Disclaimer: I was an anti-JavaScript snob as recently as about 5 years ago. My background is in games, drivers, C++, assembly language, several other scripting languages, and writing native apps. Things that changed include: 1) Me, in that I gave JavaScript, and later TypeScript a try, 2) I learned to love linters and transpilation, 3) The ecosystem exploded and the tools we have now, including VS Code and build tools like gulp, not to mention the built-in debuggers in every major browser, are now amazing, and 4) JavaScript and TypeScript themselves evolved and upgraded until they were actually both very good languages.
Thats still a fraction of the overall software engineering world. There's a lot more in the world than websites and phone apps that need code to run.
That's not taking away from its importance, that's putting it into perspective. I'm not an anti-javascript snob either (I'm not sure what that actually means), I just think it's a bit hyperbolic to call javascript the most important thing happening in software engineering right now when we're solving much bigger global problems than that right now with technology.
> I'm not an anti-javascript snob either (I'm not sure what that actually means),
Having been one, and having argued with several, it generally means:
* Looking at how JavaScript started vs. where it is now.
* Complaining about the ways that the backward compatibility requirements of the language can lead to obscure bugs, e.g., auto-coercion on "==" comparisons can end up with surprising and sometimes bug-causing results
and, importantly
* Ignoring all of the best-practice advice to use linters (eslint, tslint) that, in a deterministic manner, prevent you from writing code that contains any of the above bugs.
TypeScript also solves 95% of the major JavaScript complaints.
>There's a lot more in the world than websites and phone apps that need code to run.
and
>I just think it's a bit hyperbolic to call javascript the most important thing happening in software engineering right now when we're solving much bigger global problems than that right now with technology.
If you count all of the code to run apps, servers, and web clients, I think you do hit the majority of code out there, at least if you're counting the number of developers working on it. I think you would hit a majority just with web client side. It seems like everyone and their sister does web development. With all three domains it seems trivial to hit 50%, and I think 80% is still a reasonable estimate. A quick search finds no statistics on this, though. :|
Whether there are "bigger global problems" that are being solved elsewhere isn't really relevant. It's entirely reasonable to say that something is highly important to "software engineering" if it has relevance to more than 50% of software engineers.
I don't have complaints about javascript. I'm a web developer. I also use React, it's awesome and makes developing a rich user interface much easier. It's not a silver bullet for anything though. Isometric web development is great, but sometimes I think it's more of a solution in search of a problem than an actual problem (it's great that I can render server side, but do I need to? not usually). React native is great, too (if you're smart enough to plan your app ahead of time the right way). Overall though, these are fantastic toolchain improvements that reduce development cycles when used properly.
That's all they are though.
I still don't think it's the most important thing to be happening in software engineering. It's a fundamental change in how people use javascript. That's it.
> If you count all of the code to run apps, servers, and web clients, I think you do hit the majority of code out there, at least if you're counting the number of developers working on it. I think you would hit a majority just with web client side. It seems like everyone and their sister does web development. With all three domains it seems trivial to hit 50%, and I think 80% is still a reasonable estimate. A quick search finds no statistics on this, though. :|
Um, not even a little bit. My oven, microwave, and dishwasher all run on code. They have since the 90's. Including my car. I can understand how you could perceive the majority of code written to be for web development as a hacker news reader, but there's a wide world of programming that extends far beyond what your perceiving.
> My oven, microwave, and dishwasher all run on code.
The quantity of code being written for devices like that is not high, and the quality is almost universally crap. Bad enough that I'm pretty certain 99% is written by a hardware engineer who needed to get the product to work but who had no clue about software engineering.
I've worked with people who write code for cars, and I've done embedded work. One developer can support dozens if not hundreds of products over a career. I still stand by the fact that most software engineers fall into the categories I'm talking about, if only because one software product might require 100-10,000 developers work on it for years, while your microwave probably took one person a month (and an actual software engineer should have been able to write the code in a couple of hours).
I'm not counting by number of devices. I'm counting by number of software engineers. And even if you count the hardware engineers who don't know the first thing about software engineering, I don't think you'd come close.
I guess it comes down to what you mean by "important". I for one hope that airplanes, power plants and medical machinery are all programmed with something else.
I never claimed that JavaScript was or should be used in any of the above. Just that it's "important in software engineering", by which I mean it's used or usable by people in 80% of the actual jobs in "software engineering."
I'd probably prefer to see a language like Go or Rust in critical systems. Self driving cars come to mind as well, but probably anything IoT or otherwise infrastructure related. But I think those jobs, all together, are a minority of programming positions.
I hope so, anyway, because I don't actually believe there are enough smart developers to work on critical systems if it's anything like half or more of the software engineering population. Most developers pretty well suck.
I didn't mean to imply that you made such a claim. It was just a way to point out an alternative interpretation of "important." That is, some things may be of greater importance even if there are fewer of them.
It's nitpicking really, I understand that you had a particular perspective on what "important" meant in this case.
Uhh ... no?