[
  {
    "start": 0.0,
    "end": 3.285,
    "text": "- As a professional web developer,"
  },
  {
    "start": 3.285,
    "end": 7.104,
    "text": "I do work a lot with React,"
  },
  {
    "start": 7.104,
    "end": 11.957,
    "text": "Angular, Vue, and similar\nlibraries and frameworks,"
  },
  {
    "start": 11.957,
    "end": 15.71,
    "text": "especially since I do a lot\nof front-end web development."
  },
  {
    "start": 15.71,
    "end": 20.23,
    "text": "And of course, I also got\nsome bestselling courses"
  },
  {
    "start": 20.23,
    "end": 22.481,
    "text": "on those libraries and frameworks."
  },
  {
    "start": 22.481,
    "end": 26.184,
    "text": "And therefore, it's only\nnatural that I often get asked"
  },
  {
    "start": 26.184,
    "end": 30.887,
    "text": "what my personal favorite\nis and which library"
  },
  {
    "start": 30.887,
    "end": 35.773,
    "text": "or framework I would recommend\nto learn or to focus on,"
  },
  {
    "start": 35.773,
    "end": 38.892,
    "text": "for example, now that a new year started."
  },
  {
    "start": 38.892,
    "end": 41.511,
    "text": "And therefore, over the next minutes,"
  },
  {
    "start": 41.511,
    "end": 45.647,
    "text": "I wanna give you an idea\nof what my favorite is"
  },
  {
    "start": 45.647,
    "end": 49.366,
    "text": "and why that's the case, and I'll explain"
  },
  {
    "start": 49.366,
    "end": 53.502,
    "text": "why it of course depends,\nas it always does,"
  },
  {
    "start": 53.502,
    "end": 57.655,
    "text": "which framework or library\nyou should focus on,"
  },
  {
    "start": 57.655,
    "end": 61.39,
    "text": "but I'll also explain what it depends on."
  },
  {
    "start": 61.39,
    "end": 65.927,
    "text": "And therefore, I'll explore\nthe different philosophies"
  },
  {
    "start": 65.927,
    "end": 68.629,
    "text": "behind those different frameworks."
  },
  {
    "start": 68.629,
    "end": 72.648,
    "text": "I'll explain who owns\nand runs those frameworks"
  },
  {
    "start": 72.648,
    "end": 75.65,
    "text": "and libraries and what that means for you"
  },
  {
    "start": 75.65,
    "end": 79.336,
    "text": "and why that should influence your choice,"
  },
  {
    "start": 79.336,
    "end": 82.555,
    "text": "which library or framework\nyou are going to use."
  },
  {
    "start": 82.555,
    "end": 85.573,
    "text": "And I'll also take a\nlook at the popularity,"
  },
  {
    "start": 85.573,
    "end": 88.725,
    "text": "the numbers, how often\nthose libraries get used."
  },
  {
    "start": 88.725,
    "end": 92.545,
    "text": "I'll of course also give you an insight"
  },
  {
    "start": 92.545,
    "end": 95.33,
    "text": "into how performant those frameworks"
  },
  {
    "start": 95.33,
    "end": 98.482,
    "text": "and libraries are and if that matters."
  },
  {
    "start": 98.482,
    "end": 102.051,
    "text": "And I'll of course also\nexplore how easy or difficult"
  },
  {
    "start": 102.051,
    "end": 105.52,
    "text": "those different libraries\nare to learn and to master"
  },
  {
    "start": 105.52,
    "end": 109.573,
    "text": "and to become better at\nbefore I then, as promised,"
  },
  {
    "start": 109.573,
    "end": 113.392,
    "text": "also let you know what\nmy personal favorite is."
  },
  {
    "start": 113.392,
    "end": 117.561,
    "text": "Now, let's start with the\ndifferent philosophies"
  },
  {
    "start": 117.561,
    "end": 119.596,
    "text": "because that's really important."
  },
  {
    "start": 119.596,
    "end": 124.483,
    "text": "We got all these different\nlibraries and frameworks,"
  },
  {
    "start": 124.483,
    "end": 128.785,
    "text": "but they don't all have\nexactly the same philosophy,"
  },
  {
    "start": 128.785,
    "end": 132.821,
    "text": "the same way of working,\nand the same approach"
  },
  {
    "start": 132.821,
    "end": 137.274,
    "text": "towards the idea of giving\nyou a tool that you can use"
  },
  {
    "start": 137.274,
    "end": 141.911,
    "text": "to build web applications or\nfront-end web applications."
  },
  {
    "start": 141.911,
    "end": 145.33,
    "text": "For example, React, which arguably"
  },
  {
    "start": 145.33,
    "end": 149.299,
    "text": "is the most popular library,\nand I'll get back to that,"
  },
  {
    "start": 149.299,
    "end": 153.635,
    "text": "React has the approach of being a library"
  },
  {
    "start": 153.635,
    "end": 157.488,
    "text": "that's focused on managing the UI,"
  },
  {
    "start": 157.488,
    "end": 161.207,
    "text": "updating the UI based on your code."
  },
  {
    "start": 161.207,
    "end": 164.109,
    "text": "And that sounds pretty\ntrivial, and it sounds"
  },
  {
    "start": 164.109,
    "end": 168.012,
    "text": "like what such a front-end\nlibrary should do,"
  },
  {
    "start": 168.012,
    "end": 170.68,
    "text": "and that's probably why React does it,"
  },
  {
    "start": 170.68,
    "end": 172.665,
    "text": "but as you will see, for example,"
  },
  {
    "start": 172.665,
    "end": 176.901,
    "text": "Angular does way more and\nhas more built-in features"
  },
  {
    "start": 176.901,
    "end": 179.419,
    "text": "that can come in handy."
  },
  {
    "start": 179.419,
    "end": 180.97,
    "text": "React, on the other hand,"
  },
  {
    "start": 180.97,
    "end": 185.173,
    "text": "in its core, is really just\nabout giving you the tools"
  },
  {
    "start": 185.173,
    "end": 190.176,
    "text": "you need to derive state,\nderive changing states"
  },
  {
    "start": 190.31,
    "end": 194.029,
    "text": "and update the UI\naccordingly so that you can,"
  },
  {
    "start": 194.029,
    "end": 197.715,
    "text": "for example, listen to\na click on a button,"
  },
  {
    "start": 197.715,
    "end": 202.101,
    "text": "then change some internal\ndata and then reflect"
  },
  {
    "start": 202.101,
    "end": 204.636,
    "text": "that changed data on the screen."
  },
  {
    "start": 204.636,
    "end": 208.939,
    "text": "Now it turns out though, that in reality,"
  },
  {
    "start": 208.939,
    "end": 213.008,
    "text": "most front-end web\napplications you are building"
  },
  {
    "start": 213.008,
    "end": 214.926,
    "text": "need a bit more than that."
  },
  {
    "start": 214.926,
    "end": 217.595,
    "text": "For example, they might need routing."
  },
  {
    "start": 217.595,
    "end": 222.598,
    "text": "So the capability of managing\ndifferent URL paths"
  },
  {
    "start": 223.299,
    "end": 227.318,
    "text": "and displaying different\npages for different paths."
  },
  {
    "start": 227.318,
    "end": 229.636,
    "text": "Now, when I say pages,"
  },
  {
    "start": 229.636,
    "end": 231.788,
    "text": "I, of course, here in the context"
  },
  {
    "start": 231.788,
    "end": 235.457,
    "text": "of those front-end JavaScript libraries,"
  },
  {
    "start": 235.457,
    "end": 238.959,
    "text": "mean that we're technically\nstill on the same page."
  },
  {
    "start": 238.959,
    "end": 242.111,
    "text": "We're still on the same HTML file"
  },
  {
    "start": 242.111,
    "end": 245.38,
    "text": "that was originally\ndownloaded from the server,"
  },
  {
    "start": 245.38,
    "end": 250.217,
    "text": "but the front-end JavaScript\nchanges what's visible"
  },
  {
    "start": 250.217,
    "end": 251.751,
    "text": "in that file, so to say."
  },
  {
    "start": 251.751,
    "end": 253.752,
    "text": "So what's visible on the page."
  },
  {
    "start": 253.752,
    "end": 256.07,
    "text": "That's how single-page applications work."
  },
  {
    "start": 256.07,
    "end": 259.189,
    "text": "And even though they're called\nsingle-page applications,"
  },
  {
    "start": 259.189,
    "end": 262.658,
    "text": "because we have just this\none single HTML file,"
  },
  {
    "start": 262.658,
    "end": 264.826,
    "text": "which is downloaded initially,"
  },
  {
    "start": 264.826,
    "end": 268.696,
    "text": "those applications still\ntypically, very often,"
  },
  {
    "start": 268.696,
    "end": 272.381,
    "text": "need to display different screens,"
  },
  {
    "start": 272.381,
    "end": 275.35,
    "text": "different pages if you\nwanna call it like this,"
  },
  {
    "start": 275.35,
    "end": 277.235,
    "text": "so that we can, for example,"
  },
  {
    "start": 277.235,
    "end": 281.054,
    "text": "view a login screen, and\nonce we are logged in,"
  },
  {
    "start": 281.054,
    "end": 283.756,
    "text": "we might wanna move on\nto a dashboard screen."
  },
  {
    "start": 283.756,
    "end": 287.175,
    "text": "And it would all be handled\nby the same JavaScript code"
  },
  {
    "start": 287.175,
    "end": 290.11,
    "text": "that's powered by React, for example."
  },
  {
    "start": 290.11,
    "end": 291.461,
    "text": "Now, React, however,"
  },
  {
    "start": 291.461,
    "end": 296.464,
    "text": "doesn't have any built-in\nmechanism that would watch the URL"
  },
  {
    "start": 297.165,
    "end": 302.051,
    "text": "and would navigate you\nfrom /login to /dashboard"
  },
  {
    "start": 302.051,
    "end": 304.519,
    "text": "and display something else on the screen."
  },
  {
    "start": 304.519,
    "end": 307.905,
    "text": "You would have to build such\na functionality on your own,"
  },
  {
    "start": 307.905,
    "end": 311.924,
    "text": "or what you would typically\ndo, you would reach out"
  },
  {
    "start": 311.924,
    "end": 313.992,
    "text": "for a third-party library."
  },
  {
    "start": 313.992,
    "end": 316.06,
    "text": "For example, for React Router,"
  },
  {
    "start": 316.06,
    "end": 320.23,
    "text": "which is a super popular\nrouting library for React."
  },
  {
    "start": 320.23,
    "end": 323.265,
    "text": "But that's the philosophy of React."
  },
  {
    "start": 323.265,
    "end": 326.384,
    "text": "You have just the basics built-in,"
  },
  {
    "start": 326.384,
    "end": 330.17,
    "text": "and you then need extra\nthird-party libraries,"
  },
  {
    "start": 330.17,
    "end": 333.222,
    "text": "which are not maintained by the React team"
  },
  {
    "start": 333.222,
    "end": 335.423,
    "text": "but instead, by the React community"
  },
  {
    "start": 335.423,
    "end": 338.976,
    "text": "to solve certain specific problems."
  },
  {
    "start": 338.976,
    "end": 342.845,
    "text": "And routing is a pretty common problem,"
  },
  {
    "start": 342.845,
    "end": 345.83,
    "text": "and it has a very well-maintained library"
  },
  {
    "start": 345.83,
    "end": 347.448,
    "text": "that solves that problem,"
  },
  {
    "start": 347.448,
    "end": 349.566,
    "text": "but of course, there are multiple problems"
  },
  {
    "start": 349.566,
    "end": 350.984,
    "text": "you might wanna solve."
  },
  {
    "start": 350.984,
    "end": 354.219,
    "text": "Advanced animations, form handling,"
  },
  {
    "start": 354.219,
    "end": 356.171,
    "text": "advanced state management,"
  },
  {
    "start": 356.171,
    "end": 358.872,
    "text": "and a broad variety of other things."
  },
  {
    "start": 358.872,
    "end": 362.108,
    "text": "And for all these different\nproblems, when using React,"
  },
  {
    "start": 362.108,
    "end": 365.227,
    "text": "you need an extra third-party library."
  },
  {
    "start": 365.227,
    "end": 367.845,
    "text": "And that, for example, is different"
  },
  {
    "start": 367.845,
    "end": 370.664,
    "text": "when you are working with Angular."
  },
  {
    "start": 370.664,
    "end": 374.416,
    "text": "Angular, unlike React,\nis not just a library,"
  },
  {
    "start": 374.416,
    "end": 378.369,
    "text": "which focuses on the bare\nminimum, but instead,"
  },
  {
    "start": 378.369,
    "end": 382.205,
    "text": "Angular actually is a framework that comes"
  },
  {
    "start": 382.205,
    "end": 385.057,
    "text": "with batteries included, you could say."
  },
  {
    "start": 385.057,
    "end": 388.659,
    "text": "So it comes with many crucial features,"
  },
  {
    "start": 388.659,
    "end": 393.229,
    "text": "many crucial solutions to\ncommon problems built-in."
  },
  {
    "start": 393.229,
    "end": 396.881,
    "text": "For example, Angular has a\nbuilt-in routing package,"
  },
  {
    "start": 396.881,
    "end": 400.667,
    "text": "which is developed and\nmaintained by the Angular team."
  },
  {
    "start": 400.667,
    "end": 404.536,
    "text": "So the same team that's\nmaintaining and developing"
  },
  {
    "start": 404.536,
    "end": 407.171,
    "text": "the Angular core framework itself,"
  },
  {
    "start": 407.171,
    "end": 409.573,
    "text": "the core library, if you\nwanna call it like this."
  },
  {
    "start": 409.573,
    "end": 412.608,
    "text": "And there are many other\npackages that are developed"
  },
  {
    "start": 412.608,
    "end": 414.826,
    "text": "and maintained by the Angular team."
  },
  {
    "start": 414.826,
    "end": 417.411,
    "text": "For example, you have a\npackage for animations,"
  },
  {
    "start": 417.411,
    "end": 421.931,
    "text": "for handling forms and\nvalidating forms, and so on."
  },
  {
    "start": 421.931,
    "end": 424.85,
    "text": "And that's simply a different approach,"
  },
  {
    "start": 424.85,
    "end": 427.118,
    "text": "a different philosophy."
  },
  {
    "start": 427.118,
    "end": 431.738,
    "text": "Now Vue, for example, is\na bit between those two,"
  },
  {
    "start": 431.738,
    "end": 432.705,
    "text": "you could say."
  },
  {
    "start": 432.705,
    "end": 435.424,
    "text": "In its core, Vue is like React"
  },
  {
    "start": 435.424,
    "end": 439.61,
    "text": "and focuses on just updating the UI."
  },
  {
    "start": 439.61,
    "end": 444.596,
    "text": "But Vue then has a team\nof core maintainers"
  },
  {
    "start": 444.98,
    "end": 449.5,
    "text": "where some of those team members\nare then also responsible"
  },
  {
    "start": 449.5,
    "end": 453.769,
    "text": "for some important third-party packages,"
  },
  {
    "start": 453.769,
    "end": 458.255,
    "text": "which are only kind of\nthird party, I would guess,"
  },
  {
    "start": 458.255,
    "end": 460.39,
    "text": "because they are, in the end,"
  },
  {
    "start": 460.39,
    "end": 462.825,
    "text": "developed by those Vue core members"
  },
  {
    "start": 462.825,
    "end": 466.177,
    "text": "and maintained by those members."
  },
  {
    "start": 466.177,
    "end": 469.813,
    "text": "And therefore, Vue does not\njust have that core framework,"
  },
  {
    "start": 469.813,
    "end": 473.916,
    "text": "but it also has some\ncrucial extra packages"
  },
  {
    "start": 473.916,
    "end": 476.801,
    "text": "like a routing package that are maintained"
  },
  {
    "start": 476.801,
    "end": 478.669,
    "text": "by some of the same people"
  },
  {
    "start": 478.669,
    "end": 481.221,
    "text": "that are working on the core framework."
  },
  {
    "start": 481.221,
    "end": 485.924,
    "text": "Now, for other libraries\nlike Svelte or SolidJS,"
  },
  {
    "start": 485.924,
    "end": 489.009,
    "text": "things are kind of similar, you could say."
  },
  {
    "start": 489.009,
    "end": 492.161,
    "text": "There, it's also some core members,"
  },
  {
    "start": 492.161,
    "end": 497.165,
    "text": "some core members of the\nSvelte or SolidJS teams,"
  },
  {
    "start": 497.498,
    "end": 500.75,
    "text": "if you wanna call it like\nthis, that are also working"
  },
  {
    "start": 500.75,
    "end": 504.553,
    "text": "on crucial third-party\nlibraries or extra frameworks"
  },
  {
    "start": 504.553,
    "end": 508.639,
    "text": "that are building up on Svelte and SolidJS"
  },
  {
    "start": 508.639,
    "end": 510.974,
    "text": "to offer features like routing."
  },
  {
    "start": 510.974,
    "end": 515.36,
    "text": "And that's actually an important topic."
  },
  {
    "start": 515.36,
    "end": 520.097,
    "text": "Frameworks building up\non those base libraries"
  },
  {
    "start": 520.097,
    "end": 523.482,
    "text": "and frameworks, which\nmight sound weird at first."
  },
  {
    "start": 523.482,
    "end": 525.801,
    "text": "Why would we have a framework"
  },
  {
    "start": 525.801,
    "end": 529.186,
    "text": "that builds up on React, for example?"
  },
  {
    "start": 529.186,
    "end": 531.788,
    "text": "React itself is already a library,"
  },
  {
    "start": 531.788,
    "end": 536.408,
    "text": "so why do we have some extra\nframework that builds up on it?"
  },
  {
    "start": 536.408,
    "end": 538.776,
    "text": "Well, we do have such frameworks,"
  },
  {
    "start": 538.776,
    "end": 542.512,
    "text": "for example, Next.js but also Remix,"
  },
  {
    "start": 542.512,
    "end": 545.714,
    "text": "because remember, React itself"
  },
  {
    "start": 545.714,
    "end": 550.467,
    "text": "is just that basic thing\nthat handles UI updates."
  },
  {
    "start": 551.451,
    "end": 554.62,
    "text": "Now, recently, over the last one"
  },
  {
    "start": 554.62,
    "end": 558.489,
    "text": "and two years, we've seen a huge trend"
  },
  {
    "start": 558.489,
    "end": 561.791,
    "text": "where we seem to be moving away"
  },
  {
    "start": 561.791,
    "end": 565.811,
    "text": "from building decoupled\nfront-end applications,"
  },
  {
    "start": 565.811,
    "end": 569.263,
    "text": "single-page applications\nwith React or Angular"
  },
  {
    "start": 569.263,
    "end": 572.298,
    "text": "and so on, and extra back-ends,"
  },
  {
    "start": 572.298,
    "end": 574.933,
    "text": "extra REST APIs, for example."
  },
  {
    "start": 574.933,
    "end": 578.469,
    "text": "We seem to be moving away from that way"
  },
  {
    "start": 578.469,
    "end": 580.27,
    "text": "of building web applications"
  },
  {
    "start": 580.27,
    "end": 583.489,
    "text": "back to building full-stack applications."
  },
  {
    "start": 583.489,
    "end": 587.058,
    "text": "So where you have one\nproject where front-end"
  },
  {
    "start": 587.058,
    "end": 590.46,
    "text": "and back-end work together\nseamlessly and blend"
  },
  {
    "start": 590.46,
    "end": 594.48,
    "text": "into each other, where the\nserver side pre-renders"
  },
  {
    "start": 594.48,
    "end": 599.3,
    "text": "the front-end pages on the fly\non the server, for example,"
  },
  {
    "start": 599.3,
    "end": 603.369,
    "text": "where the data for those\npages is fetched directly"
  },
  {
    "start": 603.369,
    "end": 606.137,
    "text": "on the server and\nrendered into those pages"
  },
  {
    "start": 606.137,
    "end": 608.105,
    "text": "on the server, and so on."
  },
  {
    "start": 608.105,
    "end": 610.991,
    "text": "We're seeing a trend\nwhere we're moving more"
  },
  {
    "start": 610.991,
    "end": 613.926,
    "text": "towards that world again, which I guess"
  },
  {
    "start": 613.926,
    "end": 616.461,
    "text": "is the world we're all coming from,"
  },
  {
    "start": 616.461,
    "end": 620.047,
    "text": "back from our early PHP days and so on."
  },
  {
    "start": 620.047,
    "end": 624.4,
    "text": "But that's a topic for a\ndifferent video and talk."
  },
  {
    "start": 624.4,
    "end": 626.768,
    "text": "Anyways, we have that trend,"
  },
  {
    "start": 626.768,
    "end": 630.337,
    "text": "and we have, therefore,\nframeworks like Next.js"
  },
  {
    "start": 630.337,
    "end": 634.49,
    "text": "or Remix for React, which\nsimplify the process"
  },
  {
    "start": 634.49,
    "end": 637.058,
    "text": "of building such full-stack applications."
  },
  {
    "start": 637.058,
    "end": 640.427,
    "text": "So which allow you to build\nfull-stack applications"
  },
  {
    "start": 640.427,
    "end": 645.43,
    "text": "with React by essentially\nwrapping React, that core library,"
  },
  {
    "start": 645.464,
    "end": 649.25,
    "text": "and by then giving you extra\nfeatures that allow you"
  },
  {
    "start": 649.25,
    "end": 652.785,
    "text": "to set up routes that are\nhandled on the server,"
  },
  {
    "start": 652.785,
    "end": 655.937,
    "text": "extra features that help\nyou with data fetching"
  },
  {
    "start": 655.937,
    "end": 658.456,
    "text": "on the server, and so on."
  },
  {
    "start": 658.456,
    "end": 662.075,
    "text": "And Next.js and Remix are some really big,"
  },
  {
    "start": 662.075,
    "end": 665.144,
    "text": "popular JavaScript frameworks."
  },
  {
    "start": 665.144,
    "end": 669.13,
    "text": "They are both for React,\nand they're both key drivers"
  },
  {
    "start": 669.13,
    "end": 671.831,
    "text": "of that trend, you could say."
  },
  {
    "start": 671.831,
    "end": 673.699,
    "text": "And I'm emphasizing this here"
  },
  {
    "start": 673.699,
    "end": 678.319,
    "text": "because this also is an\nimportant consideration to make"
  },
  {
    "start": 678.319,
    "end": 681.171,
    "text": "when choosing a library or framework."
  },
  {
    "start": 681.171,
    "end": 683.856,
    "text": "If you wanna build such\na full-stack application,"
  },
  {
    "start": 683.856,
    "end": 687.575,
    "text": "if you wanna follow that\ntrend, which has its merits,"
  },
  {
    "start": 687.575,
    "end": 689.977,
    "text": "you might wanna pick a library"
  },
  {
    "start": 689.977,
    "end": 693.329,
    "text": "that has some decent meta frameworks,"
  },
  {
    "start": 693.329,
    "end": 695.414,
    "text": "as they're also sometimes called,"
  },
  {
    "start": 695.414,
    "end": 698.649,
    "text": "that allow you to build\nsuch full-stack applications"
  },
  {
    "start": 698.649,
    "end": 700.517,
    "text": "in a simple and easy way."
  },
  {
    "start": 700.517,
    "end": 705.52,
    "text": "And for example, Angular\nhere only has Analog.js."
  },
  {
    "start": 705.737,
    "end": 710.741,
    "text": "And I'm saying only because\nAnalog.js is an amazing project,"
  },
  {
    "start": 712.158,
    "end": 715.127,
    "text": "but it's also less mature,"
  },
  {
    "start": 715.127,
    "end": 719.446,
    "text": "less feature-rich than\nNext.js, for example,"
  },
  {
    "start": 719.446,
    "end": 722.715,
    "text": "which makes sense because Analog.js"
  },
  {
    "start": 722.715,
    "end": 725.867,
    "text": "is essentially developed by one person,"
  },
  {
    "start": 725.867,
    "end": 729.587,
    "text": "whereas Next.js is\ndeveloped by a huge team"
  },
  {
    "start": 729.587,
    "end": 732.755,
    "text": "working at Vercel, which\nis a hosting provider."
  },
  {
    "start": 732.755,
    "end": 736.191,
    "text": "And therefore, since\nwe have only Analog.js,"
  },
  {
    "start": 736.191,
    "end": 738.676,
    "text": "which is a bit less capable than Next.js,"
  },
  {
    "start": 738.676,
    "end": 740.744,
    "text": "for example, if you wanna build"
  },
  {
    "start": 740.744,
    "end": 744.496,
    "text": "such seamlessly integrated\nfull-stack applications"
  },
  {
    "start": 744.496,
    "end": 747.048,
    "text": "with Angular instead of React,"
  },
  {
    "start": 747.048,
    "end": 749.466,
    "text": "that could prove to be a bit trickier,"
  },
  {
    "start": 749.466,
    "end": 752.202,
    "text": "and that might be a\nreason for picking React."
  },
  {
    "start": 752.202,
    "end": 754.57,
    "text": "Now, for Vue, for example,"
  },
  {
    "start": 754.57,
    "end": 755.954,
    "text": "things are different."
  },
  {
    "start": 755.954,
    "end": 759.523,
    "text": "There, we have another meta\nframework built for Vue,"
  },
  {
    "start": 759.523,
    "end": 761.091,
    "text": "which is called Nuxt,"
  },
  {
    "start": 761.091,
    "end": 764.143,
    "text": "which is essentially the Next.js of Vue."
  },
  {
    "start": 764.143,
    "end": 766.394,
    "text": "I guess you see the similarities."
  },
  {
    "start": 766.394,
    "end": 768.679,
    "text": "Nuxt, Next. Yeah."
  },
  {
    "start": 768.679,
    "end": 771.815,
    "text": "It's a framework that\nwas developed for Vue"
  },
  {
    "start": 771.815,
    "end": 773.716,
    "text": "multiple years ago already."
  },
  {
    "start": 773.716,
    "end": 775.968,
    "text": "It's developed by a big team."
  },
  {
    "start": 775.968,
    "end": 779.77,
    "text": "I think they even have some\nventure capital funding,"
  },
  {
    "start": 779.77,
    "end": 782.438,
    "text": "and they are building that meta framework,"
  },
  {
    "start": 782.438,
    "end": 785.857,
    "text": "which allows you to build\nfull-stack applications"
  },
  {
    "start": 785.857,
    "end": 787.992,
    "text": "for Vue, or with Vue."
  },
  {
    "start": 787.992,
    "end": 790.577,
    "text": "And that of course means\nthat if you wanna build"
  },
  {
    "start": 790.577,
    "end": 792.345,
    "text": "such full-stack applications,"
  },
  {
    "start": 792.345,
    "end": 795.114,
    "text": "Vue can be an attractive choice."
  },
  {
    "start": 795.998,
    "end": 801.001,
    "text": "Now, what about smaller\nlibraries like Svelte or SolidJS?"
  },
  {
    "start": 801.635,
    "end": 804.17,
    "text": "And by the way, I know\nthat there are others,"
  },
  {
    "start": 804.17,
    "end": 806.388,
    "text": "but I have to stop somewhere."
  },
  {
    "start": 806.388,
    "end": 809.256,
    "text": "Well, those smaller libraries"
  },
  {
    "start": 809.256,
    "end": 811.308,
    "text": "also have such meta frameworks,"
  },
  {
    "start": 811.308,
    "end": 815.294,
    "text": "which are maintained by the\ndevelopers and by the teams"
  },
  {
    "start": 815.294,
    "end": 818.646,
    "text": "that are working on the\nmain libraries as well."
  },
  {
    "start": 818.646,
    "end": 822.649,
    "text": "Svelte has SvelteKit, which\nis developed by the same team"
  },
  {
    "start": 822.649,
    "end": 827.052,
    "text": "that develops Svelte, and\nSolidJS has SolidStart,"
  },
  {
    "start": 827.952,
    "end": 830.421,
    "text": "which is also such a full-stack framework"
  },
  {
    "start": 830.421,
    "end": 833.022,
    "text": "that's developed by the\nsame team and person"
  },
  {
    "start": 833.022,
    "end": 836.324,
    "text": "that works on the main library."
  },
  {
    "start": 836.324,
    "end": 839.977,
    "text": "So there, we also have\nthose full-stack frameworks."
  },
  {
    "start": 839.977,
    "end": 843.496,
    "text": "And that, therefore, gives us an idea"
  },
  {
    "start": 843.496,
    "end": 846.731,
    "text": "of the different philosophies\nof those libraries"
  },
  {
    "start": 846.731,
    "end": 849.65,
    "text": "and frameworks and how\nyou can work with them."
  },
  {
    "start": 849.65,
    "end": 852.135,
    "text": "Now before we take a\nlook at their popularity,"
  },
  {
    "start": 852.135,
    "end": 855.104,
    "text": "which might also matter\nfor various reasons,"
  },
  {
    "start": 855.104,
    "end": 858.606,
    "text": "let's take a brief look\nat who owns and runs"
  },
  {
    "start": 858.606,
    "end": 861.641,
    "text": "and develops those libraries because that,"
  },
  {
    "start": 861.641,
    "end": 865.827,
    "text": "of course, matters since\nwhen you're choosing"
  },
  {
    "start": 865.827,
    "end": 868.746,
    "text": "a technology, you wanna be sure"
  },
  {
    "start": 868.746,
    "end": 872.532,
    "text": "that it will still be\naround in a couple of years."
  },
  {
    "start": 872.532,
    "end": 875.567,
    "text": "You don't wanna rewrite\nyour entire application"
  },
  {
    "start": 875.567,
    "end": 880.571,
    "text": "in two or three years just\nbecause the technology,"
  },
  {
    "start": 880.571,
    "end": 885.574,
    "text": "the library or framework you\nchose today is outdated then."
  },
  {
    "start": 887.108,
    "end": 889.593,
    "text": "And here, to start with React again,"
  },
  {
    "start": 889.593,
    "end": 893.496,
    "text": "that was originally developed by Facebook,"
  },
  {
    "start": 893.496,
    "end": 896.898,
    "text": "and it's still owned and\nmaintained by Facebook."
  },
  {
    "start": 896.898,
    "end": 901.885,
    "text": "But recently, a part of\nthe team working on React"
  },
  {
    "start": 901.968,
    "end": 906.305,
    "text": "has actually moved to a\ndifferent company, to Vercel,"
  },
  {
    "start": 906.305,
    "end": 909.04,
    "text": "which is that hosting\nprovider that also developed"
  },
  {
    "start": 909.04,
    "end": 911.408,
    "text": "the Next.js framework."
  },
  {
    "start": 911.408,
    "end": 916.061,
    "text": "And we can see the impact\nof this because recently,"
  },
  {
    "start": 916.061,
    "end": 920.347,
    "text": "the focus seems to be\non working on Next.js"
  },
  {
    "start": 920.347,
    "end": 924.05,
    "text": "and making sure that React\nworks well together with it,"
  },
  {
    "start": 924.05,
    "end": 927.886,
    "text": "but I did create a separate\nvideo on the current state"
  },
  {
    "start": 927.886,
    "end": 931.238,
    "text": "of React on my Academind YouTube channel"
  },
  {
    "start": 931.238,
    "end": 933.673,
    "text": "if you wanna learn more about that."
  },
  {
    "start": 933.673,
    "end": 937.375,
    "text": "The main takeaway though,\nis that React is maintained"
  },
  {
    "start": 937.375,
    "end": 941.828,
    "text": "by teams that are\nemployed at big companies,"
  },
  {
    "start": 941.828,
    "end": 943.429,
    "text": "at Facebook, for example,"
  },
  {
    "start": 943.429,
    "end": 947.415,
    "text": "and that those companies\nare using React internally."
  },
  {
    "start": 947.415,
    "end": 950.768,
    "text": "Therefore, it's pretty much guaranteed"
  },
  {
    "start": 950.768,
    "end": 953.586,
    "text": "that React will not just be around today,"
  },
  {
    "start": 953.586,
    "end": 955.671,
    "text": "but also in the future."
  },
  {
    "start": 955.671,
    "end": 958.356,
    "text": "Now it's pretty much the same for Angular"
  },
  {
    "start": 958.356,
    "end": 963.226,
    "text": "because Angular is and was\ndeveloped by a team at Google,"
  },
  {
    "start": 963.226,
    "end": 966.228,
    "text": "and it's getting used by Google in dozens,"
  },
  {
    "start": 966.228,
    "end": 968.896,
    "text": "or, I guess, hundreds of internal"
  },
  {
    "start": 968.896,
    "end": 972.148,
    "text": "and publicly available applications."
  },
  {
    "start": 972.148,
    "end": 975.517,
    "text": "If you're using a Google\nservice on the internet,"
  },
  {
    "start": 975.517,
    "end": 979.42,
    "text": "chances are pretty decent,\nthat it's powered by Angular."
  },
  {
    "start": 979.42,
    "end": 982.205,
    "text": "And therefore here, it's the same."
  },
  {
    "start": 982.205,
    "end": 986.558,
    "text": "There is a pretty much a\nguarantee that Angular,"
  },
  {
    "start": 986.558,
    "end": 991.128,
    "text": "despite Google's tendencies\nto kill its projects,"
  },
  {
    "start": 991.128,
    "end": 993.946,
    "text": "will still be around in a couple of years"
  },
  {
    "start": 993.946,
    "end": 997.065,
    "text": "because they're using it a lot internally."
  },
  {
    "start": 997.065,
    "end": 1000.751,
    "text": "Now for Vue and SolidJS,"
  },
  {
    "start": 1000.751,
    "end": 1005.621,
    "text": "it's a bit different because\nboth of these libraries"
  },
  {
    "start": 1005.621,
    "end": 1009.457,
    "text": "and frameworks are indeed\ndeveloped by the community,"
  },
  {
    "start": 1009.457,
    "end": 1011.575,
    "text": "if you wanna call it like this."
  },
  {
    "start": 1011.575,
    "end": 1016.578,
    "text": "Vue was originally developed\nby one person, by Evan You,"
  },
  {
    "start": 1016.595,
    "end": 1020.347,
    "text": "but it now is actually\nmaintained by a huge team"
  },
  {
    "start": 1020.347,
    "end": 1025.351,
    "text": "of core Vue maintainers, if\nyou wanna call it like this."
  },
  {
    "start": 1025.467,
    "end": 1028.636,
    "text": "And therefore, it has a pretty stable base"
  },
  {
    "start": 1028.636,
    "end": 1031.238,
    "text": "of developers working on it."
  },
  {
    "start": 1031.238,
    "end": 1033.156,
    "text": "Nonetheless, it's not a company,"
  },
  {
    "start": 1033.156,
    "end": 1036.358,
    "text": "but instead, the community\nthat's maintaining Vue."
  },
  {
    "start": 1036.358,
    "end": 1039.627,
    "text": "And you can judge on yourself\nif that makes you feel better"
  },
  {
    "start": 1039.627,
    "end": 1044.13,
    "text": "or worse, or if that gives\nyou more or less security"
  },
  {
    "start": 1044.13,
    "end": 1047.499,
    "text": "that Vue will still be\naround in a couple of years."
  },
  {
    "start": 1047.499,
    "end": 1050.618,
    "text": "Personally, I'm pretty sure it will be."
  },
  {
    "start": 1050.618,
    "end": 1054.754,
    "text": "Now SolidJS is not\nentirely a one-man show."
  },
  {
    "start": 1054.754,
    "end": 1056.938,
    "text": "It does have a lot of contributors,"
  },
  {
    "start": 1056.938,
    "end": 1058.589,
    "text": "a lot of people working on it."
  },
  {
    "start": 1058.589,
    "end": 1061.024,
    "text": "There is a team behind it, you could say,"
  },
  {
    "start": 1061.024,
    "end": 1065.227,
    "text": "but to me, it feels like SolidJS"
  },
  {
    "start": 1065.227,
    "end": 1069.58,
    "text": "has less people working\non it than Vue does."
  },
  {
    "start": 1069.58,
    "end": 1072.549,
    "text": "For example, it's a smaller library."
  },
  {
    "start": 1072.549,
    "end": 1076.285,
    "text": "And for Svelte, there,\nit's important to note"
  },
  {
    "start": 1076.285,
    "end": 1080.371,
    "text": "that one person who\noriginally built Svelte"
  },
  {
    "start": 1080.371,
    "end": 1083.706,
    "text": "is now supported by many core members"
  },
  {
    "start": 1083.706,
    "end": 1087.542,
    "text": "just as it's the case for\nVue, and that one person,"
  },
  {
    "start": 1087.542,
    "end": 1091.528,
    "text": "Rich Harris, is now\nalso employed at Vercel."
  },
  {
    "start": 1091.528,
    "end": 1095.164,
    "text": "So you could say Svelte\nhas kind of a company"
  },
  {
    "start": 1095.164,
    "end": 1096.715,
    "text": "backing behind it."
  },
  {
    "start": 1096.715,
    "end": 1099.817,
    "text": "Not as strong as Next.js and React,"
  },
  {
    "start": 1099.817,
    "end": 1102.419,
    "text": "but some company backing."
  },
  {
    "start": 1102.419,
    "end": 1106.288,
    "text": "And that is an overview\nof who owns and runs"
  },
  {
    "start": 1106.288,
    "end": 1109.173,
    "text": "those different libraries and frameworks."
  },
  {
    "start": 1109.173,
    "end": 1112.192,
    "text": "With that, let's finally leave that behind"
  },
  {
    "start": 1112.192,
    "end": 1116.095,
    "text": "and take a look at how\npopular those frameworks"
  },
  {
    "start": 1116.095,
    "end": 1118.93,
    "text": "and libraries are because\nthat can, of course,"
  },
  {
    "start": 1118.93,
    "end": 1122.766,
    "text": "also be an important decision criteria"
  },
  {
    "start": 1122.766,
    "end": 1126.935,
    "text": "since you might prefer to\nwork with a library a lot"
  },
  {
    "start": 1126.935,
    "end": 1128.936,
    "text": "of other developers are using as well,"
  },
  {
    "start": 1128.936,
    "end": 1131.305,
    "text": "since it will be easier\nto find freelancers"
  },
  {
    "start": 1131.305,
    "end": 1134.007,
    "text": "for popular libraries, since the ecosystem"
  },
  {
    "start": 1134.007,
    "end": 1137.826,
    "text": "might be more active, since\nyou might find more tutorials"
  },
  {
    "start": 1137.826,
    "end": 1142.079,
    "text": "and courses and solutions\nfor problems, and so on."
  },
  {
    "start": 1142.079,
    "end": 1145.564,
    "text": "And here, it's probably\nfair to say that React"
  },
  {
    "start": 1145.564,
    "end": 1150.568,
    "text": "is the most popular\nfront-end JavaScript library."
  },
  {
    "start": 1150.985,
    "end": 1153.57,
    "text": "At the point of time\nwhere I'm recording this,"
  },
  {
    "start": 1153.57,
    "end": 1157.322,
    "text": "it has more than 200,000 GitHub Stars."
  },
  {
    "start": 1157.322,
    "end": 1162.325,
    "text": "It has around 22 million\nweekly downloads on npm."
  },
  {
    "start": 1162.759,
    "end": 1164.727,
    "text": "So the React package is downloaded"
  },
  {
    "start": 1164.727,
    "end": 1168.93,
    "text": "around 22 million times every week."
  },
  {
    "start": 1168.93,
    "end": 1172.832,
    "text": "And I looked up some\njob postings on Indeed,"
  },
  {
    "start": 1172.832,
    "end": 1174.484,
    "text": "but also LinkedIn Jobs."
  },
  {
    "start": 1174.484,
    "end": 1177.786,
    "text": "And there, you were able to find thousands"
  },
  {
    "start": 1177.786,
    "end": 1181.205,
    "text": "of job postings looking\nfor React developers."
  },
  {
    "start": 1181.205,
    "end": 1184.257,
    "text": "On Indeed, for example,\nwhen I recorded this,"
  },
  {
    "start": 1184.257,
    "end": 1188.46,
    "text": "I found around 11,000\njob postings for React,"
  },
  {
    "start": 1188.46,
    "end": 1192.095,
    "text": "and I found even more\njob postings on LinkedIn."
  },
  {
    "start": 1192.095,
    "end": 1193.229,
    "text": "Now, Angular"
  },
  {
    "start": 1193.229,
    "end": 1198.066,
    "text": "is probably the second most\npopular framework here,"
  },
  {
    "start": 1198.066,
    "end": 1201.418,
    "text": "though it of course always\ndepends on how you measure it."
  },
  {
    "start": 1201.418,
    "end": 1206.038,
    "text": "But Angular has over 90,000 GitHub Stars."
  },
  {
    "start": 1206.038,
    "end": 1211.041,
    "text": "So way less than the 200,000\nReact has, but still."
  },
  {
    "start": 1211.358,
    "end": 1216.345,
    "text": "It has 3.2 million weekly npm downloads."
  },
  {
    "start": 1216.512,
    "end": 1219.931,
    "text": "So also way less than React."
  },
  {
    "start": 1219.931,
    "end": 1221.848,
    "text": "Though, at least to my knowledge,"
  },
  {
    "start": 1221.848,
    "end": 1225.151,
    "text": "one reason for that also is that Angular"
  },
  {
    "start": 1225.151,
    "end": 1230.154,
    "text": "is quite popular amongst huge enterprises,"
  },
  {
    "start": 1230.671,
    "end": 1235.508,
    "text": "and they sometimes have their\nown dependency registries,"
  },
  {
    "start": 1235.508,
    "end": 1237.776,
    "text": "some internal dependency registries"
  },
  {
    "start": 1237.776,
    "end": 1239.494,
    "text": "where it might be served from."
  },
  {
    "start": 1239.494,
    "end": 1241.828,
    "text": "But still, it's definitely fair to say"
  },
  {
    "start": 1241.828,
    "end": 1244.53,
    "text": "that it has less downloads than React."
  },
  {
    "start": 1244.53,
    "end": 1248.516,
    "text": "And at least on Indeed,\nI also found less jobs"
  },
  {
    "start": 1248.516,
    "end": 1250.768,
    "text": "for Angular than for React."
  },
  {
    "start": 1250.768,
    "end": 1254.52,
    "text": "I found around 6,000 job postings there"
  },
  {
    "start": 1254.52,
    "end": 1257.139,
    "text": "compared to the 11,000 of React."
  },
  {
    "start": 1257.139,
    "end": 1258.957,
    "text": "But on LinkedIn, on the other hand,"
  },
  {
    "start": 1258.957,
    "end": 1261.542,
    "text": "I found more job postings for Angular."
  },
  {
    "start": 1261.542,
    "end": 1264.21,
    "text": "So overall, it's definitely fair to say"
  },
  {
    "start": 1264.21,
    "end": 1266.829,
    "text": "that it's pretty popular,\nand that especially"
  },
  {
    "start": 1266.829,
    "end": 1271.065,
    "text": "if you're looking to find\na job for the framework"
  },
  {
    "start": 1271.065,
    "end": 1276.068,
    "text": "you're using, angular has\nlots of available jobs."
  },
  {
    "start": 1276.752,
    "end": 1281.438,
    "text": "Now, Vue then is a bit smaller\nthan React and Angular,"
  },
  {
    "start": 1281.438,
    "end": 1285.808,
    "text": "though not necessarily at all\nthe metrics you could look at."
  },
  {
    "start": 1285.808,
    "end": 1289.71,
    "text": "Now, the Vue 3, which is\nthe latest Vue version,"
  },
  {
    "start": 1289.71,
    "end": 1293.947,
    "text": "GitHub repository has\naround 40,000 GitHub Stars."
  },
  {
    "start": 1293.947,
    "end": 1297.749,
    "text": "So less than Angular and\nof course, less than React."
  },
  {
    "start": 1297.749,
    "end": 1302.752,
    "text": "But Vue had over 4 million\nweekly npm downloads."
  },
  {
    "start": 1302.786,
    "end": 1305.438,
    "text": "So actually more than Angular."
  },
  {
    "start": 1305.438,
    "end": 1309.19,
    "text": "However, it definitely\nhad less job postings."
  },
  {
    "start": 1309.19,
    "end": 1311.075,
    "text": "For example, on Indeed,"
  },
  {
    "start": 1311.075,
    "end": 1315.661,
    "text": "I found around 1,400 jobs\nwhen I created this year."
  },
  {
    "start": 1315.661,
    "end": 1319.414,
    "text": "And that's less than the\n6,000 or 11,000 I found"
  },
  {
    "start": 1319.414,
    "end": 1321.265,
    "text": "for Angular and React."
  },
  {
    "start": 1321.265,
    "end": 1324.367,
    "text": "It also had less jobs\non LinkedIn, by the way."
  },
  {
    "start": 1324.367,
    "end": 1327.903,
    "text": "Nonetheless, Vue is definitely\na popular framework."
  },
  {
    "start": 1327.903,
    "end": 1329.62,
    "text": "And if you're looking to find a job,"
  },
  {
    "start": 1329.62,
    "end": 1334.607,
    "text": "there still is a decent amount\nof job postings for Vue.js."
  },
  {
    "start": 1334.841,
    "end": 1339.544,
    "text": "And these things change a\nbit for Svelte and SolidJS."
  },
  {
    "start": 1339.544,
    "end": 1343.53,
    "text": "They are still popular if you\ntake a look at GitHub Stars."
  },
  {
    "start": 1343.53,
    "end": 1347.999,
    "text": "For example, Svelte has\nover 70,000 GitHub Stars."
  },
  {
    "start": 1347.999,
    "end": 1350.818,
    "text": "SolidJS has around 30,000."
  },
  {
    "start": 1350.818,
    "end": 1352.836,
    "text": "So they are popular there."
  },
  {
    "start": 1352.836,
    "end": 1355.438,
    "text": "But for example, regarding npm downloads,"
  },
  {
    "start": 1355.438,
    "end": 1359.824,
    "text": "we're looking at less than\n1 million weekly downloads"
  },
  {
    "start": 1359.824,
    "end": 1362.159,
    "text": "for both those packages."
  },
  {
    "start": 1362.159,
    "end": 1367.162,
    "text": "Svelte has 0.8 million, and\nSolidJS has 0.2 million."
  },
  {
    "start": 1369.063,
    "end": 1372.149,
    "text": "So 200,000 weekly downloads,"
  },
  {
    "start": 1372.149,
    "end": 1375.351,
    "text": "which is way less than\nthe other frameworks had."
  },
  {
    "start": 1375.351,
    "end": 1378.119,
    "text": "And the same is true for job postings."
  },
  {
    "start": 1378.119,
    "end": 1381.205,
    "text": "There, I was only able to\nfind a couple of dozen,"
  },
  {
    "start": 1381.205,
    "end": 1384.007,
    "text": "maybe hundreds, of job postings,"
  },
  {
    "start": 1384.007,
    "end": 1386.642,
    "text": "but not the thousands of jobs you found"
  },
  {
    "start": 1386.642,
    "end": 1388.326,
    "text": "for the other frameworks."
  },
  {
    "start": 1388.326,
    "end": 1390.695,
    "text": "And that's therefore the popularity"
  },
  {
    "start": 1390.695,
    "end": 1393.747,
    "text": "of those frameworks and libraries."
  },
  {
    "start": 1393.747,
    "end": 1396.849,
    "text": "Now, another important decision factor,"
  },
  {
    "start": 1396.849,
    "end": 1398.767,
    "text": "of course, is performance,"
  },
  {
    "start": 1398.767,
    "end": 1401.252,
    "text": "because you wanna choose a technology"
  },
  {
    "start": 1401.252,
    "end": 1404.937,
    "text": "that allows you to build\napplications that perform well,"
  },
  {
    "start": 1404.937,
    "end": 1407.256,
    "text": "that deliver great performance"
  },
  {
    "start": 1407.256,
    "end": 1409.857,
    "text": "to your website visitors, for example."
  },
  {
    "start": 1409.857,
    "end": 1414.177,
    "text": "And here, the easy answer\nis all these libraries"
  },
  {
    "start": 1414.177,
    "end": 1416.995,
    "text": "and frameworks are extremely performant."
  },
  {
    "start": 1416.995,
    "end": 1421.448,
    "text": "You will always be able to\nfind specific niche cases"
  },
  {
    "start": 1421.448,
    "end": 1424.267,
    "text": "or scenarios or optimization"
  },
  {
    "start": 1424.267,
    "end": 1427.869,
    "text": "that make one framework stand out,"
  },
  {
    "start": 1427.869,
    "end": 1430.288,
    "text": "but the main takeaway really"
  },
  {
    "start": 1430.288,
    "end": 1433.323,
    "text": "is that they all got great performance."
  },
  {
    "start": 1433.323,
    "end": 1437.109,
    "text": "You find a link to a website\nthat runs some benchmarks"
  },
  {
    "start": 1437.109,
    "end": 1440.261,
    "text": "across those frameworks, in the show notes"
  },
  {
    "start": 1440.261,
    "end": 1441.595,
    "text": "or below the video."
  },
  {
    "start": 1441.595,
    "end": 1444.297,
    "text": "But in the end, it really is the case"
  },
  {
    "start": 1444.297,
    "end": 1447.549,
    "text": "that you got great performance\nfor all those frameworks"
  },
  {
    "start": 1447.549,
    "end": 1448.983,
    "text": "and libraries, and therefore,"
  },
  {
    "start": 1448.983,
    "end": 1453.987,
    "text": "performance likely will not\nbe the most important factor"
  },
  {
    "start": 1454.32,
    "end": 1458.673,
    "text": "when deciding for one of\nthose libraries or frameworks."
  },
  {
    "start": 1458.673,
    "end": 1463.026,
    "text": "Though it of course can\nbe in certain situations."
  },
  {
    "start": 1463.026,
    "end": 1469.564,
    "text": "Now, what might matter though,\nis the way you write code"
  },
  {
    "start": 1469.564,
    "end": 1471.265,
    "text": "and if you like the syntax"
  },
  {
    "start": 1471.265,
    "end": 1474.667,
    "text": "and the the way of solving problems"
  },
  {
    "start": 1474.667,
    "end": 1476.669,
    "text": "with those different libraries"
  },
  {
    "start": 1476.669,
    "end": 1480.771,
    "text": "because they of course all\nhave their very own syntax"
  },
  {
    "start": 1480.771,
    "end": 1484.691,
    "text": "and their very own way of writing code"
  },
  {
    "start": 1484.691,
    "end": 1487.442,
    "text": "that you need to adapt if you're working"
  },
  {
    "start": 1487.442,
    "end": 1490.294,
    "text": "with one of those libraries or frameworks."
  },
  {
    "start": 1490.294,
    "end": 1495.181,
    "text": "They all share the idea of\ncomposing your user interface"
  },
  {
    "start": 1495.181,
    "end": 1499.35,
    "text": "from components, from\nreusable building blocks"
  },
  {
    "start": 1499.35,
    "end": 1502.186,
    "text": "that contain the markup\nthat should be rendered"
  },
  {
    "start": 1502.186,
    "end": 1505.805,
    "text": "and the logic that\nmight alter that markup."
  },
  {
    "start": 1505.805,
    "end": 1508.373,
    "text": "But the way you then\nwrite those components"
  },
  {
    "start": 1508.373,
    "end": 1510.992,
    "text": "and the way you manage your state"
  },
  {
    "start": 1510.992,
    "end": 1514.894,
    "text": "that leads to UI updates, that differs."
  },
  {
    "start": 1514.894,
    "end": 1516.695,
    "text": "With React, for example,"
  },
  {
    "start": 1516.695,
    "end": 1521.699,
    "text": "you write JavaScript functions,\nand you use a feature"
  },
  {
    "start": 1521.732,
    "end": 1526.435,
    "text": "called React Hooks to manage\nsome data in those functions,"
  },
  {
    "start": 1526.435,
    "end": 1529.571,
    "text": "which will re-execute those\nfunctions automatically"
  },
  {
    "start": 1529.571,
    "end": 1532.389,
    "text": "when that data changes and so on."
  },
  {
    "start": 1532.389,
    "end": 1534.207,
    "text": "With Angular, on the other hand,"
  },
  {
    "start": 1534.207,
    "end": 1538.81,
    "text": "you're working with classes,\nand you work with decorators"
  },
  {
    "start": 1538.81,
    "end": 1542.496,
    "text": "and extra template files, and it tends"
  },
  {
    "start": 1542.496,
    "end": 1547.466,
    "text": "to require a bit more\nboilerplate code than React,"
  },
  {
    "start": 1547.466,
    "end": 1549.034,
    "text": "for example."
  },
  {
    "start": 1549.034,
    "end": 1552.369,
    "text": "In Vue, you have separate files,"
  },
  {
    "start": 1552.369,
    "end": 1554.971,
    "text": "a separate file format, you could say,"
  },
  {
    "start": 1554.971,
    "end": 1558.24,
    "text": "where you put your\ncomponents, their markup,"
  },
  {
    "start": 1558.24,
    "end": 1561.475,
    "text": "their logic, and their\nstyling into those files,"
  },
  {
    "start": 1561.475,
    "end": 1566.245,
    "text": "and you therefore then write\nneither functions nor classes,"
  },
  {
    "start": 1566.245,
    "end": 1569.697,
    "text": "but instead, you use this\nseparate file format."
  },
  {
    "start": 1569.764,
    "end": 1572.866,
    "text": "And in the end, it therefore comes down"
  },
  {
    "start": 1572.866,
    "end": 1577.869,
    "text": "to personal preference, which\napproach you like the most."
  },
  {
    "start": 1578.32,
    "end": 1581.539,
    "text": "You should really just\ngive all those libraries"
  },
  {
    "start": 1581.539,
    "end": 1583.156,
    "text": "and frameworks a try."
  },
  {
    "start": 1583.156,
    "end": 1584.991,
    "text": "And with that, I don't mean"
  },
  {
    "start": 1584.991,
    "end": 1588.944,
    "text": "that you should spend\nmultiple hours or even days"
  },
  {
    "start": 1588.944,
    "end": 1592.179,
    "text": "on learning those different frameworks,"
  },
  {
    "start": 1592.179,
    "end": 1595.331,
    "text": "but instead, just go through\ntheir quick start guides"
  },
  {
    "start": 1595.331,
    "end": 1599.0,
    "text": "on their websites, look up\nsome tutorials on YouTube"
  },
  {
    "start": 1599.0,
    "end": 1603.737,
    "text": "and get an idea of how\nyou generally write code"
  },
  {
    "start": 1603.737,
    "end": 1607.039,
    "text": "when working with those\nlibraries and frameworks."
  },
  {
    "start": 1607.039,
    "end": 1610.875,
    "text": "And then decide which\napproach you like the most"
  },
  {
    "start": 1610.875,
    "end": 1614.827,
    "text": "because there really is\nno right or wrong here."
  },
  {
    "start": 1614.827,
    "end": 1619.481,
    "text": "You will read a lot of\nstrong opinions on X,"
  },
  {
    "start": 1619.481,
    "end": 1623.166,
    "text": "Twitter in the past, and\nin the internet in general."
  },
  {
    "start": 1623.166,
    "end": 1625.501,
    "text": "But let's be honest, strong opinions,"
  },
  {
    "start": 1625.501,
    "end": 1628.27,
    "text": "we always have them in\nthe developer space."
  },
  {
    "start": 1628.27,
    "end": 1630.188,
    "text": "We especially have them on X,"
  },
  {
    "start": 1630.188,
    "end": 1633.306,
    "text": "and often it's best to\njust not care about them."
  },
  {
    "start": 1633.306,
    "end": 1635.558,
    "text": "So make your own choice there"
  },
  {
    "start": 1635.558,
    "end": 1637.626,
    "text": "and find out what you like the most."
  },
  {
    "start": 1637.626,
    "end": 1640.211,
    "text": "Now, what I can say though,"
  },
  {
    "start": 1640.211,
    "end": 1644.898,
    "text": "is how easy or difficult\nit is for my experience"
  },
  {
    "start": 1644.898,
    "end": 1648.016,
    "text": "to learn these different\nlibraries and frameworks."
  },
  {
    "start": 1648.016,
    "end": 1649.751,
    "text": "Because even though it comes down"
  },
  {
    "start": 1649.751,
    "end": 1654.754,
    "text": "to your personal preferences,\nwhether you like the way"
  },
  {
    "start": 1654.821,
    "end": 1658.206,
    "text": "of writing code in a given\nlibrary or framework,"
  },
  {
    "start": 1658.206,
    "end": 1660.792,
    "text": "I can see from all the courses I created"
  },
  {
    "start": 1660.792,
    "end": 1664.244,
    "text": "that they do have\ndifferent difficulty levels"
  },
  {
    "start": 1664.244,
    "end": 1666.996,
    "text": "when it comes to learning\nand mastering them."
  },
  {
    "start": 1666.996,
    "end": 1671.682,
    "text": "For example, Vue is a\nframework that's pretty easy"
  },
  {
    "start": 1671.682,
    "end": 1673.066,
    "text": "to get started with."
  },
  {
    "start": 1673.066,
    "end": 1675.618,
    "text": "It has a syntax and an approach"
  },
  {
    "start": 1675.618,
    "end": 1677.92,
    "text": "that's not too difficult to understand."
  },
  {
    "start": 1677.92,
    "end": 1680.922,
    "text": "It doesn't require a\nlot of boilerplate code,"
  },
  {
    "start": 1680.922,
    "end": 1684.157,
    "text": "and it doesn't have too many pitfalls"
  },
  {
    "start": 1684.157,
    "end": 1689.06,
    "text": "where you can write wrong code\nthat won't work as intended."
  },
  {
    "start": 1689.06,
    "end": 1690.278,
    "text": "You can of course do that,"
  },
  {
    "start": 1690.278,
    "end": 1694.214,
    "text": "but it doesn't have too\nmany of those pitfalls."
  },
  {
    "start": 1694.214,
    "end": 1695.782,
    "text": "Angular, on the other hand,"
  },
  {
    "start": 1695.782,
    "end": 1698.767,
    "text": "is relatively challenging to learn,"
  },
  {
    "start": 1698.767,
    "end": 1701.452,
    "text": "though that has gotten a bit easier"
  },
  {
    "start": 1701.452,
    "end": 1705.405,
    "text": "in recent years or months, you could say,"
  },
  {
    "start": 1705.405,
    "end": 1709.491,
    "text": "because Angular actually\nis innovating rapidly"
  },
  {
    "start": 1709.491,
    "end": 1713.894,
    "text": "and is introducing new\nalternative features,"
  },
  {
    "start": 1713.894,
    "end": 1718.397,
    "text": "which make it a bit easier\nto get started with Angular"
  },
  {
    "start": 1718.397,
    "end": 1721.432,
    "text": "since less boilerplate code is required."
  },
  {
    "start": 1721.432,
    "end": 1724.667,
    "text": "It still requires a\ndecent bit of extra code,"
  },
  {
    "start": 1724.667,
    "end": 1728.503,
    "text": "but it's gotten easier\nover the years, I'd say."
  },
  {
    "start": 1728.503,
    "end": 1731.856,
    "text": "That being said, not all Angular projects"
  },
  {
    "start": 1731.856,
    "end": 1734.107,
    "text": "are using those latest features."
  },
  {
    "start": 1734.107,
    "end": 1737.626,
    "text": "So chances are that when\nyou're learning Angular,"
  },
  {
    "start": 1737.626,
    "end": 1740.545,
    "text": "you'll have to learn the more complex way"
  },
  {
    "start": 1740.545,
    "end": 1743.48,
    "text": "of building Angular apps at some point,"
  },
  {
    "start": 1743.48,
    "end": 1747.7,
    "text": "at least if you're looking\nto find a job with Angular,"
  },
  {
    "start": 1747.7,
    "end": 1750.168,
    "text": "because chances are high that there,"
  },
  {
    "start": 1750.168,
    "end": 1754.154,
    "text": "you're not going to use\nall those latest features."
  },
  {
    "start": 1754.154,
    "end": 1757.389,
    "text": "React, for example, is a bit easier"
  },
  {
    "start": 1757.389,
    "end": 1759.374,
    "text": "to get started with, I'd say,"
  },
  {
    "start": 1759.374,
    "end": 1763.543,
    "text": "because initially, it has\na simpler mental model"
  },
  {
    "start": 1763.543,
    "end": 1767.179,
    "text": "and doesn't require as\nmuch boilerplate code,"
  },
  {
    "start": 1767.179,
    "end": 1770.865,
    "text": "but React has quite a few pitfalls."
  },
  {
    "start": 1770.865,
    "end": 1774.284,
    "text": "It's relatively easy if you're\ngetting started with React"
  },
  {
    "start": 1774.284,
    "end": 1777.619,
    "text": "to write code that\ndoesn't work as intended"
  },
  {
    "start": 1777.619,
    "end": 1780.688,
    "text": "in certain situations,\nand it can then be hard"
  },
  {
    "start": 1780.688,
    "end": 1784.157,
    "text": "to figure out why that's the case."
  },
  {
    "start": 1784.157,
    "end": 1786.942,
    "text": "It's also relatively easy\nto run into some errors,"
  },
  {
    "start": 1786.942,
    "end": 1790.128,
    "text": "which can be hard to understand initially."
  },
  {
    "start": 1790.128,
    "end": 1792.946,
    "text": "So React is maybe a bit easier"
  },
  {
    "start": 1792.946,
    "end": 1797.566,
    "text": "to learn initially than\nAngular, for example."
  },
  {
    "start": 1797.566,
    "end": 1800.001,
    "text": "But when it comes to mastering React"
  },
  {
    "start": 1800.001,
    "end": 1803.837,
    "text": "and writing good React\ncode, I personally would say"
  },
  {
    "start": 1803.837,
    "end": 1807.189,
    "text": "it's at least as challenging as Angular,"
  },
  {
    "start": 1807.189,
    "end": 1808.907,
    "text": "which also is challenging there."
  },
  {
    "start": 1808.907,
    "end": 1812.359,
    "text": "But they're pretty equal there, I'd say."
  },
  {
    "start": 1812.359,
    "end": 1816.379,
    "text": "And for Svelte and SolidJS,\nthey're somewhere in between."
  },
  {
    "start": 1816.379,
    "end": 1819.664,
    "text": "In my personal experience,\nthey're not as easy to grasp"
  },
  {
    "start": 1819.664,
    "end": 1822.916,
    "text": "and work with as Vue might be,"
  },
  {
    "start": 1822.916,
    "end": 1825.668,
    "text": "but they're also not\nas tricky or difficult"
  },
  {
    "start": 1825.668,
    "end": 1829.037,
    "text": "as React or Angular can be."
  },
  {
    "start": 1829.037,
    "end": 1831.789,
    "text": "But again, here also, my recommendation"
  },
  {
    "start": 1831.789,
    "end": 1834.291,
    "text": "is that you simply get started with them,"
  },
  {
    "start": 1834.291,
    "end": 1836.776,
    "text": "that you go through\nthose quick start guides,"
  },
  {
    "start": 1836.776,
    "end": 1840.111,
    "text": "that you maybe take a course\nlike one of my courses"
  },
  {
    "start": 1840.111,
    "end": 1844.097,
    "text": "or any other course, and you\ntherefore then get a feeling"
  },
  {
    "start": 1844.097,
    "end": 1847.55,
    "text": "for yourself how easy it is for you"
  },
  {
    "start": 1847.55,
    "end": 1851.419,
    "text": "to get started with a\ncertain library or framework."
  },
  {
    "start": 1851.419,
    "end": 1854.504,
    "text": "Because even though I can\nsee some general trends,"
  },
  {
    "start": 1854.504,
    "end": 1858.19,
    "text": "it of course always depends\non which prior experience"
  },
  {
    "start": 1858.19,
    "end": 1861.309,
    "text": "you have and with which\naverage technologies"
  },
  {
    "start": 1861.309,
    "end": 1863.21,
    "text": "you might have worked in the past."
  },
  {
    "start": 1863.21,
    "end": 1867.846,
    "text": "And that's there for this\npretty extensive overview"
  },
  {
    "start": 1867.846,
    "end": 1870.915,
    "text": "of those different\nframeworks and libraries."
  },
  {
    "start": 1870.915,
    "end": 1874.234,
    "text": "My thoughts on those\nframeworks and libraries,"
  },
  {
    "start": 1874.234,
    "end": 1876.219,
    "text": "which hopefully were helpful."
  },
  {
    "start": 1876.219,
    "end": 1878.737,
    "text": "And therefore, to conclude this here,"
  },
  {
    "start": 1878.737,
    "end": 1882.756,
    "text": "I just wanna share what\nmy personal favorite is."
  },
  {
    "start": 1882.756,
    "end": 1886.576,
    "text": "And I would say that this\nwould probably be React"
  },
  {
    "start": 1886.576,
    "end": 1889.778,
    "text": "but not because I like the way"
  },
  {
    "start": 1889.778,
    "end": 1892.963,
    "text": "you write React code the most."
  },
  {
    "start": 1892.963,
    "end": 1894.614,
    "text": "I actually don't do that."
  },
  {
    "start": 1894.614,
    "end": 1899.167,
    "text": "It's okay, but I'm not a fan\nof all the advanced things"
  },
  {
    "start": 1899.167,
    "end": 1901.986,
    "text": "you need to know about\nReact and JavaScript"
  },
  {
    "start": 1901.986,
    "end": 1904.387,
    "text": "in order to write good code."
  },
  {
    "start": 1904.387,
    "end": 1907.273,
    "text": "But instead, I tend to choose React"
  },
  {
    "start": 1907.273,
    "end": 1909.558,
    "text": "for most of my new projects"
  },
  {
    "start": 1909.558,
    "end": 1912.309,
    "text": "simply because of its popularity,"
  },
  {
    "start": 1912.309,
    "end": 1915.245,
    "text": "because there is this vibrant ecosystem"
  },
  {
    "start": 1915.245,
    "end": 1919.914,
    "text": "that you can use to find\nsolutions for specific problems"
  },
  {
    "start": 1919.914,
    "end": 1923.05,
    "text": "you might be facing\nwhen working with React"
  },
  {
    "start": 1923.05,
    "end": 1926.502,
    "text": "and because we have those\nfull-stack libraries"
  },
  {
    "start": 1926.502,
    "end": 1930.355,
    "text": "like Next.js and Remix,\nwhich are relatively mature,"
  },
  {
    "start": 1930.355,
    "end": 1933.607,
    "text": "and which simplify the process of building"
  },
  {
    "start": 1933.607,
    "end": 1935.442,
    "text": "such full-stack applications,"
  },
  {
    "start": 1935.442,
    "end": 1938.51,
    "text": "which I tend to do a lot as of late."
  },
  {
    "start": 1938.51,
    "end": 1941.145,
    "text": "But that's the reason why for me."
  },
  {
    "start": 1941.145,
    "end": 1944.481,
    "text": "If you would force me to\npick one, it would be React."
  },
  {
    "start": 1944.481,
    "end": 1947.266,
    "text": "But I do honestly like all of them,"
  },
  {
    "start": 1947.266,
    "end": 1950.568,
    "text": "and I do enjoy every\nproject where I got a chance"
  },
  {
    "start": 1950.568,
    "end": 1954.337,
    "text": "of working with Angular\nor Vue, for example."
  }
]