TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Why I’m thankful for JavaScript fatigue

201 pointsby callumlockeover 8 years ago

28 comments

ysavirover 8 years ago
&gt; It’s like walking into a restaurant and finding out that they have all your favorite dishes and every one of them is free and complaining about how long it’s going to take you to read over the menu and make up your mind about it.<p>I suppose it&#x27;s a matter of perspective. For me, it&#x27;s more like walking into used car lot. Most of the cars have lost (or voided) their warranties. Some are certified pre-owned. That one in the corner looks nice, but I don&#x27;t know how to drive stick, and am not really interested in learning. At least it&#x27;s not a custom gear box, like this other one.<p>I can look at the new car lot across the street, but I&#x27;m not sure I want to be the first to use one of those self-driving electric smart cars. It&#x27;s neat, but I&#x27;d rather stick to proven standards, and gas stations are more common than charge stations, anyway.<p>And I could probably get to where I&#x27;m going with just a bicycle.
评论 #13064490 未加载
评论 #13065522 未加载
评论 #13065420 未加载
评论 #13065846 未加载
评论 #13065873 未加载
评论 #13068264 未加载
peterkellyover 8 years ago
JavaScript fatigue is an affliction that affects only those who&#x27;s learning priorities are poorly chosen, such as framework-of-the-month.<p>This is why universities teach <i>computer science</i> rather than just programming. Learn about programming language <i>paradigms</i> - procedural, object-oriented, functional, etc; the language itself doesn&#x27;t matter. Learn about relational databases. Distributed systems. Computer architecture. State machines. Formal grammars. Language translators&#x2F;compilers. Data structures. Algorithms. Computational complexity&#x2F;big O notation. That&#x27;s the theory side of things.<p>Understand Unix, version control systems, and how to log into and administer remote systems. Learn about what TCP&#x2F;IP is and how higher-level protocols like HTTP relate to it. Ensure you&#x27;re able to write a program in at least one language that can talk to at least one type of database, and present at least some sort of user interface. That&#x27;s the practice side of things.<p>These things will pretty much set you up for life. By themselves they&#x27;re only a start, but you can pick up the rest as you go along, lazy evaluating any expertise you need with specific technologies as you go along.<p>As far as front-end web development is concerned, all you <i>really</i> need to know is JavaScript, HTML, CSS, and the DOM. Pick an abstraction layer on top of that <i>if you feel it helps you</i>, but don&#x27;t feel that you need to know about every framework out there, because new ones are being generated faster than you can learn about them.<p>And yes, becoming good at this takes many years. But ensure that whenever you&#x27;re investing time to learn, it&#x27;s something that will last.
评论 #13065999 未加载
评论 #13064959 未加载
评论 #13064712 未加载
评论 #13065805 未加载
评论 #13065067 未加载
评论 #13064813 未加载
评论 #13065161 未加载
评论 #13068708 未加载
评论 #13065446 未加载
jjcmover 8 years ago
I&#x27;m a prototyper, so people often come to me first to vet new ideas. Often times this means implementing a feature on an existing product platform. When I started doing this 5 years ago, I was working with a new language every month. It was ruby one day, C# the next, and I&#x27;d go to sleep every night praying next week wouldn&#x27;t be PHP.<p>These days everyone is using javascript. In the last year I&#x27;ve done countless javascript projects and <i>one</i> project in java. I can&#x27;t tell you how refreshing it is to not have to brush up on syntax and install a suite of tools every time I want to work on a new product. Nowadays it&#x27;s just clone the repo, do a npm install, and you&#x27;re up and running for the most part. It&#x27;s lovely.
fatbirdover 8 years ago
I agree with his point, but I think he mischaracterizes JS fatigue. He&#x27;s right that it&#x27;s exhausting trying to keep up with all of it, and that&#x27;s part of JS fatigue, but the other side is the endless hype machine that&#x27;s internal to the tech community, where our media is an endless stream of &quot;look at my new framework!&quot; and &quot;you&#x27;re doing react wrong!&quot; and &quot;why functional is making a comeback!&quot;<p>We do it to ourselves not just by continually stuffing the buffet with every possible option, but also by making our community dialogue an endless infomercial, which has a big influence on trying to keep up with it all. We have conflicting desires to contribute and to self-promote, and the result is an aggressive bazaar in which you need to consciously filter out 90% of the noise so you don&#x27;t get overwhelmed.
评论 #13064311 未加载
hackcrafterover 8 years ago
&gt; Nobody is ever going to know everything there is to know about modern web architecture<p>I think this is the root of the sentiment that is expressed as &quot;JS fatigue&quot; and bullet train rides etc.<p>I&#x27;m torn though. On one hand, this is equivalent to saying: Nobody is ever going to know everything about an operating system and how a machine performs the operations we expression a high level language like, you know, C!<p>The thing is, we still were able to teach the abstraction of the single-machine computation model that C is abstracting in a single semester to the point of making new coders _operational_.<p>But I can&#x27;t imagine trying to construct a course to teach &quot;modern web architecture&quot; in a single semester.<p>On the flip side, a lone developer who can chose their <i>battles</i> wisely has more leverage to produce something of value today than was ever freaking possible, ever!<p>I&#x27;m betting on the the new &quot;OS&quot; abstraction as cloud-native services (DB as a service, event streams as a service, mobile syncing as a service, heck, everything but your core logic as a service).<p>But by it&#x27;s nature this world is redundant, competitive, multi-vendor, fractal-specialized and I only see that trend increasing.<p>So yes, one person will never know everything there is to know, the <i>new</i> skill will not be learning every framework, platform or service, but being able to grok the core nature and characteristics of your problem so you can apply the closest matching tool with the maximum leverage.<p>Essentially, the <i>new</i> skill will be to optimize for laziness :)
评论 #13066701 未加载
评论 #13064753 未加载
评论 #13064900 未加载
indubitablyover 8 years ago
Pretty rich coming from the complainer-in-chief of JS, the guy who advises not employing people who don&#x27;t happen to agree with his personal take on how JS should be written.
caseysoftwareover 8 years ago
I think the bigger problem is that we, as developers, don&#x27;t appreciate risk and how to mitigate it. We always want to play with the latest and greatest tools, technology, approaches, etc, etc.<p>My advice to the teams I mentor is choose <i>at most</i> 1-2 risky areas and reduce&#x2F;eliminate risk everywhere else.<p>If you have a new idea with a new team, stick with established tools. If you have a well-gelled team with understanding of the space, experiment with tools or approaches.<p>When your idea is unproven, your team is unproven, your tool is unproven, your stack is unproven, and your approach is unproven, success is unlikely at best.
评论 #13064814 未加载
dyover 8 years ago
One benefit often overlooked is that during high periods of churn in an industry (let&#x27;s specify JavaScript fatigue as a symptom of rapid churn in Software Engineering for Web Applications). There are more opportunities to quickly speed up your career. Fresh problems call for new solutions and fresh eyes to work on those problems.<p>The opposite of JS Fatigue is climbing the J2EE certification ladder - if we were all still building Struts&#x2F;JSP apps then there would be no room for new ideas to flourish. I felt very similarly about Ruby on Rails in 2004, there was 4-6 years where someone early in their software development career to learn a stack, find work doing that tech and manage a team (exactly what me and several of my good friends did).
throwbsidbdkover 8 years ago
I see the proliferation of JavaScript tools as a massive failure of the vanilla js standard library and ECMA. Most of the stuff out there just rebuilds basic language features that would be standard in other languages.<p>We wouldn&#x27;t need node, npm, typescript, angular, react, web pack, or most of the bazillions of libraries out there if vanilla js had reasonable defaults.<p>It&#x27;s causing horrid fragmentations probably won&#x27;t go away until js is replaced maybe 5 years down the road.<p>The best we can hope for is a c++ style solution. A new language that&#x27;s basically a massive preprocessor on top of the original that fixes as much as possible. My hope is in typescript for now
评论 #13068707 未加载
评论 #13067982 未加载
Kequcover 8 years ago
The problem is very accurately described as people trying to use every framework and every library all at once. Too many developers are neglecting their knowledge of the base language. JavaScript has become incredible in recent years, but you&#x27;ll still find new projects being built incorporating jquery.<p>I have tried react redux and seriously people, after all your badgering and all of your carrying on. I still prefer vanilla es2015+ with typescript. I can do everything you can do sans MBs of extraneous client side code. I also have more control.<p>Use your tools for what they are useful for, stick close to the metal. You&#x27;ll save yourself tons of grief.
评论 #13065149 未加载
评论 #13066503 未加载
wnevetsover 8 years ago
Precisely my feelings about the fake problem of JavaScript fatigue, glad to see it finally make the front page of HN.
评论 #13064229 未加载
dennisnedryover 8 years ago
Agree with the author 100%. We want tons of new JS tools and frameworks out there so we can learn and evolve newer and faster ways of developing. I still remember when jQuery first came out and how earth-shattering that was. This inspired so many more devs to create better and easier to use tools.
评论 #13064286 未加载
throwaway23421over 8 years ago
&gt; gifts<p>fuck this dude. typical contractor that doesn&#x27;t have to maintain unsupported backbone.js based applications. just shits something out using the latest technology then fucks off
rootlocusover 8 years ago
&gt; and every other exciting, scary, new, hipster Haskell thing that exists in the web dev world today.<p>Ha ha! A fatigued JS developer complaining about hipster Haskell things!
ameliusover 8 years ago
&gt; From this point going forward, no single human being is ever going to have a completely full grasp of every corner of JavaScript, CSS, and Web APIs.<p>What does that mean for security, given that two secure systems combined can result in an insecure system?
评论 #13064843 未加载
评论 #13064225 未加载
评论 #13064520 未加载
makecheckover 8 years ago
In some respects the problem of “too many libraries” is the same issue we have with news headlines, etc.: too much going on, and not enough value placed on curating.<p>Right now everyone just wants to build things full-time. As an industry, it would make a lot of sense to have expert developers who spend some non-trivial amount of their time just on <i>curating</i>: writing down what actually works, what doesn’t, etc. Maybe a “stack overflow” for software packages. And after awhile, it should become expected that you consult <i>those curated lists first, every time</i> before you build anything else.
finchiskoover 8 years ago
I wish I fully understand what people mean by javascript fatigue. I can translate fatigue to my language, but it still doesn&#x27;t make sense.
评论 #13064239 未加载
评论 #13064101 未加载
评论 #13064100 未加载
评论 #13064685 未加载
评论 #13064228 未加载
ameliusover 8 years ago
I think I&#x27;m having a case of &quot;JavaScript fatigue fatigue&quot;.
评论 #13069129 未加载
karmajunkieover 8 years ago
I definitely appreciate the sentiment. Its true, the JS ecosystem has exploded and there&#x27;s been a lot of shrapnel flying around for quite a while. It feels like the smoke is starting to clear and some different groups of consensus are starting to form about some generally reliable patterns and tools which makes things easier.<p>For me, having learned web development in a time when it really was the smallest part of what could be considered development, the tooling and techniques are at once awesome and horrifying. :) The browser&#x27;s transition from a much more useful version of Gopher to a platform in and of itself has created a lot of opportunities and challenges, and while JS still isn&#x27;t my favorite language by a long shot, its gratifying to see its progress.
vmorgulisover 8 years ago
&gt; I recently built an app prototype in a couple days using nothing but vanilla JS and the DOM. I was literally two days in before I installed a single non-dev dependency. Guess what? It was fine.<p>IMHO a good strategy to reduce the cognitive load (and limit dependencies).
评论 #13065602 未加载
kazinatorover 8 years ago
It&#x27;s very hard to know everything. I made a programming language and I&#x27;d be screwed without the manual to refer to. Recently I was utterly surprised by something that was implemented (&quot;you can do that?&quot;).<p>What was it ... aha, I remember: introspection over exception handling sites. The ability to just get a list of the frames through an API, and then directly pick one and jump to it (regardless of whether it catches the type of exception being passed to it that way).
strictneinover 8 years ago
&gt; &quot;From this point going forward, no single human being is ever going to have a completely full grasp of every corner of JavaScript, CSS, and Web APIs&quot;<p>This. Reading the comments at HN and other places gives you the impression that there are people who do know everything, but that&#x27;s not the case. There&#x27;s just lots of technical people here who are experts in various fields, so there&#x27;s always experts to comment on things.
vldrover 8 years ago
I picked EmberJS because of javascript fatigue - it makes most choices for me and gives me some guarantee that it will work together.<p>But even that fails in practice: sourcemaps don&#x27;t work properly so you don&#x27;t get to debug your original ES6 code and more issues like that. Meanwhile there&#x27;s no clear focus on where the framework is really going (routable components? working pods in ember-cli?, etc)
somecallitbluesover 8 years ago
Could some of this fatigue be due to to JS being so damn hard to troubleshoot? I&#x27;m still struggling with troubleshooting JS after years of using it on and off. I still console log everything and keep refreshing the page. Is there a more sane way of doing it?
MrBraover 8 years ago
This article seems to me a self reassuring post written by the author after he suffered himself the JS fatigue.
curried_haskellover 8 years ago
Haskell programmers are hipsters now?
评论 #13065683 未加载
评论 #13069133 未加载
edblarneyover 8 years ago
JS fatigue is not a fake problem, it&#x27;s real and different from other forms of fatigue.<p>The metaphor used in the article i.e. &#x27;learning another language every 6 months&#x27; is not apt - because those are not &#x27;new languages&#x27; and they are not &#x27;new and critical parts of the landscape&#x27; for any specific vertical.<p>If any one of those languages were to have the same degree of evolution as JS ... then &#x27;fatigue&#x27; would also be an issue.<p>JS has a pernicious problem for a few reasons:<p>1) The language is quirky, fragmented, there are still no &#x27;agreed upon&#x27; approaches to do many things even outside the context of libraries. There are really no analogues to &#x27;prototype&#x27; based languages, which possibly makes it great for some things, but it&#x27;s not great for those wanting to use more classical ways of thinking about information organization.<p>2) Runtimes, particularly browser - are highly fragmented, and there&#x27;s scant documentation. Safari docs for Mac&#x2F;iOS are literally empty in some spots.<p>3) JS doesn&#x27;t come with a lot of things &#x27;baked in&#x27; to the language that most others support, so discovering those &#x27;standard libs&#x27; has been a painful process.<p>4) Due to the limitations of the browser, we see a lot of churn in frameworks.<p>Though there is some advantage to &#x27;community participation&#x27; - the pernicious problem is <i>most of the churn is not fully forward</i>. It&#x27;s 3 steps forward, 2 steps back, and a step sideways.<p>There&#x27;s a lot of time and investment in learning something new that won&#x27;t exist in the future - that&#x27;s costly.<p>Learning Lambda&#x27;s for Java 8 is probably worth investing in for Java programmers ... because Java 9 will surely use them as well.<p>Taken as a whole - there is an enormous amount of inherent &#x27;reducible complexity&#x27; in the JS ecosystem, which any JS developer intuitively senses.<p>If someone were to have made up their mind about JS right from the start, and had come up with some good standard libs ... and the evolution of the language were to have been more &#x27;version&#x27; and less &#x27;pick and chose&#x27; (Es6 means something different in each environment) ... then the complaint would be valid.<p>It is what it is ... but JS fatigue is a real thing.
评论 #13064758 未加载
评论 #13064738 未加载
draw_downover 8 years ago
You can&#x27;t learn every library or every tool but you can learn how the language actually works. For example, if you think JS has floats and integers, you have some reading to do. If you think &quot;array&quot; is a type, take heart, because you can learn why that&#x27;s not correct. If you can&#x27;t decide whether to use Ember or Angular, maybe you can grasp how closures work.<p>Before React and Redux and Gulp and whatever else, understand how the language works. Pretty please.