12 ms·
Does anybody else feel overwhelmed by the JavaScript ecosystem?
Does anybody else feel overwhelmed by the JavaScript ecosystem and 'needing' to keep up with the latest tools/frameworks/libraries? I have read a lot about new things like esbuild, Vite, Nuxt, and many more, but between my 3 kids and full-time job as a developer I have almost no time to learn them, and choosing 'what' to learn often feels overwhelming because of how many things are out there.
If I don't keep up I feel like I'll soon be irrelevant. Is it just me, or do other people feel this way as well?
I suffered some extreme burnout a few years ago so perhaps I just don't have the drive anymore.
- sdevonoes 5y agoI do. In my previous company we were using Tsoa and TypeScript. Now Tsoa compiles to Express (the Node framework) and TypeScript to JavaScript. It felt bloated: - Tsoa -> Express -> Node.js -> TypeScript -> JavaScript In my current company we use Django + Python and in some projects plain Go (using templates). Feels refreshing and easier to maintain in the long term.
- steve_taylor 5y agoYes, because it isn’t as standardized as something like Java. For example, there’s no standardization around the JavaScript version to target when building a library. I tried Vite a couple of months ago out of necessity and I have to say that it makes a lot of these issues go away.
- nsonha 5y agoThis is on you, no one asks you to have to follow these things. Each company has a specific setup that would be what you are required to know. Most companies use a variant of the same stack (webpack thesedays, never worked anywhere that uses vite), so no risk of non-transferable skill either. If you buy a new phone every year then you'll waste money and after 10y your phone is no better than someone who only buys once every 10y.
- runjake 5y agoNo, I just stick to a particular set of tools. I'm not going to chase every new fad.
- PaulHoule 5y agoTake it a piece at a time.
- pelagicAustral 5y agoa dependency at the time?
- i_like_apis 5y agoIt's always been a little overwhelming but in the past few years it's definitely increased. I stick to learning only what is sensibly required for the project, which can be complicated enough if that means React, redux, GraphQL, Angular, NgRx, etc. The time to learn comes when there is an actual need to build something on a reliable, widely adopted tool/framework. You learned this much and you won't forget how to learn. Trying to learn everything on the rapidly expanding edge is not necessary. If you still feel compelled to learn something on the frontier pick a small area to make it scale. Otherwise yeah Javascript has become only more insanely complicated lately.
- mlboss 5y agoFor my personal projects I am planning to stick to HTMX. No more fancy js frameworks.
- pedalpete 5y agoPerhaps I've just matured and don't jump after the next new thing anymore, but I feel like the ecosystem has actually slowed down. I remember when it felt like every year there was a MAJOR new library that you HAD to use. I started with vanilla js, then it was jQuery (which was a huge improvement), then Backbone, Angular, Meteor, React. Then there were the different build systems that went along with the libraries/frameworks, new CSS frameworks as well, etc etc. I'll admit, the last few projects I've been working on have been React and React Native, so I'm rarely diving into new frameworks and tools anymore. Find something you like that is fairly common, and go deep on that.
- muzani 5y agoI'm not that familiar with web but I think we've settled upon React as just good enough for most things lately.
- ironmagma 5y agoI'm in the minority in HN, but to me (frontend dev) React is the gold standard. It's simple and flexible, which is everything a framework should be. There are a few old warts and the dev tooling is not perfect, but architecturally it provides a very straightforward structure to what is normally a very chaotic endeavor (building reactive asynchronous UI code). There's not much I would change about it except for removing some stuff (class components and maybe some unused/deprecated features). I almost can't picture a scenario in which you'd need to do something but couldn't do it in React.
- sir_pepe 5y agoAfter many years of following the JavaScript ecosystem, there's one thing I learned: most of the "many things" out there don't stay relevant for long. I personally make a conscious point of not diving into the hot new thing of the week when it first pops up on my radar. But maybe when it pops up for the eighth time, maybe only when it keeps popping up consistently over months and years. There is, for a developer, little to no first-mover advantage when it comes to the JS features or frameworks. And even if there was any point in trying to stay "on top of things": expecting yourself to know your way around every mayor JavaScript tool and library is as unreasonable as trying to become an expert in every programming language. Truth be told, even though I live and breathe even keep a list of things (JS frameworks and APIs) that I've _explicitly_ decided to never take a closer look at, just for mental memory management purposes. No one can be an expert on anything in any field.
- rasikjain 5y agoIMHO, don't chase the next fad thing. Be an expert in two to three things. Currently, I concentrate on React, TypeScript, GraphQL, APIs (Axios). This keeps me busy and continue to be for next couple of years.
- jordiburgos 5y agoIt's impossible to keep knowing 'all' the latest tools/fws/libs/etc... Just focus on what you are using or you think you will need for your job. At the end it's only JavaScript, so if you need to use a new library, just learn it.
- byteware 5y agoI think it comes from that either creating a new library or contributing/publicizing such a new library can yield enermous value for a developer (blogposts, clients, CV) "why work on established stuff, when you could work on the Next Big Thing (TM)" don't sweat it if you miss a few, the newest stuff is just around the corner, and always will be
- krageon 5y agoThe ecosystem churn is ridiculous. Absolutely know the basics and trust that you can learn whatever it is you need when you need it, but do nothing more. Doing it in advance like you are trying is a recipe for a bad time.
- mattbrewsbytes 5y agoCounter thought: Trying to keep up is keeping you behind. If you're in a stable employment situation, diving deeper into existing things you use will be more beneficial than knowing the tip of 10 different icebergs. Learning something by doing a hello world or building a todo list app really skims the surface of what its like to work with that tech on a constant basis. After working in software development for a couple decades, I have the mindset that I can learn any of these if I need to, the underlying tech doesn't change that much.
- szark 5y agoThanks matt_s. That's an interesting way of framing it. Since posting I've decided to let go of trying to keep up with everything and instead focus on improving my existing skills, which will actually be more beneficial to me and my team in the long run than having a basic understanding of everything out there. Thanks for your insight! :)
- the__alchemist 5y agoFamiliarize yourself with the MDN docs, including JS language features, and the DOM-manipulation API. The rest is optional / as-needed, depending on your project requirements.
- vaughan 5y agoEverything is just building blocks or layers on top of other technologies/paradigms making different trade-offs. You just have to figure out which features of which products compete with each other. That said, it involves a ton of reading, and reading Twitter daily to stay up-to-date. I've been thinking of putting together a curated website to break down the differences between JS tools, explain what the metrics and trends mean. In the end, everyone wants an exhaustively researched short-list so they're not missing some obvious trend, and then they want recommendations to suit their personal preferences. Existing comparison sites lack the necessary curation component to tease apart the layers involved in each tool.
- ladyattis 5y agoI tend to be picky about what libraries I use in any project so it's best to pick a couple that you know you'll need and make sure to trim the fat where possible. If a specific date/time library seems far too big for your purposes then see if you can make some functions that fit the bill on your own. Eventually, you'll figure out what's absolutely necessary from trial and error and what's just "nice to have."
- aristofun 5y agoOnce you have a deep knowledge and experience applying core ideas in any language, framework, why bother learning another new fancy implementation flavor? If you would need to — you open docs, spend few days learning, playing with examples - and you ready to go. This is how I became JS developer one day with near zero prior JS experience. Okay, i'm not that smart and it took me few weeks instead of days ) But still, after java and ruby I didn't face any radically knew info or challenges getting on js train.
- new_guy 5y agoSo long as you're fluent in the underlying language in this case JS (and I guess TS too), you'll be fine. All the frameworks and tools are just built on top of those, once you know the basics you're set.
- schwartzworld 5y ago> by the JavaScript ecosystem and 'needing' to keep up with the latest tools/frameworks/libraries? The struggle to keep up with JS feels more like a meme to me than anything else. I've been a professional front end dev for 5 years and have never felt this alleged pressure. There hasn't been a new player worth noticing in the front end framework space in years. Tune out the noise and learn the fundamentals. Choose tooling that does what you need out of the box. You don't need to know everything to get started.
- waynesonfire 5y agoWhy should people stop creating personal projects so you can keep up? The problem is you keep adopting and thinking they'll be your silver bullet. You're being sold snake oil. Recognizing fads is something we each need to learn. Pay attention to them, build context around them, but use proven technology. You don't have to be the early adopter.
- marchingtomars 5y agoDefinitely stick with the more mature things and the things other things are based on. Example: If you’ve learned React, stick with it or React-native. Don’t learn a React derivative such as Next. I think it just takes a bit of experience and chatting with other devs, and comparing libraries’ popularity metrics and reviews, to get a sense of where the ecosystem is headed in terms of framework/library traction. Definitely don’t unfocus and learn random things. Learning should be a strategy towards a goal. In my case it’s to have corporate in-demand skills and skills I can use to build my own projects. So, I focus on React, Node, PSQL, AWS tools, etc. while occasionally researching new tools and dabbling. For example I’ve recently begun dabbling with Parcel, but only because I see it as relatively accepted in the community via chatrooms, forum posts, and articles. Otherwise I’d stick with webpack for reactjs compilation.
- kosasbest 5y agoWebDev, specifically the JS scene has largely been hijacked by a bunch of smart and capable people who constantly propagandize their framework as being 'the best'. It's mostly fluff. Once you know how to code in vanilla JS, and are super proficient in that, frameworks come and go throughout the decades, having a brief flash in the pan, and then dying a spectacular death. (Look what happened to jQuery for example).
- stocknoob 5y agojQuery wasn’t a flash in the pan, it ruled for a decade and its “death” is because many of its features got merged into browsers.
- Waterluvian 5y agoI’ve been ridiculously productive with Npm, webpack, typescript, react, redux for years now. I toy with new tech on occasion but there’s no reason you have to worry about it.
- taffit 5y agoI absolutely agree with you. Thank you for letting me know, that I'm not alone! I'm coming from a backend-environment and had to learn how to do frontend as well. While JavaScript as a language can be handled (it has its quirks, as all the other languages out there, still quite logic IMO), the tooling around creating an application is totally a mess. A packager and babel and module handler and use express and build with vite oh and version ES6 or better ES20 or back to ES5 and serve the static content with sirv and ts.config and ... On the backend side I was used to just install my packages and be able to start coding. Not on the frontend side. I have to admit that I find it to be a more complex environment, as you need to support different browsers, you have a client and server part, you need to handle session/state data and so forth. Beside that you need to take into account security, performance on client/server, network communication, local storage, and the list goes on. There are also hundreds of ways to do a single thing. In the end what helped me was to stick to a single framework and follow its way from start to end. Also the advent of frameworks like Svelte/SvelteKit helped a lot as they reduce the tooling to a bare minimum, keeping single components maintainable with mostly pure JavaScript. Tl;dr: You are not alone :-).
- codingclaws 5y agoNot really, I just focus on vanilla JavaScript fundamentals.
- rafaelvasco 5y agoNo, because I find I can always learn anything easily. Once you know one or two frameworks well enough, you can learn anything easily. I used Angular for years. Then decided to try React and had no problems with it, actually liked it a lot more. The secret is: Go to Github, find some well written boilerplates/templates that use the things you want to use. Study it, see how everything works, base your project on that starting point, and build upon it, learning as you go. Then as you go, look for completed project examples, using your tech stack, and see how the usual stuff that every project needs is implemented: Pages, Components, API calls, DB access etc. Then just keep iterating.
- mrozbarry 5y agoIf your job doesn't allow you time to learn tools that can be used in your job, that's a definite problem. That said, like others have already said, the task of keeping up with the JS ecosystem is futile. Yeah, there might be some cool new tools, like esbuid, Vite, and Nuxt, but that doesn't mean you have to always jump on those bandwagons. A real non-problem with ecma/javascript language is that it is almost too easy to start writing that there is always someone putting some new tool out for it. This means there is always competition with similar tools, people trying to shout about how their shiny tool X fixes problem Y better than other tool Z. It's easy to get caught up in the noise. Here's my hot take: don't try and keep up on your own effort. Use tools that you understand and are time-tested. Sometimes, a co-worker might be using some new shiny tool, and when they do, ask them to show it to you. It doesn't mean you need to switch to it, but it gives you an opportunity to learn the top level overview/benefits without having to keep track of everything. A big thing I try to do is avoid following JS libraries/personalities on places like twitter. Every day, they are touting their own tools and tooting their own horns - there is nothing wrong with that, but it's just noisy. And let me say this, no one will get fired if the tools you use do the job they need to do in a easy and consistent way.
- szark 5y agoThanks mrozbarry. I talked to my tech lead and he's open to the idea of me using some of my work time to upskill in a few areas, which takes some pressure off my personal time :)
- peruvian 5y agoHonestly job-wise it's pretty much been React-only for a good four or five years, if not more. Yeah I see posts using Vue or others but 99% of the time it's React.
- hackingforfun 5y agoI think Angular is still pretty popular as well? I receive almost as many job listings for Angular as I do for React.
- gitgud 5y agoThere's over 2 million npm modules now, making it one of the largest programming ecosystems ever. No one knows every library and how it all works, so you don't have to either. Just use what you need :)
- admissionsguy 5y agoI switched from jQuery to React(+ the ancillaries, babel, webpack, etc.) last year. I don’t feel anything in between or after added enough value to justify the cost of learning/changing stacks. No need to chase the latest fashions in software when you think about it.
- tacone 5y agoThis phenomenon was commonly referred as "the javascript fatigue" in case somebody wants to google it.