This article was originally posted on Daily.dev this is mere the repost.
Backend is literally the backbone of development, and a big passion of mine; it's where everything started.
Today I'll be showcasing 9 backend frameworks. The idea is that you focus on one of them and become really good at it, there are just so many around I wanted to showcase the diversity for you guys.
This tutorial is sectioned by programming languages since everyone got a poison.
This list makes the assumption you already know the basics of a programming language if you're all new to backend I'd suggest a more basic course of one of the languages.
Choosing a framework
Before jumping into the list of amazing frameworks out there, let's see what framework works for you.
Choosing the right framework is very personal advice, like clothes shopping, or buying a new PC.
It depends on your needs, what you used to, and your general style.
For this purpose let's split it up into some criteria:
🧠 Knowledge level (seen from a beginners point of view) 🦾 What it's strong at 👎 Downsides
- Laravel: 🧠 Beginner entry possible, 🦾 Modern programming, Flexible, Strict, Well documented 👎 Performance issues, Updates a lot (where third party packages might break)
- Gin: 🧠 Medium knowledge required 🦾 Massive on performance, Super easy to get a rest API, a lot of middleware 👎 Not good if you want different server-side elements it doesn't come with
- Django: 🧠 Medium knowledge required 🦾 High security, a lot of stuff included like database modeling, etc. 👎 Speed, Would not recommend it for super small one pages for instance.
- Flask: 🧠 Beginner entry possible 🦾 Flexible, testing made easy 👎 Not super strict, not super scaleable
- Ruby on Rails: 🧠 Beginner entry possible 🦾 Super high standards, quick development using commands 👎 Speed, Hard to make flexible, Can be hard to change something later on
- Spring Boot: 🧠 Advanced knowledge required 🦾 High on testing, Good with many databases, easy CLI integrations 👎 You can't customize as you wish, hard to understand
- ASP.NET MVC: 🧠 Beginner entry possible 🦾 Well proven, Fast server-side, MVC made easy 👎 Not best at SEO out of the box, Hosting might become more difficult
PHP ~ Laravel
The only reason Laravel is first is that I'm using Laravel in my day-to-day job. It's the successor of Symfony and considered the biggest MVC (model, view, controller) framework for PHP. There are many great packages you can include to make your life easier.
Node.js ~ Express
Express is an amazing and at the time of writing the biggest node.js framework. It helps us focus on what actually matters and not reinventing the wheel.
It's amazing to build full web applications or choose to focus on API only interfaces.
Node.js ~ Koa
Much like express, another node.js framework is Koa, it's built by the same people as express, and supposed to be the next generation.
I personally think at this point it depends on what your goals are, what job are you after, do they use express or are they very open?
GoLang ~ Gin
I wanted to include Go/Golang language since it's very hot and seems to be becoming bigger and bigger.
I personally haven't used it yet. But from conversations, I hear Gin is the #1 framework at the moment.
Go is a language by Google and one to look out for if you're completely new.
Python ~ Django
If Python is your poison, have a look at Django. Django is a very powerful web framework on Python.
It's fast, secure, and scalable.
Python ~ Flask
Another great Python resource is Flask. It's an MVC micro-framework, easy to understand, secure, and robust.
It uses Python imports to get certain aspects like a database module.
Ruby ~ Ruby on Rails
Another great MVC framework is Ruby on Rails. It's built on top of Ruby and proven itself many times over the years. It's a full-blown framework, so everything you'll ever need is included in it.
Java ~ Spring Boot
Perhaps you're more of a Java person? How about Sprint Boot, super simple to get started with, and building simple APIs is child's play.
You can use it for standalone applications and web applications.
.NET ~ ASP.NET MVC
Of course, .net could not be missing; it's still used by many, many businesses out there and comes with wide knowledge on the internet.
It's another full-scale framework including about anything you'll ever need!
The best part, Microsoft has a whole learning gallery on it!