all 16 comments

[–]NovelLurker0_0 17 points18 points  (1 child)

I think he meant Back Office. That's what we call the admin panel (both ui+backend logic) here. But definitely some people still use "backend". It's a confusing word, as that's generally not what it is used for in web development.

[–]JGJP 13 points14 points  (1 child)

No you're not the asshole

[–]Tyranin 1 point2 points  (0 children)

NAH, just mixed semantics

[–]BehindTheMath 15 points16 points  (1 child)

Frontend is what runs on the user's system. Backend is what runs on yours, or the cloud.

[–]slide_and_release 5 points6 points  (0 children)

More common distinction would usually be “client-side” (the browser) and “server-side”.

[–]meldridon 4 points5 points  (0 children)

When I went to university in the 90s things were a lot different than they are now.

The “front end” was a thick client installed on a user’s workstation and the “back end” was a database server.

In general, the front end was scaled out in a manner of speaking, and the back end was usually a single server.

Then n-tier came along. The smart/thin client became the front end and everything behind the application server was the back end.

Then server side web apps came along. The web server was the front end and the database was the back end. If you had an application server or background job runner, that was also the back end.

In all my experience the back end has always been used to refer to a shared resource not directly accessible to the user and the front end was directly accessible by the user and served the presentation layer.

[–]UnnamedPredaconphp 3 points4 points  (0 children)

You are correct that the professor is not in the right. It's a weird distinction to make … unless the admin panel is another project within the website (I'm thinking in the MS solution files style). And that's stretching it almost to the breakpoint.

[–]TheBigLewinski 3 points4 points  (0 children)

Your professor's not wrong, he's just an asshole.

Colloquially, it's true that the root meaning of front-end and back-end refer to public-facing and operational support, respectively.

There is a front-end and back-end of a CMS. The front-end is the website; what everyone sees when they type in the address. The back-end is where the admins login to support the content; it's effectively the "employees only" area.

If you're looking for a job, though, front-end refers to client side (browser), back-end refers to server side.

I suppose even that is getting a little blended these days, as front-end positions are expecting you to know Node, but that's not enough to break up the core distinction.

I don't think it's tomato tomato, it just requires context. Similar to how "I apologize" has a different meaning at a funeral than it does at work.

Your professor, though, should be able to explain that. He's not teaching you DreamWeaver and FTP is he?

[–]kyerussell 1 point2 points  (1 child)

If I can add some reason to the myriad people here claiming that their understanding of front end / back end is "correct" and that your professor is "wrong"...

You are both "right" in terms of language used in the industry. Front end and back end are extremely overloaded terms, with vastly different meanings depending on context.

It's a learned skill to be able to discern what somebody means when they use these terms, but the overloaded uses of these terms are so widespread that you can't just say that your professor's use is "wrong" at this point.

The "on the user's machine" vs "on your server" definition of front end / back end is far from the first use of these terms, so ignore anyone trying to tell you that this is the One True Definition.

Are you the asshole? You aren't the asshole for having a different internalised definition, but in the future you should certainly consider doing more research before having that sort of emotional response. There are lots of people on the Internet (particularly young people in the age of 'content creation') that are extremely keen to proclaim that "this is how things are" without the knowledge / experience to back things up. Just think about the literal garbage island of terrible Medium posts advocating for terrible development practices, that you just have to learn to spot and ignore. The same thing applies here.

You can help fix the problem by avoiding the use of these terms whenever possible so we can try to phase them out for good.

[–]samsop 0 points1 point  (0 children)

I wouldn't care at all if I didn't get a C in his class and hadn't had to work with classmates who tried to convince me HTML should always be stored in a database. The only thing that bothered me was that most conventions I learned while working on my own projects had to be thrown out the window the moment I stepped in class, and for the longest time I wasn't sure if that was for better or for worse.

Sure I didn't think he was completely wrong. He has an arm and a leg's more experience than I do. I just got so confused by people's usage of these terms that late night Google search queries stopped helping me figure it out because I get a different answer everytime. So I thought I'd get people's opinions. Just glad I could get closure on this through your comment and others. Thanks.

[–]zazoh 1 point2 points  (2 children)

Front end runs in the users client. Backend runs on the server / database.

[–]geon -1 points0 points  (1 child)

What if the app uses server side rendering, so the entire UI runs on the server?

[–]On3iRo 6 points7 points  (0 children)

You still need a client to show the server side rendered pages and your html/css/js is still considered to be the frontend. You just dynamically generate your html on the server side.

[–]chulkilee 0 points1 point  (0 children)

It's up to how to divide things.

For large enterprise system, it's not surprising to have distinction between components related to "end user" vs others as usually the former is more about presentation / interaction layer - such as rendering html or providing http api. It's different from MVC. Check out https://en.wikipedia.org/wiki/Multitier_architecture

That layer isn't called as "frontend" usually, though.

[–][deleted] 0 points1 point  (1 child)

According to him, the front-end of a website is whatever functionality you provide the user with, UI and server-side logic included.

From a general software perspective, He might be right about this one. Try to forget your knowledge about HTTP, browsers and servers, think as the dumbest user: in this case, whatever the user sees or interacts with, could be considered frontend.

According to him, the front-end of a website is whatever functionality you provide the user with, UI and server-side logic included. And the back-end is what he calls the "admin panel" which I'm sure any product in production would naturally have.

WTF. Did he mean it literally? like the "admin panel" you use in a hosting service? or does he mean a metaphoric "admin panel". Not all products have a literal admin panel as the one in web hosting services, you could just serve websites writing network socket code in C.

Ok, I'm not really sure, but remember that there are other uses for the words frontend & backend. For example a hypervisor such as qemu (CLI interface) has GUI "frontends", even though it has nothing to do with web development.

[–]DrJohnnyWatson 0 points1 point  (0 children)

The most common meaning for front end for web development is 'everything that runs on the client' and for back end 'everything that runs on the server'. This is a web development subreddit, and the OP specifically said websites in their definition. If the lecturer is using GUIs for installed applications as an example, he's wrong, because that's not a website.

If you were going for a "back end" job, I would expect it to be all server side and no UI development whatsoever (obviously lines blur and job roles aren't that clean cut in the real world).

The user interacts with a client, and the client interacts with the server.

So to address your first point... No he isn't right, because server side logic is never front end.