DEV Community

Cover image for Focus on one of these 9 backend frameworks to become a backend wizard
Chris Bongers for daily.dev

Posted on • Updated on • Originally published at daily.dev

Focus on one of these 9 backend frameworks to become a backend wizard

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)
  • Express: 🧠 Beginner entry possible 🦾 JavaScript, Fast, Multi-threading, Many tutorials, Extendable, Quick prototyping πŸ‘Ž Changes rapidly, can be hard to keep up with, Security is not it's top priority
  • Koa: 🧠 Beginner entry possible 🦾 JavaScript, Well structured, Improved security over express πŸ‘Ž Fairly new, so certain pain points might hold you up.
  • 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.

Laravel - PHP

Best paid resource to learn Laravel

Best free resource to learn Laravel

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.

Express.js - Node.js

Best paid resource to learn Express.js

Best free resource to learn Express.js

Express.js

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?

Koa.js - node.js

Best paid resource to learn Koa.js

Best free resource to learn Koa.js

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.

Gin - Golang

Best paid resource to learn Gin

Best free resource to learn Gin

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.

Django - Python

Best paid resource to learn Django

Best free resource to learn Django

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.

Flask - Python

Best paid resource to learn Flask

Best free resource to learn Flask

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.

Ruby on Rails - Ruby

Best paid resource to learn Ruby on Rails

Best free resource to learn Ruby on Rails

Reader suggestion (Joe)

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.

Spring Boot - Java

Best paid resource to learn Spring Boot

Best free resource to learn Spring Boot

.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!

ASP.NET MVC

Best paid resource to learn ASP.NET MVC

Best free resource to learn Express.js


daily.dev delivers the best programming news every new tab. We will rank hundreds of qualified sources for you so that you can hack the future.
Daily Poster

Top comments (45)

Collapse
 
zluther89 profile image
Zach • Edited

I could be wrong, but I don't believe any framework really sticks out for go. Gin is popular for personal projects, but from what I understand it's better to understand vanilla go rather than focus on a framework, as many companies just end up building there own from a thin wrapper over the stdlib

Collapse
 
dailydevtips1 profile image
Chris Bongers

Hey Zach,

I do reckon and mention you would need to understand each language first, so always a big fan of learning the vanilla language.
I do see quite a lot of people using Gin, not sure on enterprise level.

Collapse
 
zluther89 profile image
Zach

Edit: I meant than focus on a language. Totally changed the meaning of what I meant haha my apologies.

Collapse
 
shaijut profile image
Shaiju T • Edited

Nice , πŸ˜„, I am a ASP.NET MVC developer , So May I know why ASP.NET MVC is Not best at SEO out of the box and Hosting might become more difficult ?

Collapse
 
dailydevtips1 profile image
Chris Bongers

With hosting I was mainly talking from a new person's perspective, I don't know how you feel about this, but for me setting up .Net hosting can be harder.
I've struggled with this a lot before, where your basic linux hosting is just easier and you can find more topics on this. (I realize this might be opinionated)

The SEO, not saying these things are not fixable, but out of the box it could be better:
moz.com/ugc/seo-pitfalls-every-mic...

Collapse
 
shaijut profile image
Shaiju T • Edited

The SEO article you refer is talking about ASP.NET Web Forms, which is outdated framework. Its not good idea to blog out wrong information by mistake, this gives wrong impression to beginners while making decisions. :)

What cool thing you can do with .NET ?

I didn't write this to promote the framework, I just shared some good information on .NET, Tools may change every year, So At the end use the best tool for the Job. :)

Thread Thread
 
dailydevtips1 profile image
Chris Bongers

Oke cool thanks for this additional info, I know .net is pretty cool, I mean I used it about 5 years ago the last time, so don't pin me down on the details these days.
Hosting back then was a pain, because Azure wasn't a thing, and setting up Windows hosting could take forever...

It's def a good framework for people getting into development, hence it's on the list 🀟

Thread Thread
 
shaijut profile image
Shaiju T

Nice , How easy its to setup linux hosting then , What web server did you use ? Do you know a article or tutorial on how to host apps in linux ? I want to try it once.

