One thing to realize about lodash is, if I remember correctly (don't really use anymore), it does a great job of picking the most performant algo for the size of the data. So I might use something like lodash if the collection sizes were big.
100%. It is so underrated. One reason I love Angular’s signal implementation is because it gives a Jotai like experience. I can scope state with angular services and dependency injection like Jotai providers, I can create signals and update them like atoms, and I can even derive signals from other signals and the automatically recompute when any of the source signals change (just like derived atoms but with easier syntax).
I don't even think too many people use AWS Amplify. We deploy frontend apps either to S3 as a SPA or run containers. Also, on the micro-frontends issue.. Microservices are a solution to organizational scalability and micro-frontends would mean you have so many teams working on a single system that the front-end has to be split between those teams into smaller services. I can see it work for companies such as Amazon who have a massive website, or AWS, who have hundreds of services in that platform, but most orgs never need it. We had about 4 teams working on a single front-end, but we simply modularized the app and that helped us not step on each other's toes. It has created a problem where nobody wants to take ownership or responsibility and many teams just shy away from it, so big decisions take a long time.
Yeah I've managed to chat with him a few times online, always been happy to answer my dumb questions despite not really knowing me. Guy really knows his stuff too
13:50 barebones fetch API is horrible and you need a wrapper around it to have any kind of decent experience. Unless you are using it for like 5 requests in some small app so it doesn't really matter in that case. axios is great because it's battle tested, has request/response interceptors, has the ability to create instances where you can set defaults as Wes mentioned, has customizable error handling, has many other customizations etc. It also has support for file upload progress event (which fetch does not support) because it can use XHR under the hood, so you can display percentage number for the upload progress in browser. Also earlier this year it got an official "fetch adapter" which means you can use axios, but it will use fetch under the hood. So with fetch adapter you can get all benefits of the speed and support of fetch, but still use everything axios offers you on top of that with better DX compared to just using fetch.
24:00 AFAIK npm workspaces don’t support the “workspace:*” nor “workspace:(version)” syntaxes. You must instead provide the version number, and it will try and resolve it locally before checking npm. This is just from my experience. I imagine there are other options to declare the package version for npm workspaces.
I'm proudly part of the 9% js people. I'm simple I don't want to overcomplicate things with TS but admittedly I've avoiding messing with Typescript and maybe I'd like it
Try it before you judge it. I personally started using TS actively few years ago and I love it. It was a rough start because I didn't understand some things, but once I learned it, it's a great experience. Coming back to a project after 3-6-9 months and just getting all the autocomplete, more confidence for refactoring etc. is really nice. I wouldn't want to work on a project that doesn't use TS anymore. Only time I write JS these days is if I work on some legacy project that doesn't use TS or if I just write some quick nodejs script and I don't want to complicate things with a build step for TS -> JS transformation.
Maybe I could have a small hint in order to make the survey results more informative. Wouldn't it be more useful if there were a separation of "used and liked" into: "used and liked at work" and "used and liked in my side projects"? The reason is that as a developer (eager to learn ;-) ), you need to constantly learn, try new things, and work on side projects. In the meantime, the typical developer has to work on projects within the company where they are often required to use specific technologies. I can easily imagine a developer who works in a company using Angular, but at the same time, they are trying React on their side project. Having that proposed split would provide information on which technologies the industry tends to use and which technologies developers would like to use. I can imagine that the conflict which could arise here may not be easily resolvable... BTW: I love the podcast, and it has fed me as a newborn developer a few years ago :-)
I run remix + Cloudflare pages. I push to prod by building the production files via remix build and then just deploy with wrangler. It's just a folder of assets
Deno’s marketshare doesn’t really surprise me. Bun has some fundamentally different pieces (e.g. different JS engine) and none of the highly experimental APIs that Deno is now stuck with, e.g. the double package management or the global location object.
I'll have to look into it. I've been looking for my next gig and have been writing off ember focussed job posts as old school. Maybe I've been too hasty/ignorant.
I feel like vanilla-extract is improved CSS Modules. I have enjoyed it and it seems really performant. But I have only used on small projects so not sure how well it works in a big codebase.
Used HTMX for job interviews and everytime I wanted to do some sort of client-side data sync and had to use alpine or js, if fell apart. Both interviews they asked me how htmx is and I told them it's great until it isn't. It's like an unnecessarily nerfing yourself for any kind of client-side interactivity just so you can use your backend language. I love go but it's too much.
If A is used by 60% who liked it and 15% who disliked it and B is used by 18% who liked it and 2% who disliked it. It’s a pretty strong signal for B because it’s just means A is prevalent but 20% of its users don’t like it, when of the users of B only 10% disliked it.
Well, not necessarily. In this case, users of B are most likely enthusiasts for technology B and people that picked it on their own, at least majority of them. Users of A are enthusiasts who picked it, but also many people who were just thrown into it and aren't really enthusiasts for it in any way. Yes some end up liking it, but many won't. If B reached that much usage, it's possible that it would have the same like/dislike ratio. When a technology reaches a wide range of people, it's inevitable that it becomes hated to some degree. But what also needs to be taken into account is that these surveys are mostly also taken by enthusiasts and don't really represent the majority of frontend.
Same for the "want to learn" part. Of course, "popular" projects have way less "want to learn" votes than the ones that aren't that mature/popular yet.
this logic fails when you realize that for the less popular projects (ie no jobs), the majority of people using it use it cause they wanted to use it begin with
agreed but in the case of React vs Svelte or Vue it works. I was just interested in the actual total percentage who’d used a product and the percentage of those who actually appreciated it. How that is interpreted then is up to the viewer. As it was shown it mixed the likes and the volume used so something used and liked by 50% vs used and liked by 20% is less useful that used by 100% and liked by 50% of those vs used by 25% and liked by 80% of those. These second version is clearer.
90% of lodash can be done in basic JS after 2020, could say the the same with jQuery as of 2016. When the corporation I work in went to Micro-FE, it did not seem to be worth it. Now almost two years post it does not seem worth it, but it is better than iframing the same thing. Deno needed the current version and that did not come out till the middle of the year roughly. I can see the like for JsDocs. JS should have had types from day 1, I get it was 10 day write-up but still. Give me CSS or SCSS (until mixins/loops) way before Tailwind. Panda CSS is not bad but most of the time pure CSS. Corporate QA still exist. End to End testing is 100% better than Unit test.
90 plus percent of all webdev does not use and like Typescript ... you escaped the categorization to derive that. of the 3 choices on that page, was the constraint. have you worked for the FDA ?;)
I'd just like to interject for a moment. What you're refering to as Linux, is in fact, GNU/Linux, or as I've recently taken to calling it, GNU plus Linux. Linux is not an operating system unto itself, but rather another free component of a fully functioning GNU system made useful by the GNU corelibs, shell utilities and vital system components comprising a full OS as defined by POSIX.
Really nice to see some stats outside the typical NA React bubble (no offense to anyone)!
One thing to realize about lodash is, if I remember correctly (don't really use anymore), it does a great job of picking the most performant algo for the size of the data. So I might use something like lodash if the collection sizes were big.
Astro and SvelteKit are crushing it
Why was Solid not represented? 😢
My fave state management library is Jotai and GOD IT IS UNDERRATED
100%. It is so underrated. One reason I love Angular’s signal implementation is because it gives a Jotai like experience. I can scope state with angular services and dependency injection like Jotai providers, I can create signals and update them like atoms, and I can even derive signals from other signals and the automatically recompute when any of the source signals change (just like derived atoms but with easier syntax).
fun fact the guy that made zustand, Jotai, and Valtio is the same guy (no im not talking about pomanders. it's literal the same soul)
@@thoriqakbar hence why it`s so good! the atomic way of thinking has alot less mental overhead than Redux!
why is Solid not on the list?
I don't even think too many people use AWS Amplify. We deploy frontend apps either to S3 as a SPA or run containers. Also, on the micro-frontends issue.. Microservices are a solution to organizational scalability and micro-frontends would mean you have so many teams working on a single system that the front-end has to be split between those teams into smaller services. I can see it work for companies such as Amazon who have a massive website, or AWS, who have hundreds of services in that platform, but most orgs never need it. We had about 4 teams working on a single front-end, but we simply modularized the app and that helped us not step on each other's toes. It has created a problem where nobody wants to take ownership or responsibility and many teams just shy away from it, so big decisions take a long time.
You guys should invite Manfred Steyer. I'm going to a conference next week where he will be talking about micro frontends
6:04 I remember taking my first sveltekit course from levelup on a 7 hour train ride, just as i was getting into web dev!
Get Zack Jackson on if you want to talk about micro frontends. Guy invented module federation and is on the rspack core
Just saw him at a conf last week and I thought the same thing!
Yeah I've managed to chat with him a few times online, always been happy to answer my dumb questions despite not really knowing me. Guy really knows his stuff too
13:50 barebones fetch API is horrible and you need a wrapper around it to have any kind of decent experience. Unless you are using it for like 5 requests in some small app so it doesn't really matter in that case.
axios is great because it's battle tested, has request/response interceptors, has the ability to create instances where you can set defaults as Wes mentioned, has customizable error handling, has many other customizations etc. It also has support for file upload progress event (which fetch does not support) because it can use XHR under the hood, so you can display percentage number for the upload progress in browser. Also earlier this year it got an official "fetch adapter" which means you can use axios, but it will use fetch under the hood.
So with fetch adapter you can get all benefits of the speed and support of fetch, but still use everything axios offers you on top of that with better DX compared to just using fetch.
24:00 AFAIK npm workspaces don’t support the “workspace:*” nor “workspace:(version)” syntaxes. You must instead provide the version number, and it will try and resolve it locally before checking npm.
This is just from my experience. I imagine there are other options to declare the package version for npm workspaces.
I'm proudly part of the 9% js people. I'm simple I don't want to overcomplicate things with TS but admittedly I've avoiding messing with Typescript and maybe I'd like it
I've also never used anything but npm. And use vercel sveltekit supabase. Clean great way I'm happy with
Try it before you judge it. I personally started using TS actively few years ago and I love it. It was a rough start because I didn't understand some things, but once I learned it, it's a great experience. Coming back to a project after 3-6-9 months and just getting all the autocomplete, more confidence for refactoring etc. is really nice. I wouldn't want to work on a project that doesn't use TS anymore. Only time I write JS these days is if I work on some legacy project that doesn't use TS or if I just write some quick nodejs script and I don't want to complicate things with a build step for TS -> JS transformation.
It’s surprisingly easy to pick up.
Neovim not even on the editors list. Shm.
Also surprised Deno was so low. It's so good
As a junior this video really helped me out in terms of direction
51:01 i think it depends a lot on geographical location
Although it shouldn’t. Per @th3gg you should use something more restive.
Yes, please do an episode about CSS. I always use scss and can't imagine how to replace it with pure CSS
I reckon this is one of the more representative of the industry so, thank you for talking through all of this.
There's no place for Astro?
Maybe I could have a small hint in order to make the survey results more informative.
Wouldn't it be more useful if there were a separation of "used and liked" into:
"used and liked at work" and "used and liked in my side projects"?
The reason is that as a developer (eager to learn ;-) ), you need to constantly learn, try new things, and work on side projects. In the meantime, the typical developer has to work on projects within the company where they are often required to use specific technologies.
I can easily imagine a developer who works in a company using Angular, but at the same time, they are trying React on their side project.
Having that proposed split would provide information on which technologies the industry tends to use and which technologies developers would like to use.
I can imagine that the conflict which could arise here may not be easily resolvable...
BTW: I love the podcast, and it has fed me as a newborn developer a few years ago :-)
I run remix + Cloudflare pages. I push to prod by building the production files via remix build and then just deploy with wrangler. It's just a folder of assets
Great content! Thank you!
Deno’s marketshare doesn’t really surprise me. Bun has some fundamentally different pieces (e.g. different JS engine) and none of the highly experimental APIs that Deno is now stuck with, e.g. the double package management or the global location object.
Emberjs is quite good to use nowadays!
I'll have to look into it. I've been looking for my next gig and have been writing off ember focussed job posts as old school. Maybe I've been too hasty/ignorant.
I think my favorite part of this video is that Wes is repping Costco
Wait 1% use no package manager?
2.7% use no runtime?
Is jQuery still being used?
I feel like vanilla-extract is improved CSS Modules. I have enjoyed it and it seems really performant. But I have only used on small projects so not sure how well it works in a big codebase.
Please at least once say Richard we glad you come home safe after work. I never miss your single video. Much much love
Microfrontends in a monorepo is great for build time and deployments
I just use lodash consistently on a big project and try not to mix in native js stuff..bonkers but it works!
Can you guys set up a good Bluesky starter pack?
Adding typescript is definitely easier than removing jQuery
I thought Vercel used AWS as the platform so no reason for AWS to compete.
Solid in not on the first list? What
The state of front end is always changing. That's why we need state management libraries.
Used HTMX for job interviews and everytime I wanted to do some sort of client-side data sync and had to use alpine or js, if fell apart. Both interviews they asked me how htmx is and I told them it's great until it isn't. It's like an unnecessarily nerfing yourself for any kind of client-side interactivity just so you can use your backend language. I love go but it's too much.
22:20 just invite someone from SingleSpa
Please invite Zack Jackson (author Module Federation) or Luca Mezzalira (author of amazing microfrontend books)!
They did solid/solidStart dirty
I think remix's land is kind of react SPA for now 😂
Would be cool to see “No Framework” as an option to see how many still going raw.
SHADCN AND VERCEL REALLY PLAYS REALLY BIG IMPACT IN THE REACT COMMUNITY.
ITS TOUGH TO BEAT THOUGH
Talk to Stephen Grider
If A is used by 60% who liked it and 15% who disliked it and B is used by 18% who liked it and 2% who disliked it. It’s a pretty strong signal for B because it’s just means A is prevalent but 20% of its users don’t like it, when of the users of B only 10% disliked it.
Well, not necessarily. In this case, users of B are most likely enthusiasts for technology B and people that picked it on their own, at least majority of them. Users of A are enthusiasts who picked it, but also many people who were just thrown into it and aren't really enthusiasts for it in any way. Yes some end up liking it, but many won't.
If B reached that much usage, it's possible that it would have the same like/dislike ratio. When a technology reaches a wide range of people, it's inevitable that it becomes hated to some degree.
But what also needs to be taken into account is that these surveys are mostly also taken by enthusiasts and don't really represent the majority of frontend.
Same for the "want to learn" part. Of course, "popular" projects have way less "want to learn" votes than the ones that aren't that mature/popular yet.
this logic fails when you realize that for the less popular projects (ie no jobs), the majority of people using it use it cause they wanted to use it begin with
agreed but in the case of React vs Svelte or Vue it works. I was just interested in the actual total percentage who’d used a product and the percentage of those who actually appreciated it. How that is interpreted then is up to the viewer. As it was shown it mixed the likes and the volume used so something used and liked by 50% vs used and liked by 20% is less useful that used by 100% and liked by 50% of those vs used by 25% and liked by 80% of those. These second version is clearer.
90% of lodash can be done in basic JS after 2020, could say the the same with jQuery as of 2016.
When the corporation I work in went to Micro-FE, it did not seem to be worth it. Now almost two years post it does not seem worth it, but it is better than iframing the same thing.
Deno needed the current version and that did not come out till the middle of the year roughly.
I can see the like for JsDocs. JS should have had types from day 1, I get it was 10 day write-up but still.
Give me CSS or SCSS (until mixins/loops) way before Tailwind. Panda CSS is not bad but most of the time pure CSS.
Corporate QA still exist. End to End testing is 100% better than Unit test.
No Solid.js on the frameworks list?! 😳
I like idea of typescript , but VSCode argues with me.
HTMX. This is the way.
if you use Wordpress, you still have to use jquery so ...
90 plus percent of all webdev does not use and like Typescript ... you escaped the categorization to derive that. of the 3 choices on that page, was the constraint. have you worked for the FDA ?;)
what
No one likes typescript. We just know its needed.
I use Windows
Where are your other brothers in law?
Like if you're on Windows
macOS and Linux for me. Once in a blue moon Windows on my SteamDeck / VMWare.
The reason why Axios is so popular is because they teach you it in the Bootcamps
Curios, what .are some bootcamps. Those I’ve seen aren’t front & .entre aren’t
2:18 Excuse me, but React is not a framework, it's a library! Your analytics data is very wrong! ;) :👿
I'd just like to interject for a moment. What you're refering to as Linux, is in fact, GNU/Linux, or as I've recently taken to calling it, GNU plus Linux. Linux is not an operating system unto itself, but rather another free component of a fully functioning GNU system made useful by the GNU corelibs, shell utilities and vital system components comprising a full OS as defined by POSIX.
Like if you're on Mac
I tried Svelte and absolutely hated it. Not my jam.
What didn't you like?
first!!