* Web Development is obvious, sure
* 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.
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.
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'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.