To me, it is incredible that the frameworks matter THAT much in the JS world. Once you know about Javascript, the web, and browsers... any good dev should be able to pickup such part of the tech stack (frameworks, libraries, ecc) quite quickly.<p>In other environments (e.g. Python, Java) nobody expects you to know everything about the specific libraries used in a company; once you know the language and a bit about the technologies (e.g. work on Linux, on a webapp or a desktop app), you're good, you'll pickup the details while working.<p>Forcing a technology change because it's not the "latest and greatest big, shiny thing"... I find this is a slightly disturbing trend in frontend development.
That conclusion made me laugh. In the early to mid 90s, I was working on 3D interactive software. The video drivers and chips had advanced so much in one year that all of the lovingly handcrafted assembly I had written over that time was useless. I thought to myself, "what an unstable industry to build a career in". I also made comparisons to accounting, medicine, and law, thinking perhaps I had made a wrong choice.<p>Turns out that adapting to rapid change is a critical aspect to this career choice. It is also a problem for businesses, which you start to grapple with as you move up the chain of command. The mistake is wistfully hoping that things would slow down enough for you rest on your hard-won knowledge, as in other fields. There is no competitive advantage in aging technology.
It was said million time here. But if you don't like trying new stuff, learn one stack and stick to it. Nobody is forcing you to try new stuff and then talk about js fatigue. Personally I'm exact opposite, I love where js is headed and like all the new stuff and stacks coming. No fatigue at all for me.
<i>“My dear, here we must run as fast as we can, just to stay in place. And if you wish to go anywhere you must run twice as fast as that.”</i> - Lewis Caroll, <i>Alice in Wonderland</i><p>Coming up next, WebAssembly for strong obfuscation.
All this great "progress" and "innovation"...and yet, have you <i>been</i> out there lately? The web? Everything just <i>barely</i> works, and I haven't the slightest illusion that I'm using anything but a patchwork networked application. Most times I'm trying to kill or avoid whatever the hell this page is trying to do and just get my text or content, or submit the stupid form.<p>I feel like if the front-end dev world is so keen on reinventing itself, it should just go all the way...repackaging HTML/CSS/JS in new and interesting forms and frameworks isn't getting anyone anywhere, IMO. Scorched earth, a new protocol for web applications...don't even call it the web anymore...just put on your CS hats and start over...kill the whole thing with fire.
I think the problem is more common than people think. It takes lots of bad frameworks to establish a single dominant one. It reminds me of the similar issue PHP landscape was fraught with—lack of a framework/approach with no downside.<p>Figuring which PHP framework to use was a problem of choosing between dozens of options, each with their own mighty cons. Every time a new framework came, it demonstrated an ability to fix all the known problems but time and again it faltered (Kohana, CakePHP, Yii). In the recent times, Laravel has provenly become a better choice than what was available only a few years back. It has grown a community of a considerable size and it's unlikely it would getting supplanted in future.<p>I am guessing at some point in the future, the landscape would stabilise and a single approach would become the obvious choice for JS just like Rails is for Ruby.
I fell in love with web development over 15 years ago because it was just a request to the browser and an answer.<p>I've worked on windows applications and just hated it. All this code handling the state of controls depending on the input/action.<p>Sometimes I have the feeling I'm doing this stuff on the web again which I haven't for over 10 years and it just feels wrong.
JavaScript is a small language because it needs browser support and backwards compatibility. A small language that can't change much over time can't afford to have opinions on how to build dynamic interfaces.<p>Therefore, all the complexity of building interfaces will be in the libraries and because opinions on such complex issues vary, there are many libraries to do the same thing.<p>Eventually the interior ones are recognized and culled. They typically are supported for quite some time after becoming uncool, it's just that no one wants to work with lame, obsolete tehnology for good reasons.<p>The solution I see to this are compile-to-JS languages that make it possible to use a different ecosystem of libraries than te JS one, like Scala.js. However, those tools are also still evolving, so one way or another you're dealing with a lot of library churn in frontend development right now, so learn to pick winners and stick to them until it's as weird to use them as jquery for complex UI was in 2012.
While it's easy to get frustrated especially if you are following each twist and turn that js takes, I think if you step back a little, you can see things are getting better as a whole.<p>For the longest time, js was just a thing I did on weekend or as part of tertiary projects at work. I first used js as a kid for my geocities page, used jquery and YUI for a work projects starting about eight years ago, experimented with Angular, and most recently embraced React and es6.<p>Almost two years ago, I quit my job and started building a side project in React and Fluxxor for fun. At this point there were a bunch of Flux implementations and no dominant library had emerged. I got frustrated with the build process and then got distracted with other life experiences.<p>I returned to javascript less than a year later and was amazed at how much better things got. I could do npm install and npm start and there was a good chance things would actually work. I was doing the same google searches but noticed that the documentation was a lot better. I also had a friend this time around and he steered me toward Redux and es6. Javascript suddenly became an enjoyable language for me enough that I plan to focus on it. This is after more than close to twenty years of fits and starts.
I dunno. I'm starting to wonder if writing disciplined code with jQuery for support is a better approach than the framework soup we've been dealing with in recent years. I know, I uttered the "j-word that shalt no longer be spoken" but that's kinda' my point--what's wrong with writing code anymore?<p>If you use simple, clean modular coding patterns, componentize for reuse, make judicious use of promises, and sprinkle in lightweight templating and routing libraries, etc., you'd effectively have your own mini-framework on which to continue building. After all, frameworks themselves are code under the covers--code that encourages patterns.<p>Sure, some say it's reinventing the wheel to write JS without someone else's framework. But, it seems to me that the frameworks are re-inventing the wheel. Not only is there a new one every day, but they are even re-inventing themselves (I'm looking at you Angular). Looking at the mere scaffolding alone for some of these frameworks makes me think, "what are we doing to ourselves?". Generate an "empty" project on some of these guys and prepare to be overwhelmed with opinionated cruft. Rolling my own code is not reinventing the wheel, because Angular, et. al. are not the wheels I'd invent in the first place.<p>Until a framework comes along that truly abstracts away HTML, CSS, the DOM and the rest of the old Web, so that it genuinely allows construction of clean event-driven, componentized <i>applications</i>, I'm not sure I see the benefit of playing the framework du jour game.
Frontend development in JavaScript has become a hellhole.<p>Projects can have three plus build tools that each take a long time. Massive list of dependencies plus bad dependency management, lack of documentation, everything changes so fast you need to find the correct stackoverflow answer for this week solution to your build problems, build tools depends on other build tools configurations in undocumented ways, reimplementation of the model & business logic of each project, constantly reinvention of the wheel.<p>And the end result? Web just becomes slower and slower.<p>Developers today build software that fits their paradigm, not the users experience.
Man... when it's laid out like that, it does seem a bit insane.<p>By comparison Python's primary web framework in 2012 was Django, and today it remains Django. Despite this relatively glacial pace, there's been a ton of improvement to Django, and the surrounding Python ecosystem. A more conservative development culture can pay off sometimes, since it allows the community as a whole to focus on polishing the existing ecosystem. As opposed to dropping Django when "real time" Websockets were all the rage, there was a concerted effort to include it in the framework with the Django Channels project.
From the article > <i>How much has medicine, accounting, politics, law, construction, or math changed in that time period?</i><p>The webapps that services those industries has changed massively in the past decade. The web has evolved from simple documents to complex applications. The browser is the new app delivery platform, and it's perfectly reasonable that this would bring increased complexity.<p>Backend development has countless languages, compilers, frameworks, toolchains, CLIs, OSes, containers, etc. - so it's really not that strange to see frontend dev catch up.<p>What's rather amazing is that there's just 1 language with everything else being frameworks and tools that let you shape it to your needs (and also runs just as well server-side with nodejs).
Can anyone tell me why I shouldn't still just use standard, ECMAScript, and (gasp) jQuery? There's so much churn in the JS world, sometimes it makes sense to just build something, and then optimize it later.
How do you end up with like six "build systems" for web applications? What even is there to build? Why can't you concatenate all javascript and run it through a minifier with a shellscript?<p>I haven't done webdev since 2010 and now that I look at it, it just seems so bizzare.
Why I've never seen any Ember.js dev writing about javascript fatigue? Because healthy community, matured framework, happy developers never felt that. Ah, and there are plenty of jobs with much higher salaries.
> <i>I’ve only been a full time web developer for the past 5 years. It’s barely enough time to start calling myself a “senior” Software Engineer.</i><p>Offtopic, but when does one start to be "senior" then? I've been coding for the past 17 years or so, including about 6 years professionally. Do I get to be a "senior" dev now? How do I convince my boss?
Every time I read an article like this I wonder: "Where are all the three.js users? Am I the only one? And am I the only one not suffering from JS fatigue?"
I really don't understand this hate for Angular 1. I think till date it is among one of the best things to happen to the web after jQuery. Yes, I think jQuery is great and Angular 1 is fantastic for making website super quickly and maintaining them.
Another option to avoid this JS fatigue is to switch to a different web development job. Get a job which focuses on backend and APIs.<p>Or you can even take it further and go focus on more networking / sysadmin / devops area. Les fatigue there.
My advise is when you care about your "career" stick to the one with the largest user base (or depending on your location). Learn it, love it, embrace it. Then experiment with whatever you want to.
Just a thought, but: you don't have to write JavaScript. There are lots of other languages than JS, and lots of areas of programming other than the web. So it's really, really possible to not write JS if you don't want to. Just think, you could be free! Forever!!!!!
I'm curious about the statement "React has become the champion"<p>I've recently moved from ASP.NET MVC/jQuery to Angular4. I'm extremely happy with the transition and I intend to stick with Angular. After not worked with React (yet), what am I missing?
I fully agree with the OP. I used Bootstrap/jQuery, Ext JS, D3, Highcharts, Angular and React. Each of these felt right for a period of time. Now, I'm using my experience to put the best features of all these into my own commercial framework called CxJS - <a href="https://cxjs.io/" rel="nofollow">https://cxjs.io/</a>