Coding

My Thoughts on JavaScript Framework Churn

  • 00:00:01 hi and welcome to this video in this
  • 00:00:04 video I want to have a look at a topic
  • 00:00:06 where I want to share my thoughts on a
  • 00:00:07 topic which is JavaScript framework
  • 00:00:10 churn and with that I mean that that
  • 00:00:13 idea or the feeling that you have a lot
  • 00:00:17 of JavaScript frameworks available and
  • 00:00:19 with that I mean frameworks for
  • 00:00:20 front-end web development and there's a
  • 00:00:23 new framework coming out every week and
  • 00:00:25 therefore at the point of time you learn
  • 00:00:27 framework hey you already have to learn
  • 00:00:29 a new one in this video I'll share my
  • 00:00:31 thoughts on that I'll share why I don't
  • 00:00:34 really think that this is what's
  • 00:00:36 happening and I'll also share why I
  • 00:00:38 think that's a good thing that we have
  • 00:00:40 more and more alternatives
  • 00:00:48 so what's the problem the problem is
  • 00:00:51 that over the last seven years seven
  • 00:00:55 eight nine ten years we had a lot of
  • 00:00:57 JavaScript libraries and frameworks come
  • 00:01:00 up that helped us build modern user
  • 00:01:02 interfaces for the browser so with that
  • 00:01:05 as I just said I mean frameworks
  • 00:01:07 libraries that help us in on the browser
  • 00:01:10 side so not node.js frameworks like
  • 00:01:12 Express of course we had jQuery jQuery
  • 00:01:16 is really old then we had tools or
  • 00:01:19 frameworks like angular 1 then react
  • 00:01:22 then angular 2 then all the other
  • 00:01:24 versions of angular and then we had view
  • 00:01:27 and we have swelled and Inferno chase
  • 00:01:30 and aralia and stance ljs and Palomar
  • 00:01:34 and so many tools that's at least a
  • 00:01:37 feeling many people have and actually I
  • 00:01:39 don't think that's really appropriate
  • 00:01:43 oror I don't think well the feeling of
  • 00:01:45 feeling is always appropriate obviously
  • 00:01:46 but I don't think that this is the right
  • 00:01:48 way to look at this it's not a problem
  • 00:01:50 that we have all these options and
  • 00:01:52 here's why now first of all it's
  • 00:01:54 important to understand the JavaScript
  • 00:01:56 the language has come a long way since
  • 00:01:59 two thousand six seven and so on
  • 00:02:02 back when I learned it which is even
  • 00:02:05 longer ago you couldn't do anything
  • 00:02:08 reasonable with JavaScript and nowadays
  • 00:02:10 it's the most important language in
  • 00:02:13 front-end web development maybe in
  • 00:02:16 overall web development and that of
  • 00:02:18 course is the case because a lot of new
  • 00:02:21 features have been added to the language
  • 00:02:22 it's now more stable across browsers so
  • 00:02:26 all browsers implement the same features
  • 00:02:29 and you don't have to implement
  • 00:02:30 thousands of fallbacks to make your app
  • 00:02:33 work in free different browsers and that
  • 00:02:36 all helps us with building modern
  • 00:02:38 JavaScript a driven user interfaces
  • 00:02:41 now when jQuery came out it fixed a lot
  • 00:02:44 of problems Giles looked head back then
  • 00:02:47 it made sure that you had one API is a
  • 00:02:49 one language so to say one syntax you
  • 00:02:52 could use that worked across all
  • 00:02:54 browsers by abstracting the different
  • 00:02:56 implementations for different browsers
  • 00:02:58 away from you it gave you a convenient
  • 00:03:01 a way of traversing the Dom tree of
  • 00:03:03 editing that Dom tree and of adding CSS
  • 00:03:07 classes to elements and so on that's all
  • 00:03:10 cool these were all cool things which
  • 00:03:12 jQuery did now with more and more of
  • 00:03:15 these features added to JavaScript
  • 00:03:17 itself so to the language itself of
  • 00:03:19 course jquery became a bit redundant now
  • 00:03:23 first of all I still want to say if you
  • 00:03:25 are using jQuery and if you're happy
  • 00:03:27 with it if you can achieve your goals if
  • 00:03:29 your website is performant performant
  • 00:03:32 and if your users like your website
  • 00:03:34 there's of course no reason to switch
  • 00:03:36 away so no one's taking jQuery away from
  • 00:03:39 you but it certainly was more important
  • 00:03:41 than the past than it is today
  • 00:03:43 now with the JavaScript language
  • 00:03:45 becoming more important portent new
  • 00:03:47 libraries and frameworks came up simply
  • 00:03:50 because you could now solve different
  • 00:03:52 problems back in a day with jQuery of
  • 00:03:55 course we targeted h1 tag and changed
  • 00:03:59 the text there manually in code when a
  • 00:04:00 user pressed a button and for that we
  • 00:04:03 had to add an event listener to the
  • 00:04:04 button and manually managed the value of
  • 00:04:07 maybe a counter that we were using in
  • 00:04:09 our app and so on so you have to do a
  • 00:04:11 lot of manual wiring up and especially
  • 00:04:14 for bigger apps for more complex user
  • 00:04:17 interfaces that's really hard to do an
  • 00:04:19 easy to mess up that's why solutions
  • 00:04:22 like angular one came up or why angular
  • 00:04:24 one which was around tea the only
  • 00:04:26 important framework back at the time it
  • 00:04:28 came out why that appeared because it
  • 00:04:30 made building more complex user
  • 00:04:32 interfaces easier because it took a lot
  • 00:04:35 of that manual dom node selecting part
  • 00:04:38 and updating part away from you and gave
  • 00:04:40 you a way of saying what the result
  • 00:04:42 should be and that it would go ahead and
  • 00:04:44 update the Dom appropriately now react
  • 00:04:47 took that to the next level by using
  • 00:04:50 even more refined approach of giving you
  • 00:04:53 a declarative way of building your user
  • 00:04:55 interface which means and react you you
  • 00:04:57 build user interface how it should look
  • 00:04:59 like with a couple of dynamic segments
  • 00:05:02 in there so to say and then you just
  • 00:05:03 managed the code that updates that the
  • 00:05:06 values in this dynamic segments and
  • 00:05:08 react us all the Dom updating and so on
  • 00:05:10 behind the scenes for you in a very
  • 00:05:12 efficient way and that's all
  • 00:05:14 by angular 2 ends on came out because
  • 00:05:16 that also is a desert and aware of way
  • 00:05:19 more efficient way than angular 1 and
  • 00:05:21 gives you even more declarative way of
  • 00:05:23 managing your or your front ends or your
  • 00:05:26 user interfaces and it's pretty much the
  • 00:05:28 same for view chase and ever framework
  • 00:05:29 so that's why all these tools came out
  • 00:05:32 and until this point the story of one
  • 00:05:34 tool replacing a number tool is of
  • 00:05:36 course correct angular 1 replaced jQuery
  • 00:05:38 react kind of replaced angular 1 or at
  • 00:05:41 least kind of kicked off that transition
  • 00:05:45 from angular 1 q modern frameworks like
  • 00:05:47 react and like angular 2 and that's
  • 00:05:50 basically where we are at now and we've
  • 00:05:53 been at that point for two years now
  • 00:05:57 angular 2 was released two years ago
  • 00:05:59 good two years ago react and was
  • 00:06:01 released even longer ago and of course
  • 00:06:03 all these libraries and frameworks
  • 00:06:04 themselves update we have angular 8 now
  • 00:06:07 and a lot of people still mistake
  • 00:06:09 angular 8 with oh god everything's new
  • 00:06:11 again actually if these people would
  • 00:06:14 start reading the change notes the
  • 00:06:16 change log or watch mine you watch new
  • 00:06:18 videos you would learn that basically
  • 00:06:21 nothing changed since angular 2 small
  • 00:06:24 improvements and new feature here and
  • 00:06:26 there but overall angular 8 is angular
  • 00:06:30 cume it's not a different framework but
  • 00:06:33 this video is not about angular 8 that's
  • 00:06:35 just a side note so we still have
  • 00:06:37 angular let's forget the word numbers
  • 00:06:39 because it's basically all the same with
  • 00:06:41 angular we have react we have view and
  • 00:06:43 that's been the case for over two years
  • 00:06:45 now and that will very likely be the
  • 00:06:47 case in two years and in three years
  • 00:06:50 because of course we've got a lot of
  • 00:06:52 other frameworks and libraries coming up
  • 00:06:53 and all come back to G's in a second but
  • 00:06:56 these big free frameworks are here to
  • 00:06:58 stay they're under active development
  • 00:07:00 they got committed teams to get a huge
  • 00:07:02 fan base and base of developers that are
  • 00:07:05 using it and these are all very strong
  • 00:07:08 reasons why these frameworks will stay
  • 00:07:11 here Facebook is back and react and
  • 00:07:13 Google's backing angular and they will
  • 00:07:15 continue developing this and of course
  • 00:07:17 these frameworks will be developed to
  • 00:07:20 adapt to new trends or implement new
  • 00:07:23 features that are now possible with
  • 00:07:25 JavaScript but the way you generally use
  • 00:07:28 these frameworks and libraries will will
  • 00:07:30 not change that drastically so you will
  • 00:07:33 not have to learn a brand new framework
  • 00:07:36 in a year from now what you know today
  • 00:07:38 will still be highly relevant in a year
  • 00:07:40 and in two years time I'm really
  • 00:07:42 convinced by that now of course we got
  • 00:07:45 other tools like swelled and Inferno
  • 00:07:47 jazz aralia stands such as polymer
  • 00:07:50 what's the idea behind all these tools
  • 00:07:52 why do they exist if angular and react
  • 00:07:55 and view are here to stay well of course
  • 00:07:57 because there are always things you can
  • 00:08:00 do better than these existing frameworks
  • 00:08:02 and libraries are doing them because the
  • 00:08:06 existing solutions like angular might be
  • 00:08:07 targeting a broader audience or a
  • 00:08:10 broader range of use cases and a new
  • 00:08:13 framework that came up or that comes up
  • 00:08:14 might target a very specific use case
  • 00:08:17 might for example give you a very small
  • 00:08:19 bundle size that might be perfect for
  • 00:08:21 your next project so if you're working
  • 00:08:23 on your own projects definitely dive
  • 00:08:26 into such solutions and explore if that
  • 00:08:28 these new tools might be better for you
  • 00:08:30 but you don't have to even if we act as
  • 00:08:34 one thing worse than a new framework
  • 00:08:37 that does not mean that react as it
  • 00:08:39 horrible that does not mean that an app
  • 00:08:42 built with react will be worse than with
  • 00:08:45 that new tool that new framework it
  • 00:08:47 might be equally good it might be a bit
  • 00:08:50 worse but such a small fracture there's
  • 00:08:54 might be such a small difference that
  • 00:08:56 you can't even measure it and measuring
  • 00:08:58 performance ends on by the way is really
  • 00:09:00 hard because there are so many use cases
  • 00:09:02 and apps and possible users and so on so
  • 00:09:04 that's a totally different chapter so
  • 00:09:06 these new solutions might do some things
  • 00:09:09 differently or in a better way
  • 00:09:11 but that does not mean that the existing
  • 00:09:13 solutions are doing it in a horrible way
  • 00:09:15 it's good that we have all these
  • 00:09:17 alternatives though because you can
  • 00:09:19 learn something new and I personally
  • 00:09:21 love learning new stuff you can use
  • 00:09:24 these solutions for your new side
  • 00:09:26 projects your personal projects or maybe
  • 00:09:28 if you have a company you're a small
  • 00:09:30 company you can use these frameworks for
  • 00:09:32 your next project in a company and even
  • 00:09:35 if not that applies to you and if you
  • 00:09:37 hate learning new things which is not
  • 00:09:39 that great if you're a web developer but
  • 00:09:41 that's a
  • 00:09:42 or anything even if that all is the case
  • 00:09:44 you still benefit from these new tools
  • 00:09:46 why simply because they drive
  • 00:09:49 competition if something new is coming
  • 00:09:52 up if a new framework is coming up and
  • 00:09:54 that gains some traction or has some
  • 00:09:58 interesting ideas not only you will
  • 00:10:00 recognize it but all the developers
  • 00:10:02 behind react triangular and view and if
  • 00:10:04 there are some good ideas in that
  • 00:10:06 framework that lead to a smaller bundle
  • 00:10:08 or better performance easier a better
  • 00:10:12 ease of use and so on then you can
  • 00:10:14 definitely rely on these existing tools
  • 00:10:16 picking up these ideas of course because
  • 00:10:19 the Google team the angular team wants
  • 00:10:22 angular to be the best framework for
  • 00:10:24 every job you can use it for the
  • 00:10:28 reacting ones react to win and the view
  • 00:10:30 team wants you to win and therefore if
  • 00:10:32 something new is coming up which has
  • 00:10:33 some cool ideas these existing
  • 00:10:35 frameworks will certainly look at these
  • 00:10:37 ideas and see if they can incorporate
  • 00:10:38 them so even if you're not learning new
  • 00:10:42 frameworks and libraries you will
  • 00:10:44 probably still benefit from their
  • 00:10:46 existence these are my thoughts and
  • 00:10:49 therefore my summary of course is that
  • 00:10:51 it's not so bad that we have more
  • 00:10:52 alternatives you don't have to learn
  • 00:10:54 them that's not do you not but maybe
  • 00:10:57 it's still interesting to learn
  • 00:10:59 something you maybe it helps you even
  • 00:11:01 with react if you learn about a new
  • 00:11:02 feature in a different framework because
  • 00:11:04 you then start thinking about how that
  • 00:11:06 specific use cases handle and react and
  • 00:11:08 maybe you did something wrong there or
  • 00:11:10 you can write better react code and even
  • 00:11:12 if that's not the case well the
  • 00:11:14 competition thing still applies so these
  • 00:11:17 are my thoughts on on this topic I'm
  • 00:11:20 really interested in hearing yours so
  • 00:11:21 please share your thoughts in the
  • 00:11:23 comments and with that I hope you liked
  • 00:11:26 the video bye