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
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.
@@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.
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 😂😂😂😂
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.
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.
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 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.
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.
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 ... :/
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.
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
@@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.
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.
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.
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.
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.
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).
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
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
@@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'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.
You should try Rails then. I learned Rails first and then moved to Python/Javascript but to be honest nothing has been as intuitive and easy/quick to build with as Rails. You can pick it up in a week if you already know a programming language. The scaffolding feature makes it super fast to build apps because it generates a model/controller/view with all CRUD operations/routes/tests and migration for your database with a single command.
@@kerodfresenbetgebremedhin1881 nextJS is for frontend. You can use nextJS/React with Rails as a backend. In terms of frontend it depends if you need the extra complexity in the front you could also just use vanilla server side templates combined with Russian doll caching to improve performance.
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.
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
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!!
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
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.
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.
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.
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 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 ♥️ 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
@@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.
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.
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 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
@@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
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
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.
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.
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 😅
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 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'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.
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 😊
I am starting web development and understanding mvc the way you have taught us awesome, so many directories in my boilerplate makes so much sense now. Ps I am working on blockchain project.
Dude it was awesome!!! Need to enroll to any course made by you!! Greetings from Bolivia! So far I agree with you rails is magic, in fact rails is also considered as a frameworks of frameworks!
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 : ua-cam.com/video/iMlDw36--Uo/v-deo.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
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!
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.
That's one of the best youtube videos I've seen in a long time. And I've seen more than healthy. Amazing work!
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 😂😂😂😂
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
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
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.
@@LtFoodstamp serious. The only ones that don't think so are wrong.
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.
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.
This must have taken soooooo much time and work. Another fantastic, funny and useful video, thank you!
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
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 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
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.
Something like this deserves way more attention.
It really gives a nice overview of all these frameworks and their ways of doing things.
This is probably your best video so far!
Thanks a lot for the huge amount of work!
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
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 .
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.
The transitions from framework to framework are great
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.
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.
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.
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.
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. :)
Jeff, its EF Core. :D Proud that I do dotnet.
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 love the fact how your videos are getting more and more funny and do not lose a bit from being informative. You are my favourite IT youtuber
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. 🤣
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
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
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
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?
+1 for NextJS. I've never felt that a web framework was as intuitive as Next is, and I hope the project is solid into the future.
You should try Rails then. I learned Rails first and then moved to Python/Javascript but to be honest nothing has been as intuitive and easy/quick to build with as Rails. You can pick it up in a week if you already know a programming language. The scaffolding feature makes it super fast to build apps because it generates a model/controller/view with all CRUD operations/routes/tests and migration for your database with a single command.
Laughs in SvelteKit
@@danbo967 The beauty of next is that you will have to learn js and react, which means u r doubly empowering urself
@@kerodfresenbetgebremedhin1881 nextJS is for frontend. You can use nextJS/React with Rails as a backend. In terms of frontend it depends if you need the extra complexity in the front you could also just use vanilla server side templates combined with Russian doll caching to improve performance.
Laughs in Remix
thank you for actually talking fast enough. most dev channels speak so slowly lol
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.
I learned more in the first 5 minutes of your video than the last 5+ years of studying coding on and off. Thank you
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.
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!!
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
Ktor is really neat, Kotlin's DSLs make everything structured and elegant.
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.
I keep watching your videos to keep my passion in programming intact.
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 love this kind of videos so much its really informative and it gives me a quick overview on how every web frameworks work and have
Damn it jeff, Now I wanna use all the frameworks for multiple projects instead of sticking to one.
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.
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
dude I swear this is the best content I've ever watched on UA-cam
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.
I was in need for this... love you!
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: ua-cam.com/video/iMlDw36--Uo/v-deo.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
Finally! yes Ruby on Rails, I used 70% of all frameworks and Rails is my winner too.
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.
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.
Same here, I had a hard time building my backend with Rocket and then I switched to Axum, much simpler.
Echo is nice too
ruby on rails is such a delight to work with.
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
I just made a java rest api using spring boot. Gotta say its the best. Handled db and also a websocket sessions.
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
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
Nextjs pretty much saved me from losing my mind with all the js frameworks coming out every 2 days. Its amazing.
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
What an absurd quality of content, oh my God! Thanks.
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...
You should do short (1 minute and a half -ish) videos on different languages. That would help your channel grow
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
thoroughly entertaining and insightful, my good sir
I like “ YOU DON’T HAVE TO BE GOOD AT MATH “.
This is an amazing effort. Thank you for your work and research !
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.
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 😅
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.
wow that was a super good overview of em. i noooticed you started with rails :)
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'm probably not the first person to say this, but the humor is integrated so dryly and seamlessly that I suspect it actually drives view length.
9:33 _it's extremely popular and reliable_
**Shows Blue screen of death**
XD
14:08 "It was Yew all along." You heard it here first! Yew is the best framework.
RoR is great, and the docs they have are by far the greatest docs I have seen.
LFG Jeff 🚀. Quality content as always.
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
That nodejs frameworks comparison promise, really excited for it.
Throw in some deno frameworks too,. within that if possible.
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 😊
Fast and simple as always. Thks man
As a rails dev, it's also a lot easier to use on a mac.
I am starting web development and understanding mvc the way you have taught us awesome, so many directories in my boilerplate makes so much sense now. Ps I am working on blockchain project.
"Java is a boilerplate driven language for writing instant legacy code"
That part got me laughing hard 🤣
Great video!
Maybe the best framework was the friends we made along the way
Dude it was awesome!!! Need to enroll to any course made by you!! Greetings from Bolivia! So far I agree with you rails is magic, in fact rails is also considered as a frameworks of frameworks!