DEV Community

Sloan
Sloan

Posted on

What's the difference between Front-end and Back-end development?

This is an anonymous post sent in by a member who does not want their name disclosed. Please be thoughtful with your responses, as these are usually tough posts to write. Email sloan@dev.to if you'd like to leave an anonymous comment or if you want to ask your own anonymous question.


I'm brand new to development and am trying to understand the difference between front-end and back-end development.

I think I kinda understand that front-end is what the user sees and back-end is how the information is retrieved, but I imagine there's a bit more to it than that. I would really appreciate hearing others' thoughts and explanations on this.

Analogies and examples would be very welcomed! Thank you all very much. 🙏

Discussion (19)

Collapse
kayis profile image
K (he/him)

They are both terms with historical baggage.

Back in the days, when people started to make websites, there was just backend development.

Scripting languages like Perl or PHP would receive a request from a browser, gather data from a database, and render an HTML file they would send back to the browser.

Then came the rise of JavaScript, and people would build parts of such applications inside the browser. More and more work would end up on the browser side of things, and one day, people would talk about frontend work. Where you would gather data from the server via an HTTP API, and the server wouldn't have to bother with HTML rendering anymore.

From then on, people would talk about "frontend development" when they meant devs that would somehow create js/html/CSS code to build a user interface in a browser.

And people would talk about "backend development" for everything that happened on the server side of development. It could be PHP, Python, Go, Ruby, JavaScript, C#, Java, or whatever.

Now, " frontends " are also built on platforms other than the web, like mobile apps for Android and iOS or desktop apps written in languages like JavaScript. I put it in quotes because, technically, these are all frontends for something. Yet, when you apply for a job, they are usually called "mobile development" or "native development" or something.

You can often split a stack in front and backend, while neither of these parts is web related. Modern compilers, for example, have frontends and backends. For the code, they accept (C, Rust, etc.) and the binaries they emit (Linux, Windows, etc.).

It's a bit like with "API"; every interface you access programmatically is an "API" in some way, but most of the time, when you read API in a job description, they mean an HTTP-based API like REST or GraphQL.

So, context is essential here.

Collapse
alco profile image
Jakub Stibůrek

Excellent summary.

Collapse
johnkey profile image
INDERA SHAH

good and shot explanation 👏👍🏽

Collapse
terabytetiger profile image
Tyler V. (he/him)

I would summarize it as front-end is the interface that the user sees, back-end is the database and everything that happens outside of the interface that the user sees.

When you get into specifics, sorting specific things into one or the other can be different depending on who you ask 😅

Collapse
joelbonetr profile image
JoelBonetR

Technically the DB is "Data". Backend on the other hand is what interacts with this data and provides it to the frontend 😁

Collapse
jesusantguerrero profile image
Jesus Guerrero • Edited on

A website or web app runs in the server-client architecture, that means that there's a machine that provide services(server) and other that receives(client)

Any code running on the server side is backend(storing data, API Endpoints, sensitive business logic, background jobs, etc).

Any code running on the browser is frontend (html, css, js, web workers) the traditional "what the user sees" is not longer accurate now frontend can manage routing, background services, caching and much more.

Collapse
xanderyzwich profile image
Corey McCarty

These get a little bit weird to define in different places. The heart of the matter typically comes down to back-end development being data centered, and front-end development is typically centered around the display of information to the user. The weird parts come when the front-end code is doing a lot of data manipulation (and there may be a role just doing this) or the back-end code is doing things to directly control the display (less common).

Collapse
andrewbaisden profile image
Andrew Baisden

There have already been several excellent answers, so here is my view.

The client is typically regarded as the frontend in the client-server approach, whereas the server is usually considered the backend. JavaScript frameworks like React run client-side, and you'd employ languages such as HTML, CSS, and JavaScript.

The server side is the back-end, where you will find your database, API, and hosting. Some back-end languages are Python, Go, Java etc...

Collapse
deadlock profile image
Satyajit Roy

There are excellent comments here explaining the both. Which kind of summarized the topic very well. Let me add something additional to it

Frontend Development: When we talk about this, we usually think of end-user. How would you want you consumer to consume you application or offering. In layman terms Frontend Development is something which you use to attract your consumer. You can say that this is you Marketing Team, who are dedicated to sell your product to the enduser.

Backend Development: is the backbone of your offering. Which provides the actual functionality to your offering. This is sometime very hardcore in nature as it has to do the actual work, requested by the enduser using your Frontend offering.

In today's world everything is pretty much divided into these too broad spectrums. There are tons of more categorization implemented to feed the needs of today's market demand.

Don't get me wrong when I say that Backend Development is hardcore has to do every functionality your offering provides. Today Frontend is also very much involved in performance, offerings, functionality etc. No way one is superior or inferior.

People decided which way to go with the carrier based on their interest and passion.

Collapse
louisefindlay23 profile image
Louise

Front-end is generally code that you write for the browser: the structure of webpages (HTML), design of webpages (CSS) and interactive elements (JS).

Back-end is generally application logic so a database (if you need one) and other functions such as file uploading and user accounts etc.

Collapse
perssondennis profile image
Dennis Persson

I previously comoared frontend and backend to the human body. Not sure if it will be helpful, but at least it could be a bi fun to read. You can read it here 😀

Collapse
polterguy profile image
Thomas Hansen

Frontend runs on users devices and is typically created as iPhone apps, Angular apps, or JavaScript apps. Backend runs on server and typically communicates with frontend using web standards.

Start with frontend. Once you feel comfortable with frontend move to backend …

Collapse
wjplatformer profile image
Wj

Front end is What you see outside, backend is what you see inside. So, given an example of a website.

Now, the front end is the HTML, CSS and JS. Here's the fun part, if you create a web server using python to host the website (recommend starting with Flask Python module), and you add a database, that is the backend.

You can then use things such as HTTP Requests to let's say store stuff on a database, or generate some sort of AI, or complicated stuff. Data are sent to the backend to sort them out more efficiently.

Collapse
yasminadavis profile image
YasminaDavis

What is harder front-end or backend?
دعاء لرجوع الحبيب بعد الفراق

Collapse
charli_martell profile image
Carlos Eduardo Rueda Martell

Front-end development generally refers to the process of creating the user interface and visual design of a website or application. This can include everything from designing the overall look and feel of the site, to coding individual elements like buttons and forms.

Back-end development, on the other hand, focuses on the server-side components of a website or application. This includes things like database design and management, server administration, and security. While back-end development is often invisible to users, it's essential for keeping everything running smoothly.

So, in a nutshell, front-end development websites is all about the graphical interface while back-end development is more focused on the functionality of the site. Both are important in their own ways and most web developers have skills in both areas. However, some developers may specialize more in one area or the other.

Collapse
phlash profile image
Phil Ashby

I'll try for humour:

"If you get asked to change the colour of something, it's front-end development" 😄

Collapse
quooston__be35d28bae9b9b7 profile image
Quooston

All the hippies are on the front end. They, like, totally “get” the user, man. The “hard core programmers” are at the backend. They’re all square and serious most of the time. Best to be both 😀

Collapse
greenreader9 profile image
Greenreader9

I’ll have the shortest response :)

FRONTEND: What the browser sees (HTML, CSS, JS)

BACKEND: What the server sees (Ruby, PHP, Perl)

Collapse
bobbyiliev profile image
Bobby Iliev

In addition to what has been mentioned, here are some very helpful roadmaps for both:

roadmap.sh/backend

roadmap.sh/frontend