Are there too many JavaScript frameworks?
Show notes
All Podcast episodes: https://maximilian-schwarzmueller.com/podcast I also have a Podcast with @academind: https://academind.com/podcast
Want to become a web developer or expand your web development knowledge? I have multiple bestselling online courses on React, Angular, NodeJS, Docker & much more! 👉 https://academind.com/courses
Show transcript
00:00:00: If you are a front-end JavaScript
00:00:02: developer, you got plenty of options and
00:00:07: alternatives.
00:00:08: You got plenty of libraries and
00:00:10: frameworks to choose from.
00:00:12: You got React, Angular, and Vue to
00:00:15: name the biggest, most popular ones.
00:00:19: But you also got very popular
00:00:20: alternatives like Svelte, or SolidJS, or
00:00:24: Quik.
00:00:25: And then you got other libraries like
00:00:27: HTMX, where you wouldn't write a lot of
00:00:31: JavaScript code, but which still uses
00:00:33: JavaScript under the hood.
00:00:35: So you got plenty of options if you want
00:00:38: to build complex web user interfaces
00:00:42: with help of JavaScript.
00:00:44: And of course, it's easy to feel
00:00:47: overwhelmed with all those options and
00:00:50: alternatives.
00:00:52: And the question is, how do you decide
00:00:54: which of those frameworks or libraries
00:00:58: you should learn and use?
00:01:00: Do we have too many of those?
00:01:04: Because I recall that when I released my
00:01:08: Svelte course in 2019, so that is a couple
00:01:13: of years ago, but still, when I released
00:01:16: that course, I was quite positive
00:01:19: regarding Svelte.
00:01:20: And that course, it's a good course.
00:01:22: It teaches Svelte.
00:01:23: And Svelte is a really nice library, if you
00:01:28: want to call it like this.
00:01:31: So I was really happy with that course.
00:01:33: And I was surprised that quite a decent
00:01:37: chunk of all the feedback I got on that
00:01:40: release was not about the course or
00:01:43: about Svelte.
00:01:44: It was about the fact that it's yet another
00:01:49: course on yet another front-end
00:01:52: JavaScript library or framework.
00:01:55: And a decent chunk of my students or of
00:01:59: the people who left feedback and left
00:02:02: comments seemed to feel
00:02:05: overwhelmed.
00:02:05: And I would say annoyed by the fact that
00:02:08: there is yet another JavaScript
00:02:12: framework and library to learn.
00:02:15: And I would say that's already the first
00:02:17: problem.
00:02:18: Also a problem on my part and maybe
00:02:21: from the entire JavaScript ecosystem,
00:02:24: but of course you don't have to learn it
00:02:26: all.
00:02:27: So if you feel like you have to learn it all,
00:02:29: that's not the case.
00:02:31: And people like me who create courses
00:02:36: and content on all these different
00:02:38: technologies can definitely give you the
00:02:41: feeling that you need to learn all these
00:02:43: things.
00:02:45: But just because I like learning all these
00:02:49: things and like working with all these
00:02:51: things, and just because I create content
00:02:54: on many of these libraries and
00:02:56: frameworks to help people learn it, does
00:02:59: not mean that you need to learn all
00:03:02: these libraries and frameworks.
00:03:04: And just because all these options exist
00:03:06: and new frameworks and libraries keep
00:03:10: popping up, does not mean that you
00:03:13: have to learn or use them all.
00:03:16: But I understand that it can sometimes
00:03:18: feel as if you do have to do that.
00:03:22: Because why do we have all these
00:03:24: options to begin with?
00:03:26: Why don't we just have one or two
00:03:28: libraries or frameworks?
00:03:31: Because to some extent that is the case,
00:03:35: or is a bit more the case you could say, in
00:03:39: backend web development I would
00:03:42: argue.
00:03:43: If you're using JavaScript for backend
00:03:46: web development, you of course have a
00:03:48: lot of frameworks and libraries you can
00:03:50: use there.
00:03:51: But the most used library still is
00:03:56: Express.js, if you're working with Node.js.
00:04:00: It gets millions of weekly downloads.
00:04:04: It's super popular, even though it
00:04:07: definitely has its issues and it's not under
00:04:11: super active development.
00:04:13: But maybe that's also the reason.
00:04:15: It's very stable and people know it and
00:04:18: therefore it's getting used by many
00:04:20: projects and companies.
00:04:22: And hence if you're working as a
00:04:25: backend JavaScript developer, there's
00:04:28: almost no way around Express.js.
00:04:32: Of course you can learn one of the more
00:04:36: modern alternatives and that might
00:04:38: make a lot of sense.
00:04:40: But if you want to land a job as a
00:04:43: backend JavaScript developer, you very
00:04:46: likely need to know Express.js.
00:04:50: And it's kind of similar to some extent I
00:04:53: would say, if you're working with PHP for
00:04:56: example.
00:04:57: Of course there are multiple libraries and
00:05:00: frameworks to choose from there as well.
00:05:02: But let's be honest, the clear winner in
00:05:06: the PHP world is Laravel.
00:05:09: If you want to work as a backend PHP
00:05:13: developer, and now that I say it, I guess
00:05:16: there are no frontend PHP developers.
00:05:19: At least you don't use PHP for frontend
00:05:22: code.
00:05:23: But anyways, if you want to work as a
00:05:25: PHP developer, you very likely need to
00:05:28: know Laravel.
00:05:29: It is the PHP framework.
00:05:32: You could even argue that it made PHP
00:05:35: popular again, if it ever was not popular.
00:05:40: And that's also a topic for a different
00:05:42: video.
00:05:43: But Laravel is super important for PHP
00:05:46: and therefore there as well.
00:05:49: We don't have like five or six almost
00:05:52: equally popular options as it seems to be
00:05:56: in the frontend JavaScript world though.
00:05:59: And of course there you could also argue
00:06:01: that React is the most popular frontend
00:06:04: JavaScript library.
00:06:06: And then Angular is also pretty popular,
00:06:09: especially also amongst enterprises and
00:06:12: big companies as it seems.
00:06:14: But you could argue that it's these two
00:06:17: mostly.
00:06:18: And if you just learn React and nothing
00:06:21: else, you'll probably also be fine.
00:06:23: And I tend to agree that probably is the
00:06:27: case.
00:06:27: But nonetheless, we have more options
00:06:30: there and somehow every new option
00:06:34: that appears, every new framework or
00:06:37: library that appears in the frontend
00:06:39: JavaScript world gets more attention
00:06:42: than it seems to be the case for backend
00:06:45: projects.
00:06:47: And I'm not 100% sure why exactly that's
00:06:52: the case and why that's happening.
00:06:54: And I'm super interested in hearing your
00:06:57: opinion and perspective on that.
00:06:59: But I think that maybe we give more
00:07:03: attention to every new frontend
00:07:06: JavaScript framework or library that
00:07:08: appears because a, there might be more
00:07:13: frontend JavaScript developers than
00:07:16: backend JavaScript developers.
00:07:18: I'm not sure about that.
00:07:19: I don't have any official numbers.
00:07:20: It's just something that could be the
00:07:22: case.
00:07:23: And in addition, maybe frontend
00:07:27: JavaScript development still has more
00:07:30: unsolved problems or more problems
00:07:34: that can be solved now that were harder
00:07:37: to solve a couple of years ago.
00:07:39: There may still be more progress
00:07:42: regarding how certain problems could
00:07:45: be tackled.
00:07:46: It feels to me, and again, this is just a
00:07:49: feeling, I could be wrong here, but it
00:07:51: feels to me as if there's still a lot of
00:07:54: innovation happening in the frontend
00:07:56: JavaScript space.
00:07:59: And that is not purely a positive thing
00:08:02: because it also means that maybe there
00:08:04: are more unsolved problems there than
00:08:07: on the backend.
00:08:09: It also feels like we move a bit in circles
00:08:13: in the frontend JavaScript world.
00:08:16: I mean, we're coming from a world
00:08:19: where we built websites, web
00:08:23: applications that worked such that we
00:08:26: had some backend code that rendered
00:08:28: an HTML page, an HTML document and
00:08:31: sent that to the browser.
00:08:33: And then maybe that document also
00:08:36: loaded some script code to add some
00:08:39: interactivity to that page.
00:08:41: And then we had all those frameworks
00:08:44: taking over the frontend and we started
00:08:48: building single page applications
00:08:50: because they also solve a problem.
00:08:53: They allow us to build more interactive
00:08:56: frontend applications.
00:08:58: They allow us to give users a more
00:09:01: interactive feeling with our websites.
00:09:06: They can make websites feel like
00:09:10: desktop or mobile applications, even.
00:09:13: So they exist for a reason.
00:09:15: But now we're moving back to a world
00:09:19: where we also render a lot on the server.
00:09:22: And currently there is this trend in
00:09:27: frontend JavaScript development where
00:09:30: we try to blend these two worlds, these
00:09:33: two ends, the backend at the frontend,
00:09:35: and where we try to get the best of both
00:09:38: worlds.
00:09:39: And I did talk about that in separate
00:09:42: videos and episodes, so I'll not reiterate it
00:09:45: here, but that seems to be the future we
00:09:50: seem to be moving towards with
00:09:53: frontend JavaScript.
00:09:55: And maybe that's also why we see so
00:09:58: many libraries and frameworks pop up
00:10:02: because it's clear that we're not there
00:10:07: yet.
00:10:08: There are some problems and there
00:10:10: were problems with the way we built
00:10:13: frontends five years ago.
00:10:16: So maybe that's why we see all that
00:10:19: innovation and all those different
00:10:21: libraries and frameworks pop up.
00:10:23: Maybe that's the case.
00:10:25: But what does that now mean for
00:10:27: developers?
00:10:29: Do you have to learn all these different
00:10:32: options?
00:10:33: How can you make sure that you don't
00:10:36: feel overwhelmed by all these different
00:10:38: options?
00:10:39: And I can only say you don't have to
00:10:43: learn them all.
00:10:45: You can just stick with the option you
00:10:48: personally like the most or with the
00:10:51: framework or library you want to learn
00:10:54: because it gives you the best
00:10:56: perspectives on the job market or
00:10:58: because you may be needed in your
00:11:00: existing job.
00:11:01: You can't just learn React or Angular or
00:11:04: Vue and call it a day.
00:11:06: You don't need to know them all.
00:11:08: But I would recommend that you at
00:11:11: least take a look at multiple options
00:11:14: simply to find out which of those options
00:11:17: you like the most and also to stay in the
00:11:21: loop regarding the innovation that's
00:11:24: happening in the frontend JavaScript
00:11:26: world.
00:11:27: That does not mean that you have to use
00:11:30: all those latest features and concepts
00:11:33: right when they come out.
00:11:35: Indeed, I would recommend that you
00:11:37: always wait a bit until you use some new
00:11:41: library or framework or feature of a
00:11:45: library or framework in a real app until
00:11:48: it's polished and battle-tested.
00:11:51: I would recommend that you don't start
00:11:53: using all the latest libraries and features
00:11:56: immediately in your production apps
00:11:58: because that can lead to problems and
00:12:01: we've seen that in multiple libraries and
00:12:05: frameworks in the last years as well.
00:12:07: It makes sense to wait and you don't
00:12:10: have to learn everything at the point of
00:12:13: time where it comes out but keeping an
00:12:15: open mind and just staying informed
00:12:18: about some general trends and
00:12:20: developments I guess makes sense and
00:12:23: at the same time this approach also
00:12:25: ensures that you hopefully don't feel
00:12:28: overwhelmed and that you can see all
00:12:32: these different alternatives and options
00:12:35: as something positive because it is that
00:12:39: innovation.
00:12:40: It is the appearance of all these different
00:12:43: libraries and frameworks and features
00:12:44: and the evolution of existing libraries
00:12:48: and frameworks that drives the overall
00:12:51: frontend JavaScript ecosystem forward
00:12:55: and that ensures that we'll hopefully
00:12:58: reach a point where we are at least very
00:13:02: close to having the best of both worlds
00:13:05: and where we maybe have a great way
00:13:07: of merging backend and frontend
00:13:10: because there is one big advantage
00:13:12: JavaScript has over PHP for example and
00:13:16: that is that it can run both on the server
00:13:20: side and in the browser and that holds a
00:13:24: lot of potential because that indeed can
00:13:28: allow us to build web applications where
00:13:32: backend and frontend are integrated
00:13:34: seamlessly and where we therefore can
00:13:38: give our website users a great user
00:13:41: experience because ultimately that's the
00:13:44: main goal.
00:13:46: As a web developer no matter which
00:13:48: technology you're using you have to
00:13:51: build websites and web applications
00:13:53: that give their users a great user
00:13:57: experience and that do their job so that
00:14:02: if you build an online shop it's an online
00:14:04: shop that's easy to use.
00:14:06: If you're building a complex web app like
00:14:09: Google Sheets or something like that
00:14:13: you build it such that it's easy to use that
00:14:15: it's performant that it's intuitive that's
00:14:19: your main job and all that innovation
00:14:22: that's happening in the JavaScript world
00:14:25: in the frontend JavaScript world
00:14:27: hopefully helps with making that job a
00:14:31: bit easier and a bit more pleasant but
00:14:34: there is no reason to feel overwhelmed
00:14:37: at least in my opinion.
New comment