Thread Thread
 
dailydevtips1 profile image
Chris Bongers

This might be a personal answer, but compared to windows hosting back in the days Linux was always way more interfaced using systems like for instance DirectAdmin.

But even underwater setting up Linux hosting is not difficult.
As for WebServer this Linux article is great: linuxandubuntu.com/home/how-to-set...

Thread Thread
 
shaijut profile image
Shaiju T

Thank you. Had good discussion though. Appreciate. :)

Collapse
 
jkewley profile image
JFK

That SEO article is from 2011 and like 5 major framework version updates behind, the last 3 of which run on Windows, Mac, and Linux. VS.net has right click publish to Azure web hosting plans that run on either Linux or Windows. Microsoft has reams of documentation, videos, and open source solutions how to get started with web dev on .net.
You’re probably due for a refresher on what .net is these days, because it’s not what you describe.

Thread Thread
 
dailydevtips1 profile image
Chris Bongers

Hey JFK, sorry to offend you, I mean it made the list, There must just be some pro's and cons and I highly recommend anyone interested to check it out.

I also mention Microsoft has massive documentation on it.

Again sorry if this post offended you, I still think it's a good framework and people should consider it.

Collapse
 
shaijut profile image
Shaiju T

To host .NET apps , we can easily do right click publish to Azure, or hook up a CI/CD pipeline like Azure Devops and Github Actions.

I don't know why you had bad experience with hosting. Can you elaborate more ? How did you host your .NET apps ? And how easy it is with Linux ?

Collapse
 
kataras profile image
Gerasimos (Makis) Maropoulos

Hi there, for anyone who is reading: check out github.com/kataras/iris as a gin alternative for Go. It's a more complete web framework and performs a bit faster (especially on router, sessions and jwt implementations). There are more than 250 examples to learn from (all free).

Disclaimer: I am the author of Iris.

Collapse
 
andrewbrown profile image
Andrew Brown πŸ‡¨πŸ‡¦

Ruby on Rails is plenty flexible.
I don't know of any other framework listed that has a feature like Rails Engines where you create isolate Rails apps that you can embed in other apps.

Also, all the systems of Rails are modular.

Collapse
 
dailydevtips1 profile image
Chris Bongers

Hey Andrew, I'm not a Rails guy myself so sorry if I offended anybody here.
For rails, I went with what I got of my research.
My understanding was that out of the box options were not easy to add yourself, but that is wrong as I see?

Collapse
 
josepheames profile image
Joe Eames

Hey, your free rails resource isn't actually on Rails, it's only on Ruby, the language underneath Rails. Like pointing at a JavaScript resource when listing the best React tutorial....

And can I put in a plug for the best paid resource on Rails.... The Pragmatic Studio's course. I took this course. It's not only good, but uses good educational science and hands on techniques to really help you learn.

pragmaticstudio.com/rails

Collapse
 
dailydevtips1 profile image
Chris Bongers

Hey Joe, thanks for pointing this out, you're completely right, Let me fix that actually, also hadn't seen the pragmatic one, but let me add it as a readers suggestion!

Thank you!

Collapse
 
ajoslin103 profile image
allen joslin • Edited

AdonisJS is Laravel in NodeJS -- quite smooth, the transition from Laravel couldn't be easier (I converted a large Laravel project back in 2016 to Adonis, with a bunch of search/replace for language syntax differences & some hand work on hash to objects -- it just ran)

adonisjs.com/

Collapse
 
lexiebkm profile image
Alexander B.K.

I have tried AdonisJs several months ago, but stopped to continue because I didn't see any job requirements of it. I don't know why it has not been gaining wide acceptance as an opinionated framework, unlike Laravel.
There is a Golang framework that is also heavily inspired by Laravel, including the documentation, namely Confetti : confetti-framework.com/docs/get-st...
But Confetti's documentation is not complete yet; it only provides basic features, no database, session, authentication features.

Collapse
 
dailydevtips1 profile image
Chris Bongers

That sounds interesting!

Collapse
 
nagytomka profile image
TamΓ‘s Nagy

Laravel ... It's the successor of Symfony

no

Collapse
 
