Jeff was trying to point out the differences between these frameworks but I was just noticing how similar they all actually are. If you know MVC, you can pretty much figure out what's happening in any of them.
because it's the same concept, separate the models (objects based on database), views (frontend for final user) and controllers (for connect the interaction from the users to the interfaces and get the models). Then we have bins (probably for automatization), app config, some template (to avoid write the same html over and over again) and other more specific web config (like public folder).
Lets all protest to consolidate languages/frameworks, its getting really crazy out there. Instead of spending time learning new languages we could use it for our leisure/life.
big ups for shouting out the laravel + inertia combo, been using it for a project at work and it really took my laravel developing experience to the next level
Amazing video. Showed me how to kickstart a project in any of those languages and also a high level insight into how it feels to use them and how opinionated each framework is, which could take years to learn on my own. You're a blessing. Thanks
I used Spring, Phoenix, Rails and a little asp by now and they all have their strengths and weaknesses. Personally i like Phoenix the best. Like elixir has heavy influences from ruby Phoenix has influences from Rails. I like to think of it as a functional highly scaleable version of ror. It is also by far the most pragmatic language and framework i know of.
You have absolutely aced the concept of producing witty yet highly informative media in the most digestible, efficient manner possible. Big kudos for that. Keep up the great work.
He didn't learn he simply tried to recreate the same app using different frameworks and then talked about the experience for the most part. Not hating just making this clear so you don't get discouraged
@@TopBagon @xdrap1 I consider that I learnt a language when I can successfully create a working app with it. But yes, we *master* a language with lot more time than "basics" Have you created a full working app for each one of these language ? I personally don't have the courage and the patience to do so, and I suppose you as well
Based on the code he added himself to the Laravel setup, I can tell you he has no experience in neither Laravel nor PHP. So I'm kinda hesitating whether he is the right one to judge ... :/
Thank you for mentioning framework X! It's really amazing to use. As X developer I think it's the best out there. The documentation is VERY detailed. The community is very friendly which makes X development a breeze.
08:22 "Even though Java is a boilerplate driven language for writing instant legacy code" 😂😂😂😂😂 I really like Java, but that's so true it got me dying 😂😂😂😂
I didn't have an easy time learning Thymeleaf either when I first tried it out, but honestly, it's hands down the most powerful templating framework I've ever used. It's re-usability is mind blowing, you can dynamically template html tags from different html pages by using a selector, it's ridiculous.
@@pdblouin well, it is exactly what the name suggest: tools stitched together to provide you a framework in which you can develop applications :D (for example for handling stuff like http reqests, database access, json parsing, etc.)
If you don't get thrown into one of these on your first job, quit immediately. Doesn't matter which framework they use, as long as they use one and do it right.
I felt that Rust section. Tried it myself and basically came to the same conclusion with Rocket and Diesel. Especially Diesel is such an overkill with an entire CLI if you just want to create a simple application. I found Actix and sqlx to be much more minimal and simple to use.
As Jeff himself said, it really is because Rust is much more low level than the competition. Rust is an amazing language that has many usecases, but I don't think I'll ever choose Rust for web development besides maybe some computationally heavy APIs. I think it's funny he mentioned Rust, when he choose to skip C, C++ and other low level languages. :P
@@lauej You don't need to write low level code in rust. Just because you have control over life of your variables doesn't mean its TOO COMPLICATED. Rust has many abstractions and libs that provide this abstractions
Rust is my personal favorite language for writing web applications. The nonexistence of null, unchecked exceptions, and data races help me really make sure the code is correct, which I think is necessary for a web application. Rust makes it hard to get your program to compile, but that's because the compiler already knows that your code won't work.
I did something very similar. I started with actix and Diesel, but using an ORM was too restrictive and bulky, SQLx was a nice replacement. I tried Rocket for a while, but I ran into a lot of issues, and ended up sticking to actix. In the end tho, I'm very happy I learned Server-side web development with Rust, it was a bit painful, but I learned a lot and trying to use something like JavaScript is very frustrating for me now.
I use laravel for everything, and 2 things I can point out that are very good. 1, the docs is super clear can be read by a 4 year old. 2, I’m slowly refactoring my apps to spa and with other frameworks I would have to do it all at once, with laravel I can do one component at a time etc
I used to roast Java a lot as a joke but when our company decided that our next app will be written in spring, I was fascinated on how the code just made more sense. It taught me discipline on how I wrote code. And I just love it.
The Best code is the code that you no need to write! From this perspective Java is obviously not a winner with their hundreds of hundreds lines for every even trivial thing, but for someone like you who Loved it, is the Only thing that matters and I'm sure it is Great! We all are so different and this is the salt of the Life! :)
Spring rocks. I used Django for months and loved it, but after trying out Spring I never turned back, while Java has a lot of boilerplate (and it shouldn't) I find Spring to be the most enjoyable experience for backend development I ever had
@@vasiovasio you would be surprise if you knew how much code you actually write with spring. It may have a lot of lines, but 95% of it is auto generated.
Personally one of my favorite frameworks is Django because of the vast amount of documentation it has and the vast libraries has. I literally sometimes don't have to code new features, I just use a package. It makes it very easy to quickly develop an website.
@@danbo967 yes, but I feel like django is really modular and popular. As a result of this modularity and popularity, there are a lot of packages that are very easy to integrate with existing projects. Maybe I'm wrong though- I don't really have any experience with the other frameworks; honestly the best framework is the one you know and understand the best :)
@@dheirya Django is popular but all language are easy to integrate. I would even argue some language are even slightly easier to integrate than Python because you don’t have to manually add the package to your file and declare the package in the middleware. Rails for example automatically adds packages to your project no need to register packages in the settings same with Javascript. PS: I am not talking about the best framework/language here. This is just some insight into other languages and frameworks. Personally I think that we shouldn’t be defensive with our tech stack because the beauty of software engineering is to take and implement good ideas regardless of language/framework.
@@danbo967 I do agree with you that there really is no "best" framework/language. Whatever works for you is the best framework really. Additionally, I can't comment on the easiness and packages that other frameworks have but for a beginner like me, django has great libraries and packages that can be easily shared through PIP and requirements.txt files. This is my own story but recently I wanted to add my own login with email functionality and I found three packages I could use. I tried all of them and one of them worked perfectly in my case. The point: All frameworks are good if you know what you're doing basically.
@@dheirya Definitely, my only beef with Django is that I don’t like that you have to manually add each app and package in your config/settings.py to include it into your project. Also it happens sometime that you have to pay attention to the order in which you add them to the “INSTALLED_APPS” or “MIDDLEWARE” lists. Also Django uses the MVVM pattern which isn’t as intuitive for me as the MVC pattern. But other than that Django is great.
I cannot imagine the time and mental effort you spent to make this video. For each one of those frameworks you found out the way to make a full stack (scalable) application. Just to mention, I've tried Golang without any previous experience using Gin and it took me many days to finish the setup properly (without any ORM as you did). Awesome work Jeff :)
I had my first experience with golang, building a web app too, but I used Fiber and Arango and I tried it with Hasura too. Honestly, I nearly prefered it to any JS framework or Laravel which I had experience prior. the only thing I had a hard time with was doing a loadbalancer
Scalable is very relative term, not all of them are out of box scalable and also scalable in terms of what? You have to wire them according to usecase. At the end of the day, you need your app to serve desired load smoothly, regardless what's used inside or how it distributes it. Keep in mind that a single problem can have hundreds of solutions and different people will come up with different implementations.
I actually figured out the best stack that works for me and it's based on the requirements: NextJS: so much UI, little backend Django: so much backend, little UI React + Djangorestframework : so much everything
Would definitely recommend Phoenix, you can save so much time in ops. Elixir makes it very easy to write concurrent code so you can totally skip job queues and redis and just use the language itself. The language looks like Ruby due to syntax but it’s very “no bullshit”, way lower in magic, and the best standard library I’ve ever seen.
yeah coming from a huge legacy rails codebase and going to phoenix was amazing. maybe rails is good for getting started but Elixir being functional, with phoenix, gets rid of a whole class of problems you might get from using a huge rails codebase, because of rails magic and OOP style
@@charlesm.2604 It's not that bad, I'm biased but I would say it's simpler than OOP. It's way different than languages like Haskell if that's what your experience has been. Always remember when you encounter a tricky technology: it was written by humans, for humans. You are capable of understanding it if you give yourself the chance.
Same here, I'm convinced rust is like the final boss of all practical programming languages when it comes to making anything in it that works. It's a truly magical language. It has a magical way of making you feel stupid at every turn.
@@ctleans6326 it’s like a martial arts teacher. it will fuck you up and beat the shit out of you at every turn, but listen to his every instruction, learn strict discipline, and dedicate actual time in training, things just work. everything starts to make sense, including its complaints.
Hey I'm the author of the Packt textbook Rust and web programming. I suggest you focus on handling the borrow checker, structs, and then traits. Web programming Rust frameworks are very reliant on traits. It's classic to implement a trait for middleware etc. This makes it a high entry point but once you get this, you'll actually be able to develop apps quicker than when you code in a language like Python. I've had over 5 years of python web programming experience and I can now code web apps in Rust faster than I can code in Python due to trait implementations. Also, the async for rust is amazing. Currently talking with O'Reilly to write a book on async rust
I would have done so, but unfortunately, job postings are continuously in decline and I'm at a point where I need to invest what little time I have left in as few languages as possible.
I think I will stick to Python for data science and small scripts, so before learning Ruby for web development, I think I would rather use Flask or Django.
@@DerMichael you better stick with Python, and go for Django.. I like Laravel and RoR but I'm more comfortable doing long hours work with Django it's easy to use (for me).
Django ORM, migrations, signals, models and forms, mixins, are all amazing. With just four-five lines of code you can generate a CRUD. Maybe the template is the not that advance component, but still a great framework
I'll be honest and say that it is very well integrated but feel very boilerplate-y. We have an instance at work with 13 apps and it gets very messy very fast and I cannot for the life of me understand why urls and views are separate, instead of having annotations of the functions with the URI instead.
Or drogon / Lithium (the biggest/fastest as far as I know) There are plenty of C++ web framework, but none that feels really good to use in my opinion.. hope introspection in C++23 will help
@@itsankitbhusal laravel will be easier to learn but django is fast compared to laravel, but if you want to develop api then you can learn FastAPI, it uses python
@@ShailendraSharmaDark Any latest benchmarks between Laravel and Django? The benchmarks I could find are all old and there have been several improvements to speed on both frameworks.
Didn't expect the ending lmao Was fully expecting the "the best framework is the one you chose" route. The "nah, f. That... Rails is the goat" plot twist righ after cracked me up lol
Agreed! Laravel’s ecosystem is incredible... Eloquent is amazing and makes me feel extremely productive using it. The whole Laravel experience is a real pleasure, and has helped seriously drive the modernisation of PHP.
@@HyuLilium a feature-packed framework is bound to have a few more folders. I’ve worked with Laravel for 7 years and whilst it drops a bunch of folders in to keep things organised by default, you’re free to move, delete or restructure most of them however you like.
I always find it sad how a lovely fun and easy language like Ruby is so underrated yet it has a giant beast like Rails and its magic, i just wish the language itself was famous for things other than web
Totally agree, Ruby shines when it comes to metaprogramming aswell but that could also lead to your death since there are hundreds of different ways to do the same thing (which I love about it).
@@mikopiko def my favourite part and you don't need to be a programming wizard to figure out the multiple ways to achieve the same thing it's just out there
I think ruby's curse is python. Not because python is better, but because python changed the metrics upon which people judge languages. The most important thing is now whether it can be learned in an afternoon, and used by someone who doesn't understand it well, and ruby doesn't try to be any of those things - it appreciates that some people will have to spend a lot of time with a language, and the best thing to optimize in that situation is not ease of learning, but pleasantness to use once proficient. Few languages come close to ruby on that.
Most of us have very limited view based on our experience with the only framework we have experience with. This video helps us come out of the 'well' and appreciate other frameworks.
I'd love to see a top 10 of JavaScript database integration libraries. Had to learn django for work and the whole admin interface was amazingly useful and extendable. Something I'd love to have for JS frameworks, e.g sveltekit
@@AmirIskandar exactly, the problem with all the frameworks is the workaround required for advanced frontend manipulation, the problem with JS frameworks is how unclear the data layer is. Just give me objects, relationships to other objects, and ways to do CRUD operations on them in an easy to use fashion. Django has all the others beat there.
Jeff already mentioned Prisma, Sequelize is also fine but I'd take a serious look at supabase. It's not an ORM, but a full fledge firebase alternative. It's got its own integration libraries and postgres (that's what's under the hood) can pretty much replace mysql for any workload. plus you get an auth server, realtime db events and block storage.
I'll save you some time reading these comments, half of them will be X Framework or language is so amazing and the other half will be it doesn't matter what you use.
Rails is the best especially for small apps. I learned it in a coding bootcamp and built a few apps with it. At work, we use spring in which i have a love/hate relationship with. Spring can be really simple and way overcomplicated all at the same time. Its hard to explain
That's literally Java, the good thing is that the more complex the project gets, the less "the curve of complexity rises" when using Java, if that makes any sense.
Yes it is hard to explain, isn't it? Lots of subtle little things to get wrong despite the code appearing simple. For me, Hibernate is the chief culprit. I would give anything for the project I am working on not to have chosen it. But from a larger standpoint, annotation based coding gives me the heebies. It's like a dynamic language but somehow worse and less predictable. It sacrifices all the advantages of Java. And from an even larger standpoint, it is frequently impossible to find solutions for common web app issues. I know people are using spring to build huge enterprise crap, but from what I can Google it's only toy apps, and fixing N+1 queries is like rocket science to these people.
I fell in love with laravel when I got started at version 6, been using react for a wile and just got back and it's like coming home. Nothing can't beat the Eloquent ORM! But laravel doesn't come with a database, just the universal ORM 😊
Honestly, it's by for the best framework I've worked with so far. It's easy to use, the documentation is fenominal and working with databases is not a Hassel. Also if you implement a frontend framework, that's easy too
I ♥️ Elixir - Phoenix. It's an underrated tech in the industry that not many people know. It's the tech I said I'll learn, but too lazy to do, procrastinating everyday that a quarter of the year already past, it's still on my to learn list.
It’s so underrated, so powerful, simple and without bullshit. The main drawback I’ve found is that there isn’t a good authentication solution. But the framework drives you towards a very maintainable architecture even as your app grows and you need to scale horizontally; but you probably won’t even need to because a single node can handle millions of connections.
I forget what they're called in elixir but doesn't every green thread get its own dedicated part of heap memory? Compared to go where all the green threads (or "goroutines") share heap? If true i think that would be a big advantage for memory safety and avoiding data races
@@spongechameleon6940 I'm not an expert but my understanding is that it handles concurrency through individual independent "processes" where yes they don't share memory but enable the passing of messages with data to handle "The Actor Model". I believe elixir documentations specifically state that the OTP model doesn't use threads. Unless I misunderstood your question
Python being the most popular language among developers with the host of libraries at their disposal, it's only natural that most companies rely on Django and a separate front-end framework to do the heavy lifting. On top of that, the native Jinja style template language is incredible IMO.
In my experience, Django is only popular among startups and real enterprise businesses use things like Java + Spring because in the end, the tools are more battle tested there. Also Python + Django seems to create more tech debt than Java + Spring, though Django is probably more comparable to RoR or Laravel (though I don't have experience with Laravel.)
We started with Python servers and quickly switched to Rust. A lot less tech debt, less errors, and server costs were a fraction. Django is the hobby type framework. There's a scary number of developers who don't want to grow up and cling onto Django but you'll never see Django in serious infrastructure. The BS statements like "youtube was written in Python" etc, that's the MVP, they have to tear that tech stack out when they grow
Rails the 🐐! In all seriousness. I started working with rails about 10 years ago and it was a total game changer. I always loved working with it, however, the new shiny JS frameworks were attractive and I switched to a JS-based approach for a lot of my projects. Since the team released hotwire I rediscovered my love for rails. It's so much faster to get stuff done and the fact that is super opinionated, makes it very easy to get people up to speed with the code base. Long live 🚂!
Would love to see 100 seconds of BlitzJS - it’s a framework on top of NextJS that ties together Prisma and a few other “batteries” for a much more rails-like experience
Idk what’s next… turboJS which is on top of blitzJS which is on top of nextJS which is on top of reactJS. TurboJS have 1,000 potential unicorn apps tht u just put a rand number and it spits out
@@GAGONMYCOREY. I suppose you mean packages that use flask to push part of their functionality to the web? Like rq 's dashboard or plotly interactive features? Flask can do that and AFAIK it is just as well suited to a full scale web app.
Rocket and Diesel for Rust is probably a poor choice for this task. Rocket was basically abandoned for almost a year due to the maintainer's personal issues, and it didn't get any traction since then. I would've chosen Actix-web or Axum with SQLx. That being said, Rust is a lower level abstraction compared to what's a typical web developer is used to. When I first started learning Rust, I didn't feel productive in the first six-eight months.. and 3.5 years later, it's definitely my favourite language of all.
This is my main problem with Rust; it’s so hard to keep track of what is even going on. 6 months ago people would tell you Rocket is the best. A month later Warp is the hype. Now Warp is dead, all about Axum baby! Oh also make sure you choose the right async executor. It suffers the same problem as Haskell, the language itself is top tier, but the ecosystem is just absolute madness of everyone trying this esoteric bullshit instead of keeping things simple. It’s very fun if you’re a part of the community, but it makes recommending it for production difficult.
@@randomizednamme Rust is a relatively new language, and the standard "best" packages are not settled entirely, especially in the web space. You need to keep up to date.. that's how it goes today. Actix-web however seems to be a solid choice for anything serious.
@@randomizednamme I think part of the issue is that if you just want to glue some frameworks together, Python, JS, etc, are infinitely more productive than Rust. In my experience if you're looking looking to use an existing database, Rust is a terrible language, if you're looking to write your own database, Rust is without peer. Ultimately its tool like anything else and no matter how great a screwdriver is, it'll never be a good hammer.
@@vaylx2253 well, elixir is a language made to handle concurrency very easily (it was made with this in mind) and can handle real time without problems. Phoenix is basically RoR but hella fast and light, with all the benefits of Elixir. You can build a great backend product in almost no time
Have fun debugging it without a proper debugger and tens of functions in modules due to pattern matching. I worked in a project with >100k LoC. Never again, I'm switching back to Java
@@kam1234554321 well, it's functional programming, so having tons and tons of functions is normal, just as having tons and tons of classes is normal in java or any OOP language
I think most big projects can be done quite nicely in almost all bigger frameworks. It's kind of preference at a certain point. Also once you master one framework completely, it's very hard to switch. E.g. re-learning how to do routing, caching, database modelling, session handling, form validation, file storage handling, emailing, tasks & queues, user authentication, hosting and deployment etc etc takes so much time.
i feel liks any framework with long term and strict approach to do things is the winner -Rails -Laravel -Adonis (nodejs) As all these provide the documented way of doing things which is industry standard and laravel nails on documentation. Tried many framework myself - next, express, nuxt, vapor, .net core, spring boot, flask, django, rails. But i keep coming back to laravel when i have time constraint. It has full blown arch also simplied arch with lumen
I like how you say, "Batteries Included", and that's how I like my frameworks i.e Django for all things server-side and Angular for all things frontend
8:09 "Which may feel [...] bad [...], but generally speaking, it actually works really well." That applies to a lot of vanilla JS too in my experience.
@@TCErnesto you mean like yew ? Probably not, but then if your app is mostly webassembly like 3dvision and stuff it might be advantageous. Or maybe you just want to suffer
Hey I'm the author of the Packt textbook Rust and web programming. If you stick with Actix web, Diesel, Hyper, and Tokio you can't really go wrong these frameworks and very stable and powerful
Great comparison. Personally, had the best DX with PHP + Laravel, and looks very pleasing. Would like to see something similar for Go somewhen. Don't care about the other languages 😅
All these frameworks are really good and have pros and cons. It's all about choosing what's best for your project based on its requirements, your preferences and your current skills. If you're a solo developer or belong to a small team and don't have time to learn a whole new stack, go ahead with the tools your team knows. If your project is successful, you can hire more people and learn other programming languages. I've worked a bit with Go and C# and a lot with JS (Node), Java and Ruby. The language I like the most is Ruby for its conciseness and flexibility. But I understand that it won't be the best choice for some types of applications.
I think any of them could be a good choice in providing a backend json API for a JS SPA. I don't know what is the current state of C#, but perhaps Java will give you more opportunities in big techs and an ecosystem of tools that is open source for a longer period than .Net. In case you are deciding which one to learn, I suggest you research topics like community, tools, performance, jobs, etc. and follow some quick tutorials with both languages to see how you feel with the syntax and tools (maybe building some very simple crud application) before investing your time on learning one of them deeper.
I keep coming back to this every few months, and depending on what i'm learning i see all the frameworks in a new light. First i was sold on gin Then i was sold on rails and phoenix And now i am interested in flutter and kotlin for mobile driven developement. Spring and Ktor look appealing at the time of writing 😊
Django is literally a dignified farsighted Gift from Python, although there are Flask, and recently they have FastApi but they are just microframeworks , made for just creating REST API s , which makes a big difference among others and django(I am not even considering the JS backends)
Huge fan of Phoenix. I've been using it for years and can't find a stack any better. Rails is fun, but there's too much OO magic happening for my liking.
One particularly good feature of Phoenix is contexts. Rocket and Diesel are very good they are not async and Diesel doesn’t support sql check. I’d go for Actix and Sqlx. Nice to see a video about Vapor, a nice DSL is Swift2Html, which is way better than leaf.
Missing out Flask and NestJS .... I know making this video took a long time and so much effort and it is very appreciated. But feels bad getting getting excluded
Gin is cool and I've been using it at work for 2 years, but takes 4x as long to code your project compared to some of the others in this list. I wouldn't recommend it to anyone who wants to build a web application t in a short amount of time
This is a good content, the joke about your startup failure is not really based on your selected framework :) you can choose whatever you want and grow your stack/technology along the way, the truth is you won't be using MVC too much as your product/tech stack grows.
I love you and I love to be alive in this day and age! So much freaking great content on the internet, because of people like you. Thank you so so much!!
Glad to see that the winner is Rails! I've been using it for 10+ years and we have also used it for building Pushpad, a large web push service which handles thousands of req/s. Rails is definitely a reliable framework + there is a wide ecosystem of gems. Ruby is a language that I enjoy using, because it is simple, concise and easy to understand. Finally Rails is much more stable than the JS ecosystem (that chances frenetically and can easily make all your codebase outdated).
I grew up learning Java & C#. When I learned these languages, there was no concept or talk about API's. I follow the concept of an MVC framework which I assume Java & C# are. However, I'm confused how these differ from today's concepts about separating your front end from your back end and having your front end make calls to your backends via API's.
If I get your question properly, the main difference is that with the standard MVC app, every time you want to update data on the page, you have to submit the page and get a new one from the server. APIs on the other hand don't really return pages, they only return data that you request from them. So you need to write client-side code to update the UI. That's where most UI frameworks like Vue, Angular, and React come in because they help you update the UI way easier than writing vanilla JS. For example, let's say you have a page with a navbar on top and a sidebar with a bunch of filters. Then on the page, you have a grid or a list of items. In a standard MVC project, if you want to move to page 2 for example, you would make a post request (or get) to the server, the server will build the entire page (including the navigation and the criteria sidebar), return it to you and you would need to re-render the entire page. This results in more data being transferred (whole HTML page instead of just JSON data for the items on the second page) and therefore slower response times. If you are ding that with some front-end framework, you would make a GET request to an API to give you the JSON data of the items on the second page, then only replace the list contents with the new data from the second page without re-rendering the navigation and the criteria sidebar. This results in a faster and smoother user experience since he doesn't need to wait for the entire page to be sent and the re-rendering takes a lot less time. And you don't see a white screen while the page gets prepared you will see probably a loading indicator in most cases.
@@vr77323 Thanks for your response. I understand your explanation of a standard MVC app, that's what I was used to programming in college which I have hands-on experience with. Your comparison to API's is a concept I understand and I'm familiar with the 3 popular front-end JS frameworks you're referring to but I don't have hands-on experience with building these more modern API apps. What I'm trying to understand is whether a standard MVC app always means a server-side rendered app? Can standard MVC app's also perform the much more modern front-end + backend API approach or are they no longer concerned MVC using this newer design?
@@corey1426 Yes, they definitely can. In fact, it's not uncommon for websites to have both a website serving some pages and also a bunch of "api endpoints" that serve only data. That way you can use some of their functions without actually having to visit their website. You can look up Facebook API, google APIs, most famous websites have APIs which allow you to use their services without the need of using their website. I'm not sure how familiar you are, but Google Firebase is a good example. One of the things they provide is cloud messaging. This allows you to send messages to devices that they can receive and do something with the data. You can use their online system from their website to send such messages, but you can also send data directly through a POST request to an api URL they provide and do the same thing but without visiting their website at all. I used this when I made my graduation project to create a simple chat app that allowed users to send messages from one device to another in real-time. I used firebase's website for development on single devices, but then switched to the API when I was ready to test it on a few devices simultaneously.
The best framework is the one that actually gets your product launched in a reasonable time.
And gets it working
So, never use Java or C# for anything. Got it.
@@_ShayKStage and i say it is rails : th-cam.com/video/iMlDw36--Uo/w-d-xo.html
@@yoursweatersux 😂😂😂
The word you were looking for is Django, right?
Man I'm so excited to watch you build a web app in portuguese, english, spanish, german, japanese, swahili, polish, arabic, urdu and czech
@@xdrap1 why not?
Umesema?
اذا(استعملت_جوجل){
كتب("غبي")؛
}
@anonymous anonymous Same here
Et en français aussi ? :(
Jeff was trying to point out the differences between these frameworks but I was just noticing how similar they all actually are. If you know MVC, you can pretty much figure out what's happening in any of them.
No, not really. The Go gin framework is not even close to Rails or Django for example.
@@w2lkm2n Gin is explicitly noted to be an exception that doesn't use MVC.
Edit: out of the box
@@w2lkm2n Yes. Gin is closer to Sinatra or Flask
because it's the same concept, separate the models (objects based on database), views (frontend for final user) and controllers (for connect the interaction from the users to the interfaces and get the models). Then we have bins (probably for automatization), app config, some template (to avoid write the same html over and over again) and other more specific web config (like public folder).
Lets all protest to consolidate languages/frameworks, its getting really crazy out there. Instead of spending time learning new languages we could use it for our leisure/life.
big ups for shouting out the laravel + inertia combo, been using it for a project at work and it really took my laravel developing experience to the next level
After watching the video, I know feel confident to add all these frameworks to my LinkedIn skills. 👍
Well with that optimistic actitude i think you don't have the impostor syndrome
7+ years enterprise experience using $language
😳
😂😆
except Rocket maybe :p
Amazing video. Showed me how to kickstart a project in any of those languages and also a high level insight into how it feels to use them and how opinionated each framework is, which could take years to learn on my own. You're a blessing. Thanks
Could have totally excused the 11 count by saying the count started and 0 and it was the largest index.
Ofcourse XD
@@SKumarInTech cease your self promotion
@@SKumarInTech nobody cares
That's index, not count
I think "Programmers don't know how to count" covers that
I used Spring, Phoenix, Rails and a little asp by now and they all have their strengths and weaknesses. Personally i like Phoenix the best. Like elixir has heavy influences from ruby Phoenix has influences from Rails. I like to think of it as a functional highly scaleable version of ror. It is also by far the most pragmatic language and framework i know of.
I like Elixir and Phoenix very much, but unfortunately the language is too young to get all the attention it deserves
You have absolutely aced the concept of producing witty yet highly informative media in the most digestible, efficient manner possible. Big kudos for that. Keep up the great work.
it's as if OP have to train that as a skill to write highly instructional, efficient codes to thrive as a programmer.
Thanks for showing Rails and Phoenix some love! Excited for Elixir in 100s!
One would always wonder whether Jeff learned all these languages and frameworks so that he can teach us in 100s.
“Learn”, it is just the basics for a YT video, man!
He didn't learn he simply tried to recreate the same app using different frameworks and then talked about the experience for the most part.
Not hating just making this clear so you don't get discouraged
@@TopBagon @xdrap1 I consider that I learnt a language when I can successfully create a working app with it.
But yes, we *master* a language with lot more time than "basics"
Have you created a full working app for each one of these language ?
I personally don't have the courage and the patience to do so, and I suppose you as well
Based on the code he added himself to the Laravel setup, I can tell you he has no experience in neither Laravel nor PHP. So I'm kinda hesitating whether he is the right one to judge ... :/
@@namoshek1819 i use php Strom which uses prebuilds and it's fun as hell
Thank you for mentioning framework X! It's really amazing to use. As X developer I think it's the best out there. The documentation is VERY detailed. The community is very friendly which makes X development a breeze.
Huh. I didn't know twitter had a framework.
@@sormokah8229 i had the same thought omg 😭
well played Sormokah, well played.
@@sormokah8229Coming soon
@@sormokah8229 elon was a bit skeptical about it but thankfully we finally got it
08:22 "Even though Java is a boilerplate driven language for writing instant legacy code" 😂😂😂😂😂
I really like Java, but that's so true it got me dying 😂😂😂😂
I didn't have an easy time learning Thymeleaf either when I first tried it out, but honestly, it's hands down the most powerful templating framework I've ever used. It's re-usability is mind blowing, you can dynamically template html tags from different html pages by using a selector, it's ridiculous.
this has made me realise how little i truly know about web dev
so many terms ive never heard of
@@pdblouin well, it is exactly what the name suggest: tools stitched together to provide you a framework in which you can develop applications :D (for example for handling stuff like http reqests, database access, json parsing, etc.)
@Samyar * dies from nostalgia *
If you don't get thrown into one of these on your first job, quit immediately. Doesn't matter which framework they use, as long as they use one and do it right.
That's because you are a maidelness weeb
@@DerMichael Eager to spread dogma originated from somebody's personal trauma as if it's the ultimate advice. Insufferable.
I have used Django , Rails and Express. I would say that they all have their pros and cons but RoR is just so ahead of everything love it .
I felt that Rust section. Tried it myself and basically came to the same conclusion with Rocket and Diesel. Especially Diesel is such an overkill with an entire CLI if you just want to create a simple application. I found Actix and sqlx to be much more minimal and simple to use.
As Jeff himself said, it really is because Rust is much more low level than the competition. Rust is an amazing language that has many usecases, but I don't think I'll ever choose Rust for web development besides maybe some computationally heavy APIs. I think it's funny he mentioned Rust, when he choose to skip C, C++ and other low level languages. :P
@@lauej You don't need to write low level code in rust. Just because you have control over life of your variables doesn't mean its TOO COMPLICATED.
Rust has many abstractions and libs that provide this abstractions
Rust is my personal favorite language for writing web applications. The nonexistence of null, unchecked exceptions, and data races help me really make sure the code is correct, which I think is necessary for a web application. Rust makes it hard to get your program to compile, but that's because the compiler already knows that your code won't work.
I did something very similar. I started with actix and Diesel, but using an ORM was too restrictive and bulky, SQLx was a nice replacement. I tried Rocket for a while, but I ran into a lot of issues, and ended up sticking to actix. In the end tho, I'm very happy I learned Server-side web development with Rust, it was a bit painful, but I learned a lot and trying to use something like JavaScript is very frustrating for me now.
@@lauej yeah this is the way tbh. Just use rust for performance crucial areas.
That's one of the best youtube videos I've seen in a long time. And I've seen more than healthy. Amazing work!
In Java, "decorators" are called "annotations" (but they are essentially the same).
public static void main string args, public static void main string args, public static void main string args
java one looked good, why it isnt very populay
@@deepakpune1 it is actually pretty widely used in the industry, most notably in the financial sector.
@@dmz985 java is fab, my first oops language:)
@@deepakpune1 you can't go wrong with it if you want a job. Java devs will still be needed for a long time.
I use laravel for everything, and 2 things I can point out that are very good. 1, the docs is super clear can be read by a 4 year old. 2, I’m slowly refactoring my apps to spa and with other frameworks I would have to do it all at once, with laravel I can do one component at a time etc
I used to roast Java a lot as a joke but when our company decided that our next app will be written in spring, I was fascinated on how the code just made more sense. It taught me discipline on how I wrote code. And I just love it.
The Best code is the code that you no need to write! From this perspective Java is obviously not a winner with their hundreds of hundreds lines for every even trivial thing, but for someone like you who Loved it, is the Only thing that matters and I'm sure it is Great! We all are so different and this is the salt of the Life! :)
Spring rocks. I used Django for months and loved it, but after trying out Spring I never turned back, while Java has a lot of boilerplate (and it shouldn't) I find Spring to be the most enjoyable experience for backend development I ever had
@@vasiovasio you would be surprise if you knew how much code you actually write with spring. It may have a lot of lines, but 95% of it is auto generated.
@@MaryamMaqdisi Spring also works with Kotlin, while there are some corners to iron out I'd still recommend giving it a go
@@GuilhermeHenrique-tz5mn its good to know it! Laravel have CLI called Artisan that generate also a lot of boilerplate code and it's great. :)
Personally one of my favorite frameworks is Django because of the vast amount of documentation it has and the vast libraries has. I literally sometimes don't have to code new features, I just use a package. It makes it very easy to quickly develop an website.
Pretty much all frameworks/languages have a vast "package ecosystem". Rails has gems, Vapor has SPM, Rust has cargo, Javascript has NPM, etc.
@@danbo967 yes, but I feel like django is really modular and popular. As a result of this modularity and popularity, there are a lot of packages that are very easy to integrate with existing projects. Maybe I'm wrong though- I don't really have any experience with the other frameworks; honestly the best framework is the one you know and understand the best :)
@@dheirya Django is popular but all language are easy to integrate. I would even argue some language are even slightly easier to integrate than Python because you don’t have to manually add the package to your file and declare the package in the middleware. Rails for example automatically adds packages to your project no need to register packages in the settings same with Javascript.
PS: I am not talking about the best framework/language here. This is just some insight into other languages and frameworks. Personally I think that we shouldn’t be defensive with our tech stack because the beauty of software engineering is to take and implement good ideas regardless of language/framework.
@@danbo967 I do agree with you that there really is no "best" framework/language. Whatever works for you is the best framework really.
Additionally, I can't comment on the easiness and packages that other frameworks have but for a beginner like me, django has great libraries and packages that can be easily shared through PIP and requirements.txt files.
This is my own story but recently I wanted to add my own login with email functionality and I found three packages I could use. I tried all of them and one of them worked perfectly in my case.
The point: All frameworks are good if you know what you're doing basically.
@@dheirya Definitely, my only beef with Django is that I don’t like that you have to manually add each app and package in your config/settings.py to include it into your project. Also it happens sometime that you have to pay attention to the order in which you add them to the “INSTALLED_APPS” or “MIDDLEWARE” lists. Also Django uses the MVVM pattern which isn’t as intuitive for me as the MVC pattern. But other than that Django is great.
I cannot imagine the time and mental effort you spent to make this video. For each one of those frameworks you found out the way to make a full stack (scalable) application.
Just to mention, I've tried Golang without any previous experience using Gin and it took me many days to finish the setup properly (without any ORM as you did).
Awesome work Jeff :)
I had my first experience with golang, building a web app too, but I used Fiber and Arango and I tried it with Hasura too. Honestly, I nearly prefered it to any JS framework or Laravel which I had experience prior. the only thing I had a hard time with was doing a loadbalancer
Scalable is very relative term, not all of them are out of box scalable and also scalable in terms of what?
You have to wire them according to usecase.
At the end of the day, you need your app to serve desired load smoothly, regardless what's used inside or how it distributes it. Keep in mind that a single problem can have hundreds of solutions and different people will come up with different implementations.
I can imagine him struggling 95% of his time googling rust stuff instead of writing rust
I actually figured out the best stack that works for me and it's based on the requirements:
NextJS: so much UI, little backend
Django: so much backend, little UI
React + Djangorestframework : so much everything
Are react + django bad?
I'm beginner and don't know :(
True that. I am surprised you are the only one I found who mentioned these. Django + NextJS is the best stack to get up and running quickly IMO.
You don't understand next then
Something like this deserves way more attention.
It really gives a nice overview of all these frameworks and their ways of doing things.
Jeff, its EF Core. :D Proud that I do dotnet.
Would definitely recommend Phoenix, you can save so much time in ops. Elixir makes it very easy to write concurrent code so you can totally skip job queues and redis and just use the language itself. The language looks like Ruby due to syntax but it’s very “no bullshit”, way lower in magic, and the best standard library I’ve ever seen.
yeah coming from a huge legacy rails codebase and going to phoenix was amazing. maybe rails is good for getting started but Elixir being functional, with phoenix, gets rid of a whole class of problems you might get from using a huge rails codebase, because of rails magic and OOP style
Any suggestions on where to start with Elixir?
@@gopher256 the docs, like with anything
@@TomNook. based
@@charlesm.2604 It's not that bad, I'm biased but I would say it's simpler than OOP. It's way different than languages like Haskell if that's what your experience has been.
Always remember when you encounter a tricky technology: it was written by humans, for humans. You are capable of understanding it if you give yourself the chance.
How bad is it if I don't understand 75% of what's being talked about?
Pretty bad
Normal
Don't worry. The best skill for a programmer is to learn quickly
I feel comforted by Jeff also struggling with getting a working Rust web app
Same here, I'm convinced rust is like the final boss of all practical programming languages when it comes to making anything in it that works. It's a truly magical language. It has a magical way of making you feel stupid at every turn.
@@ctleans6326 it’s like a martial arts teacher.
it will fuck you up and beat the shit out of you at every turn, but listen to his every instruction, learn strict discipline, and dedicate actual time in training, things just work. everything starts to make sense, including its complaints.
Hey I'm the author of the Packt textbook Rust and web programming. I suggest you focus on handling the borrow checker, structs, and then traits. Web programming Rust frameworks are very reliant on traits. It's classic to implement a trait for middleware etc. This makes it a high entry point but once you get this, you'll actually be able to develop apps quicker than when you code in a language like Python. I've had over 5 years of python web programming experience and I can now code web apps in Rust faster than I can code in Python due to trait implementations. Also, the async for rust is amazing. Currently talking with O'Reilly to write a book on async rust
Welp, I was hesitant to learn Ruby on Rails since I've never used it before but you're the guy I trust the most about this shit so onward I go
Dont deliver to others your own responsability for your own decisions in life !!!!
Dont deliver to others your own responsability for your own decisions in life !!!!
te toca pia!
Yes, Ruby on Rails is way better than everything else. All other frameworks are toys in comparison.
If you can still find jobs with it but it is a lot less than in 2015 from what I heard.
@@furo.v why?
I'd really recommend people give Ruby a go. It's a truly beautiful and well thought out language
I would have done so, but unfortunately, job postings are continuously in decline and I'm at a point where I need to invest what little time I have left in as few languages as possible.
I think I will stick to Python for data science and small scripts, so before learning Ruby for web development, I think I would rather use Flask or Django.
@@DerMichael you better stick with Python, and go for Django.. I like Laravel and RoR but I'm more comfortable doing long hours work with Django it's easy to use (for me).
What if you give Go a ruby?
@@user-cf2pl9uy5k damn, you beat me to it. 🤣
Django ORM, migrations, signals, models and forms, mixins, are all amazing. With just four-five lines of code you can generate a CRUD. Maybe the template is the not that advance component, but still a great framework
Worm, migrations, model and forms exists in all framework. Like java+spring, C# and PHP+Laravel for sure.
@@bastienm347 so what? did I say all that stuff are django exclusive. is not true that django templates are messy??
Someone will rewrite it I. JavaScript and make it perfect
I'll be honest and say that it is very well integrated but feel very boilerplate-y. We have an instance at work with 13 apps and it gets very messy very fast and I cannot for the life of me understand why urls and views are separate, instead of having annotations of the functions with the URI instead.
There is one missing, "Building a web applciation with C++ "(TreeFrong or oatpp)
Or drogon / Lithium (the biggest/fastest as far as I know)
There are plenty of C++ web framework, but none that feels really good to use in my opinion.. hope introspection in C++23 will help
XD I think that will be reserved to "I built a simple web app... in 10 years"
@@_zetrax hahahahaha
is there a web framework for assembly?
I just remembered I spent 5 years of collegue learning C++ as the main language just to end up writting PHP for a living
The transitions from framework to framework are great
As a Laravel developer I feel proud to have a video where it's shown. :D
I second that!
What do you recommend me to learn laravel or Django.
I know PHP well and python too.
@@itsankitbhusal laravel will be easier to learn but django is fast compared to laravel, but if you want to develop api then you can learn FastAPI, it uses python
@@ShailendraSharmaDark I want to develop rest API and use it with react
@@ShailendraSharmaDark Any latest benchmarks between Laravel and Django? The benchmarks I could find are all old and there have been several improvements to speed on both frameworks.
This is probably your best video so far!
Thanks a lot for the huge amount of work!
Didn't expect the ending lmao
Was fully expecting the "the best framework is the one you chose" route. The "nah, f. That... Rails is the goat" plot twist righ after cracked me up lol
I can't quite tell if he was serious or joking that it's the GOAT.
ruby on rails is such a delight to work with.
I've used half of these and Laravel by far is my favorite.
Agreed! Laravel’s ecosystem is incredible... Eloquent is amazing and makes me feel extremely productive using it. The whole Laravel experience is a real pleasure, and has helped seriously drive the modernisation of PHP.
Same with me.
Same. Lots of features baked in, and still it's intuitive to work with. Simple, elegant, not overwhelming. Great docs too
It has a terrible project structure... heavily dislike php
@@HyuLilium a feature-packed framework is bound to have a few more folders. I’ve worked with Laravel for 7 years and whilst it drops a bunch of folders in to keep things organised by default, you’re free to move, delete or restructure most of them however you like.
So happy to see Ruby on Rails getting the attention it deserves again
nope, its pretty bad nowadays.
@@vinniv6806 Everyone has an opinion, only difference is the person who talks trash about someone else's. Think about that.
dead framework
@@TheJackTheLion L + RATIO + U FELL OFF
@@Ihavetoreturnsomevideotapes I mean that’s usually what someone says when they are not competent enough to use something.
I always find it sad how a lovely fun and easy language like Ruby is so underrated yet it has a giant beast like Rails and its magic, i just wish the language itself was famous for things other than web
Amen (... pun non intended)
Totally agree, Ruby shines when it comes to metaprogramming aswell but that could also lead to your death since there are hundreds of different ways to do the same thing (which I love about it).
@@mikopiko def my favourite part and you don't need to be a programming wizard to figure out the multiple ways to achieve the same thing it's just out there
Ruby is very popular in the cybersecurity world, look at metasploit which uses ruby to allow you to do scripts and work with the exploits it provides.
I think ruby's curse is python. Not because python is better, but because python changed the metrics upon which people judge languages. The most important thing is now whether it can be learned in an afternoon, and used by someone who doesn't understand it well, and ruby doesn't try to be any of those things - it appreciates that some people will have to spend a lot of time with a language, and the best thing to optimize in that situation is not ease of learning, but pleasantness to use once proficient. Few languages come close to ruby on that.
Most of us have very limited view based on our experience with the only framework we have experience with. This video helps us come out of the 'well' and appreciate other frameworks.
I'd love to see a top 10 of JavaScript database integration libraries.
Had to learn django for work and the whole admin interface was amazingly useful and extendable. Something I'd love to have for JS frameworks, e.g sveltekit
I'm looking forward to this. Next.js would be my top Web Framework the day I know which database integration approach is the best
@@AmirIskandar exactly, the problem with all the frameworks is the workaround required for advanced frontend manipulation, the problem with JS frameworks is how unclear the data layer is. Just give me objects, relationships to other objects, and ways to do CRUD operations on them in an easy to use fashion.
Django has all the others beat there.
Jeff already mentioned Prisma, Sequelize is also fine but I'd take a serious look at supabase. It's not an ORM, but a full fledge firebase alternative. It's got its own integration libraries and postgres (that's what's under the hood) can pretty much replace mysql for any workload. plus you get an auth server, realtime db events and block storage.
TypeORM its does the job for me, and it has a nice integration with NestJS. I've been using both for the last 3 years, i think you'll like it.
Gin. I finally found a framework that makes me learn backend without being overwhelmed by the directory structure.
What was the exp?
I'll save you some time reading these comments, half of them will be X Framework or language is so amazing and the other half will be it doesn't matter what you use.
36 comments rn might as well just scroll through each lol
Ktor is really neat, Kotlin's DSLs make everything structured and elegant.
Phoenix was short and sweet! I was worried you were going to complain about language instillation because it can be a pain. Love Phoenix!
I learned more in the first 5 minutes of your video than the last 5+ years of studying coding on and off. Thank you
Rails is the best especially for small apps. I learned it in a coding bootcamp and built a few apps with it. At work, we use spring in which i have a love/hate relationship with. Spring can be really simple and way overcomplicated all at the same time. Its hard to explain
That's literally Java, the good thing is that the more complex the project gets, the less "the curve of complexity rises" when using Java, if that makes any sense.
You should definitely give Phoenix a try then. It is great for both small and large apps because of the features of the language itself.
Right small web apps. Fir scalable, robust apps which later can be done on mobile c# is best.
Yes it is hard to explain, isn't it? Lots of subtle little things to get wrong despite the code appearing simple. For me, Hibernate is the chief culprit. I would give anything for the project I am working on not to have chosen it. But from a larger standpoint, annotation based coding gives me the heebies. It's like a dynamic language but somehow worse and less predictable. It sacrifices all the advantages of Java. And from an even larger standpoint, it is frequently impossible to find solutions for common web app issues. I know people are using spring to build huge enterprise crap, but from what I can Google it's only toy apps, and fixing N+1 queries is like rocket science to these people.
@@arrrryyy I think Shopify has more than demonstrated that Rails apps do not have to be small at all.
This must have taken soooooo much time and work. Another fantastic, funny and useful video, thank you!
As a rails dev, it's also a lot easier to use on a mac.
I fell in love with laravel when I got started at version 6, been using react for a wile and just got back and it's like coming home.
Nothing can't beat the Eloquent ORM!
But laravel doesn't come with a database, just the universal ORM 😊
Yes when you work with laravel. Other frameworks looks kinda frustrating to you.
Laravel is love.
Honestly, it's by for the best framework I've worked with so far. It's easy to use, the documentation is fenominal and working with databases is not a Hassel. Also if you implement a frontend framework, that's easy too
But performance is not that good compared to other frameworks
@@ProductPulse-iw3zk Come back when you actually need more than 50k requests per second on your website...
I ♥️ Elixir - Phoenix.
It's an underrated tech in the industry that not many people know.
It's the tech I said I'll learn, but too lazy to do, procrastinating everyday that a quarter of the year already past, it's still on my to learn list.
its 100% worth your time, trust me
@@prophetjamz94 I made a video on Ruby on rails in 💯 seconds: th-cam.com/video/iMlDw36--Uo/w-d-xo.html
I bet it is 110% worth your time
It’s so underrated, so powerful, simple and without bullshit. The main drawback I’ve found is that there isn’t a good authentication solution. But the framework drives you towards a very maintainable architecture even as your app grows and you need to scale horizontally; but you probably won’t even need to because a single node can handle millions of connections.
I forget what they're called in elixir but doesn't every green thread get its own dedicated part of heap memory? Compared to go where all the green threads (or "goroutines") share heap? If true i think that would be a big advantage for memory safety and avoiding data races
@@spongechameleon6940 I'm not an expert but my understanding is that it handles concurrency through individual independent "processes" where yes they don't share memory but enable the passing of messages with data to handle "The Actor Model". I believe elixir documentations specifically state that the OTP model doesn't use threads. Unless I misunderstood your question
thank you for actually talking fast enough. most dev channels speak so slowly lol
Python being the most popular language among developers with the host of libraries at their disposal, it's only natural that most companies rely on Django and a separate front-end framework to do the heavy lifting. On top of that, the native Jinja style template language is incredible IMO.
Did you tried Spring?
In my experience, Django is only popular among startups and real enterprise businesses use things like Java + Spring because in the end, the tools are more battle tested there. Also Python + Django seems to create more tech debt than Java + Spring, though Django is probably more comparable to RoR or Laravel (though I don't have experience with Laravel.)
We started with Python servers and quickly switched to Rust. A lot less tech debt, less errors, and server costs were a fraction. Django is the hobby type framework. There's a scary number of developers who don't want to grow up and cling onto Django but you'll never see Django in serious infrastructure. The BS statements like "youtube was written in Python" etc, that's the MVP, they have to tear that tech stack out when they grow
Python's popularity/rank comes from Data Science, not web development - Laravel(PHP) powers more than 70% of the web.
Python is overrated for web dev
That nodejs frameworks comparison promise, really excited for it.
Throw in some deno frameworks too,. within that if possible.
As a rails developer having an excursion to nuxt3 I agree fully. Everything is so painfull on the other sides.
Rails the 🐐! In all seriousness. I started working with rails about 10 years ago and it was a total game changer. I always loved working with it, however, the new shiny JS frameworks were attractive and I switched to a JS-based approach for a lot of my projects.
Since the team released hotwire I rediscovered my love for rails. It's so much faster to get stuff done and the fact that is super opinionated, makes it very easy to get people up to speed with the code base.
Long live 🚂!
I love the tiny train emoji at the end to celebrate the stack hahaha
Would love to see 100 seconds of BlitzJS - it’s a framework on top of NextJS that ties together Prisma and a few other “batteries” for a much more rails-like experience
Idk what’s next… turboJS which is on top of blitzJS which is on top of nextJS which is on top of reactJS. TurboJS have 1,000 potential unicorn apps tht u just put a rand number and it spits out
@@davidkoffi985 totally agreed
Whyyyyy
@@davidkoffi985 Was going to say that. The JS library ecosystem is broken in so many ways ngl
Since I myself am a huge BlitzJS fan I can only approve.
RoR is great, and the docs they have are by far the greatest docs I have seen.
Would love to see flask here. Same minimalism as gin I think, but more documentation / libraries to choose from
loved flask, very flexible and easy
I wish he had put Flask in the video. Very minimal and simple and still used by many companies.
Isn't flask more of middleware? Been a while since I used it
@@GAGONMYCOREY. I suppose you mean packages that use flask to push part of their functionality to the web? Like rq 's dashboard or plotly interactive features? Flask can do that and AFAIK it is just as well suited to a full scale web app.
@@GAGONMYCOREY flask is whatever you want it to be, thats the beauty of microframeworks.
Maybe the best framework was the friends we made along the way
Same here, I had a hard time building my backend with Rocket and then I switched to Axum, much simpler.
Echo is nice too
Nextjs pretty much saved me from losing my mind with all the js frameworks coming out every 2 days. Its amazing.
Rocket and Diesel for Rust is probably a poor choice for this task. Rocket was basically abandoned for almost a year due to the maintainer's personal issues, and it didn't get any traction since then. I would've chosen Actix-web or Axum with SQLx. That being said, Rust is a lower level abstraction compared to what's a typical web developer is used to. When I first started learning Rust, I didn't feel productive in the first six-eight months.. and 3.5 years later, it's definitely my favourite language of all.
This is my main problem with Rust; it’s so hard to keep track of what is even going on. 6 months ago people would tell you Rocket is the best. A month later Warp is the hype. Now Warp is dead, all about Axum baby! Oh also make sure you choose the right async executor. It suffers the same problem as Haskell, the language itself is top tier, but the ecosystem is just absolute madness of everyone trying this esoteric bullshit instead of keeping things simple. It’s very fun if you’re a part of the community, but it makes recommending it for production difficult.
@@randomizednamme Rust is a relatively new language, and the standard "best" packages are not settled entirely, especially in the web space. You need to keep up to date.. that's how it goes today. Actix-web however seems to be a solid choice for anything serious.
@@randomizednamme I think part of the issue is that if you just want to glue some frameworks together, Python, JS, etc, are infinitely more productive than Rust.
In my experience if you're looking looking to use an existing database, Rust is a terrible language, if you're looking to write your own database, Rust is without peer.
Ultimately its tool like anything else and no matter how great a screwdriver is, it'll never be a good hammer.
What do you do with Rust? Also I want to ask if avoiding C++ for building networking and server tools is the right thing or not?
@water and people still insist on permissive licenses.
Finally, a video talking a bit about Elixir. An amazing language with an amazing web dev framework! I truly think it can become the next RoR
Can you expand on that a bit?
@@vaylx2253 well, elixir is a language made to handle concurrency very easily (it was made with this in mind) and can handle real time without problems. Phoenix is basically RoR but hella fast and light, with all the benefits of Elixir. You can build a great backend product in almost no time
@@yeicore thanks for the insight.
Have fun debugging it without a proper debugger and tens of functions in modules due to pattern matching. I worked in a project with >100k LoC. Never again, I'm switching back to Java
@@kam1234554321 well, it's functional programming, so having tons and tons of functions is normal, just as having tons and tons of classes is normal in java or any OOP language
Damn it jeff, Now I wanna use all the frameworks for multiple projects instead of sticking to one.
You should do short (1 minute and a half -ish) videos on different languages. That would help your channel grow
I think most big projects can be done quite nicely in almost all bigger frameworks. It's kind of preference at a certain point. Also once you master one framework completely, it's very hard to switch. E.g. re-learning how to do routing, caching, database modelling, session handling, form validation, file storage handling, emailing, tasks & queues, user authentication, hosting and deployment etc etc takes so much time.
Wouldn't it be easier though? Since you understand the fundamental functionality.
i feel liks any framework with long term and strict approach to do things is the winner
-Rails
-Laravel
-Adonis (nodejs)
As all these provide the documented way of doing things which is industry standard and laravel nails on documentation. Tried many framework myself - next, express, nuxt, vapor, .net core, spring boot, flask, django, rails. But i keep coming back to laravel when i have time constraint. It has full blown arch also simplied arch with lumen
I just made a java rest api using spring boot. Gotta say its the best. Handled db and also a websocket sessions.
The end was so golden
I like how you say, "Batteries Included", and that's how I like my frameworks i.e Django for all things server-side and Angular for all things frontend
8:09 "Which may feel [...] bad [...], but generally speaking, it actually works really well." That applies to a lot of vanilla JS too in my experience.
Rust really needs its own spring/rails
but does it really needs a webapp framework?
@@TCErnesto you mean like yew ? Probably not, but then if your app is mostly webassembly like 3dvision and stuff it might be advantageous.
Or maybe you just want to suffer
Hey I'm the author of the Packt textbook Rust and web programming. If you stick with Actix web, Diesel, Hyper, and Tokio you can't really go wrong these frameworks and very stable and powerful
Great comparison. Personally, had the best DX with PHP + Laravel, and looks very pleasing. Would like to see something similar for Go somewhen. Don't care about the other languages 😅
9:33 _it's extremely popular and reliable_
**Shows Blue screen of death**
XD
Best framework is the one that perfectly balances getting your product released fast and having it be easy to maintain.
All these frameworks are really good and have pros and cons.
It's all about choosing what's best for your project based on its requirements, your preferences and your current skills.
If you're a solo developer or belong to a small team and don't have time to learn a whole new stack, go ahead with the tools your team knows. If your project is successful, you can hire more people and learn other programming languages.
I've worked a bit with Go and C# and a lot with JS (Node), Java and Ruby.
The language I like the most is Ruby for its conciseness and flexibility. But I understand that it won't be the best choice for some types of applications.
which one will be better java or c# in backend when I use javascript on frontend?
I think any of them could be a good choice in providing a backend json API for a JS SPA.
I don't know what is the current state of C#, but perhaps Java will give you more opportunities in big techs and an ecosystem of tools that is open source for a longer period than .Net.
In case you are deciding which one to learn, I suggest you research topics like community, tools, performance, jobs, etc. and follow some quick tutorials with both languages to see how you feel with the syntax and tools (maybe building some very simple crud application) before investing your time on learning one of them deeper.
Thank you for your answer
I keep watching your videos to keep my passion in programming intact.
I keep coming back to this every few months, and depending on what i'm learning i see all the frameworks in a new light.
First i was sold on gin
Then i was sold on rails and phoenix
And now i am interested in flutter and kotlin for mobile driven developement. Spring and Ktor look appealing at the time of writing 😊
Django is literally a dignified farsighted Gift from Python, although there are Flask, and recently they have FastApi but they are just microframeworks , made for just creating REST API s , which makes a big difference among others and django(I am not even considering the JS backends)
This is why he asked what's the best full stack mvc framework of all time in his survey...
14:08 "It was Yew all along." You heard it here first! Yew is the best framework.
I like “ YOU DON’T HAVE TO BE GOOD AT MATH “.
Finally! yes Ruby on Rails, I used 70% of all frameworks and Rails is my winner too.
Huge fan of Phoenix. I've been using it for years and can't find a stack any better. Rails is fun, but there's too much OO magic happening for my liking.
Good video for those who don't wanna get their hands dirty but still need to get an overview of these popular frameworks.
One particularly good feature of Phoenix is contexts.
Rocket and Diesel are very good they are not async and Diesel doesn’t support sql check. I’d go for Actix and Sqlx.
Nice to see a video about Vapor, a nice DSL is Swift2Html, which is way better than leaf.
Missing out Flask and NestJS .... I know making this video took a long time and so much effort and it is very appreciated.
But feels bad getting getting excluded
Gin is cool and I've been using it at work for 2 years, but takes 4x as long to code your project compared to some of the others in this list. I wouldn't recommend it to anyone who wants to build a web application t in a short amount of time
When he starts talking about the stack you are familiar with, you feel home.
This is a good content, the joke about your startup failure is not really based on your selected framework :)
you can choose whatever you want and grow your stack/technology along the way, the truth is you won't be using MVC too much as your product/tech stack grows.
I love you and I love to be alive in this day and age! So much freaking great content on the internet, because of people like you. Thank you so so much!!
Glad to see that the winner is Rails!
I've been using it for 10+ years and we have also used it for building Pushpad, a large web push service which handles thousands of req/s.
Rails is definitely a reliable framework + there is a wide ecosystem of gems.
Ruby is a language that I enjoy using, because it is simple, concise and easy to understand.
Finally Rails is much more stable than the JS ecosystem (that chances frenetically and can easily make all your codebase outdated).
Great video!
Any framework is good except those written in Java.
I think Go has Buffalo for building MVC applications.
I grew up learning Java & C#. When I learned these languages, there was no concept or talk about API's. I follow the concept of an MVC framework which I assume Java & C# are. However, I'm confused how these differ from today's concepts about separating your front end from your back end and having your front end make calls to your backends via API's.
If I get your question properly, the main difference is that with the standard MVC app, every time you want to update data on the page, you have to submit the page and get a new one from the server.
APIs on the other hand don't really return pages, they only return data that you request from them. So you need to write client-side code to update the UI. That's where most UI frameworks like Vue, Angular, and React come in because they help you update the UI way easier than writing vanilla JS.
For example, let's say you have a page with a navbar on top and a sidebar with a bunch of filters. Then on the page, you have a grid or a list of items. In a standard MVC project, if you want to move to page 2 for example, you would make a post request (or get) to the server, the server will build the entire page (including the navigation and the criteria sidebar), return it to you and you would need to re-render the entire page. This results in more data being transferred (whole HTML page instead of just JSON data for the items on the second page) and therefore slower response times.
If you are ding that with some front-end framework, you would make a GET request to an API to give you the JSON data of the items on the second page, then only replace the list contents with the new data from the second page without re-rendering the navigation and the criteria sidebar. This results in a faster and smoother user experience since he doesn't need to wait for the entire page to be sent and the re-rendering takes a lot less time. And you don't see a white screen while the page gets prepared you will see probably a loading indicator in most cases.
@@vr77323 Thanks for your response. I understand your explanation of a standard MVC app, that's what I was used to programming in college which I have hands-on experience with. Your comparison to API's is a concept I understand and I'm familiar with the 3 popular front-end JS frameworks you're referring to but I don't have hands-on experience with building these more modern API apps.
What I'm trying to understand is whether a standard MVC app always means a server-side rendered app? Can standard MVC app's also perform the much more modern front-end + backend API approach or are they no longer concerned MVC using this newer design?
@@corey1426 Yes, they definitely can. In fact, it's not uncommon for websites to have both a website serving some pages and also a bunch of "api endpoints" that serve only data. That way you can use some of their functions without actually having to visit their website.
You can look up Facebook API, google APIs, most famous websites have APIs which allow you to use their services without the need of using their website.
I'm not sure how familiar you are, but Google Firebase is a good example. One of the things they provide is cloud messaging. This allows you to send messages to devices that they can receive and do something with the data. You can use their online system from their website to send such messages, but you can also send data directly through a POST request to an api URL they provide and do the same thing but without visiting their website at all. I used this when I made my graduation project to create a simple chat app that allowed users to send messages from one device to another in real-time. I used firebase's website for development on single devices, but then switched to the API when I was ready to test it on a few devices simultaneously.
I also have tried many mvc frameworks but Grails still by far is the best when it comes to developer experience