I submitted this after 'brlewis linked it (it's his piece) in a comment because it really hit home. Like, I've never used Mithril, but I dove into React (both web and React Native) this year and it reminds me of when doing web stuff was fun. Which, for me, was before anyone was actually using JavaScript.
There are a lot of skeptics about modern JS frameworks, and I get it (my inclination in every programming environment I've ever worked in is to avoid frameworks, etc. until I know I need them), but boy is this a big, and awesome, change.
Thanks, glad it hit home. I also remember back when best practice in web dev was to avoid JavaScript. A lot of the new shiny things in between then and now just weren't it, but a lot of today's new shiny things are for real.
You know a lot of people are terrified of change and new stuff because it might mean their skillset is obsolete.
That's a lot of what this backlash against JS is. Some of the criticism is warranted, but a lot of it isn't, it comes from people who have never done anything other than sneer at the language, and for every issue JS has, you can find a matching issue in another language that either a) isn't a problem because there are idiomatic solutions or b) everyone in the choir knows it's dumb but they don't say it to outsiders, because why advertise your weaknesses?
JS today is very expressive (more expressive than Python simply due to good lambdas - not to pick on Python but it's a language that doesn't get the hate of a JS or Go), it's been fast for awhile, it's got a dozen new interesting frameworks, the tooling keeps getting better, etc. This can either scare you or represent opportunity.
We've got a 5k line JS app. It was written by people who weren't programmers, in a jQuery/d3 ball (it was still an impressive interface). Over the summer we've converted it to Mithril and modern JS, now it's half the size, our dev environment is setup with a simple npm install and npm start, we have reusable components that multiple people can grok and use, it only takes a 20 line webpack file to do this all, and before the summer started none of us had used the framework.
It's amazing what it has enabled us to do and how simple the whole stack is. I've been building desktop apps and small intranet web apps for a decade, they don't hold a candle to what's possible if you harness this stuff. People can complain all they want but this is what progress looks like. Someone might not think it's cool that you can write an interactive single page application in 50 lines of code that anyone in the world can access, but isn't that what we wanted?
It takes a day to grok this stuff, a week to build interesting stuff in it. It's worth the investment, you might actually learn to do things you couldn't before. That's fun.
> You know a lot of people are terrified of change and new stuff because it might mean their skillset is obsolete.
That's a lot of what this backlash against JS is. Some of the criticism is warranted, but a lot of it isn't, it comes from people who have never done anything other than sneer at the language, and for every issue JS has, you can find a matching issue in another language that either a) isn't a problem because there are idiomatic solutions or b) everyone in the choir knows it's dumb but they don't say it to outsiders, because why advertise your weaknesses?
I think a lot of the "sneering" is less about fear of "new" things and more about frustration that old ideas that they previously considered are now being presented as "new" by a generation of people who either did not see themselves or did not ask an oldster about the old ways.
The tell for me, is in what things get the most sneered at. Node and npm tend to get a lot of sneering, because they're essentially attempts at solving problems people had already solved before. People don't sneer as much at other things like React (except for its license and large number of dependencies, and the latter is really npm/language sneering).
I think this is a pretty good analysis. NPM, to me, is a pretty consistent string of "you did what and why?" reactions. But once I get away from that, to stuff like React, my attitude changes to "oh, yeah, this is good stuff."
Cool story of what you've been able to do by investing in modern web technologies like Mithril.
The part where you say a lot of people are terrified of heir skillset becoming obsolete -- I'm not sure I see that in web developers. Everybody I talk to is happy that their knowledge is now obsolete of which array methods don't work in IE8, for example.
Possibly a lot of the backlash against JS comes from conversations that go like the "How it feels to learn JavaScript in 2016" essay rather than like the one posted here.
Agree: for me it's nothing to do with fundamental obsolescence. JS as a language is doing fine and I welcome the new additions in the various ECMA standards.
What I'm not so welcoming of is, for example, the Angular 1.x -> Angular 2, 4, whatever transition. I don't want to have to keep thrashing my projects due to incompatible upgrades.
And I'm tired of the hype cycles. Not so very long ago everyone and their dog was banging on about how React was the next big thing, and now a lot of them are running scared over the patents issue. It seems like almost overnight all I read about now is Vue.js, but I know that in another few months, or maybe a year, everyone will have moved on again.
Fundamentally there's just no incentive to invest, especially not if you have other things you also need to focus on in your work and life.
The easy way to avoid hype cycles is to just ignore the thing being hyped for a few years. I don't know the exact value of a few; five should be enough to clearly tell whether a fad is a failure but you might miss too many new things that are actually novel that way.
Not to be pedantic, but if you have a 5k line JS app that "wasn't written by programmers" who was it written by? If they wrote and shipped a 5k line JS app, in my eyes they are programmers - but possibly not very good ones.
Well, they weren't professional programmers (not their main job, done out of necessity) and they weren't trained. As I understand it they were actually learning it all on the go (like a lot of new programmers). It wouldn't be shocking if a lot of JS devs were in a similar boat, which explains the community a little bit.
So yeah, they're programmers now, but they didn't start out that way and the app showed it. That's what JS and the browser allowed them to do.
So experienced devs are afraid of learning something that took non-programmers a week to get up to speed and develop a well-architechted app with reusable components etc?
We had a set of non-programmers who built a complex jQuery app over a year, which was then translated into a Mithril app over a summer.
What I said was you can be building complex applications in one of these frontend frameworks in a week. Judging from a few responses in this thread, there are a lot of people who don't want to do that for whatever reason.
There are a lot of skeptics about modern JS frameworks, and I get it (my inclination in every programming environment I've ever worked in is to avoid frameworks, etc. until I know I need them), but boy is this a big, and awesome, change.