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. 🙏
Top comments (22)
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.
Excellent summary.
good and shot explanation 👏👍🏽
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 😅
Technically the DB is "Data". Backend on the other hand is what interacts with this data and provides it to the frontend 😁
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.
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.
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 😀
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 …
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...
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).
In our experience frontend developers tend to be cleaner and happier than backend developers who tend to be darker and have that metal look (long beards and hairs).
Something similar to our t-shirts:
frontend backend developer t-shirt
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.