dailydevtips1 profile image
Chris Bongers

As far as I'm aware Laravel is built off Symfony.. for me making it it's successor.
And I'm saying this as a Laravel dev coming from Symfony.

Collapse
 
kit_ea1 profile image
Kit_EA

I think it's a mistake to not include NestJS in this overview.
Support TypeScript from the get go and structure an app much more better than Express for example.

Collapse
 
dailydevtips1 profile image
Chris Bongers

Hey, thanks for your comment.
Nest is great, I just went with the proven frameworks for this type, if you are new, fun and new frameworks are cool, but then again nobody is hiring for those, and also they might not last.

Not saying this is the case for nest, but I could have included about a billion more frameworks.

I hope everyone picks a framework they like most of all, if that is NestJs 100% go for it, but for the general public I personally think Express or Koa are just more saught after.

Collapse
 
lexiebkm profile image
Alexander B.K.

To learn NestJs, it needs to learn TS too. I don't want to spend much time that will end up with not using it at all in a job. A lot of Node.js jobs still require Express. So I simply go back to learn Express.

Collapse
 
promikecoder2020 profile image
ProMikeCoder2020

Another popular and very fast framework for go is fiber. Btw amazing article

Collapse
 
dailydevtips1 profile image
Chris Bongers

Ah nice, haven't seen fiber around yet, will look into that one

Collapse
 
lexiebkm profile image
Alexander B.K.

What about Iris, Beego ? I want to try an opinionated framework, that provides features such as session, authentication.

Collapse
 
lexiebkm profile image
Alexander B.K.

Currently I use PHP with Laravel. I have tried Node.js with several frameworks. But my mind is still on learning Java towards J2EE/JEE or Spring.
Recently, I was interested in Go and tried some codes from its official site, esp on creating RESTful API which used Gin. It seems that Go can be my next priority, esp after knowing even Microsoft uses it for Azure infrastructure, and several big companies use it too, such as Uber, Twitter, American Express.

Collapse
 
lexiebkm profile image
Alexander B.K.

Where is Deno ? Why does it not gain wide acceptance, yet ? It seems that only very few people care for the new creation by Ryan Dahl who created Node.js.
I myself am still waiting for its wide acceptance.

Collapse
 
cyberspy profile image
Adam

"Flask: It uses Python imports to get certain aspects like a database module"
Really? That's amazing - a Python app that uses imports. Who'd have guessed?
Sorry, but this article reads like a list of things the author has heard of - but doesn't really know much about

Collapse
 
dailydevtips1 profile image
Chris Bongers

Well, Adam, you go find someone who knows 9 frameworks fully...
I'm trying my best here to find details of course I don't know all 9 and have no ambition to.
I just want to give people a good overview of the biggest and best options out there.

Collapse
 
rafed123 profile image
Rafed Muhammad Yasir

Django at top: speed is slow
Django at bottom: speed is fast
Make up your mind bruh :3

Collapse
 
jeswinsunsi profile image
Lona.exe • Edited

Django is batteries included, so it's good for creating big, fledged applications. The downside to that is even small applications can take up a lot more memory than they should. Flask is the alternative for small web apps.

Anyway, pretty great article, Chris.

Collapse
 
dailydevtips1 profile image
Chris Bongers

Thanks for this deep-dive Lona.exe (you sound like malware)
So between the two you always have an option ✌️

Collapse
 
dailydevtips1 profile image
Chris Bongers

Hey Rafed, get your confusion here haha.
It's meant to state Django is super fast, but for the small applications it might not be the fastest solution.

Collapse
 
lysofdev profile image
Esteban HernΓ‘ndez

Java Spring is huge in Enterprise.

Collapse
 
dailydevtips1 profile image
Chris Bongers

Hey Esteban, I do hear a lot of Spring going on, so good for Java.

Collapse
 
gdledsan profile image
Edmundo Sanchez

So there is djanjo and flask, but no Ruby on rails and sinatra, sad.

Collapse
 
dailydevtips1 profile image
Chris Bongers

They're is Ruby on Rails ;)

Some comments may only be visible to logged-in visitors. Sign in to view all comments.