Front End vs. Back End

Curt Corginia
6 min readOct 1, 2021

--

Photo by Namroud Gorguis on Unsplash. Alexa Goins of Kenzie Academy refers to front end and back end developers as “two sides of a cassette tape.” This picture is for anyone else who has no idea what the heck a cassette tape is :)

When I looked up “Front End vs. Back End” on Google, the first result was this article by Kenzie Academy — I was not a huge fan of it, to be honest. Though it starts to get into useful technical information and break down terms like static web page and dynamic webpage, it breaks its flow with a shameless advertisement and then devolves into unhelpful analogies.

At CorgiCorporation, we are dedicated to maintaining this blog and will never advertise our products here. This is because we do not have any products.

In all seriousness, the article is fine. It defines front end as the client side of an application, built with the users in mind, and it defines back end as the side of a website users can’t see. A static website, it goes on to explain, is a great way to showcase front end skills. A dynamic website like Facebook or Netflix, on the other hand, requires its own customized backend.

This Github tutorial is a pretty good example of a Github Pages website — Github Pages, in turn, is a good example of a static website. It has its own UI. It looks nice. You cannot use this website for something complex, like making bank transactions or accessing a database, but it was hosted for free. You can host your own website as well with something more than a free Github account, but you will not get to do your own backend development on it.

After the events of “Breaking Bad” and “El Camino,” Badger found a lucrative job doing voice-overs for Github while Skinny Pete became a successful pianist.

My motivation for writing this is the comment below:

I hope this is the last time I ever reference the comment above, but I reserve the right to screenshot mean messages.

In another blog post, I wrote that Software is BROAD. You can be a frontend developer turning wireframes into a web application. You can be a backend engineer who works very closely with hardware. The comment mostly responds to my second claim that you can be a backend engineer who works very closely with hardware. That is, from the additional research I have done, incorrect. Below is another commenter with a more tactful response.

This is correct

…And with that, I could probably end the post and then put this debate to rest once and for all. In college, engineer recruiters used to love asking if we preferred back end work or front end work. The honest response is that many of us were exposed to neither, unless it was through industry work or outside projects. PluralSight, with a more technical explanation of the topic, defines front end development as the art of creating sites and web applications that render on the client-side and back end development as making these apps render server-side. These definitions agree with those above. Our college coursework consisted of C++, data structure fundamentals, algorithms, and C++ projects that involved “console tasks” like solving a Sudoku, or Huffman encoding.

Why This Topic Deserves a Longer Discussion

Me: I think middleware is a nebulous and overloaded term
Smack: Any epistemological debate will ultimately lead to ‘is a hotdog a sandwich?’

Someone on StackOverflow asked, “Why does front end only pertain to web development?” This was a top response.

If I wanted to do front end development, I might use a tool like Vue.js on a static site like Github Pages. This would be front end, end of discussion. Most people in the industry would agree with this, and most people would certainly not characterize it as back end.

If I were to work on a corporate project that combined Spring Boot and Vue.js, then Spring Boot (a Java tool) would be the back end side. This, I would say, is also fairly black and white.

But what if I wanted to set up a client and server using ZeroMQ? I would write a server side and a client side, and maybe it would not involve HTTP or anything “web” at all. Would the client be my front end, and would the server be my back end? I would say “no,” but that it is at least a little bit of a gray area. The danger here is that many HR representatives and hiring managers go hunting for front end developers or back end developers. If they ask a pool of candidates for people with front end experience, they are likely thinking of things like React, Vue, or Angular.

If you two do not agree on the definition, then you both could waste a serious amount of time.

A Wikipedia article that opens the flood gates for more definitions:

An Aside About Middleware

Middleware is, according to Wikipedia, “a type of computer software that provides services to software applications beyond those available from the operating system. It can be described as “software glue.”

A good example of middleware is Connect middleware, which Express uses (source).

From the Express site:

Express is a routing and middleware web framework that has minimal functionality of its own: An Express application is essentially a series of middleware function calls.

Middleware functions are functions that have access to the request object (req), the response object (res), and the next middleware function in the application’s request-response cycle. The next middleware function is commonly denoted by a variable named next.

Middleware functions can perform the following tasks:

  • Execute any code.
  • Make changes to the request and the response objects.
  • End the request-response cycle.
  • Call the next middleware function in the stack.

The Web Matters

Photo by Robert Anasch on Unsplash. The scary thing about spiderwebs is that they usually have spiders in them.

David Gilbertson is a hero of mine, which might have made him cringe if he had read this…this is the same guy who wrote about treating himself to a shopping trolley ride down the hill after he got his first programming job. David Gilbertson writes very accessible, light-hearted articles, which makes it a little bit ironic that his most popular article is called “I’m harvesting credit card numbers and passwords from your site.”

In college, at least for me, they barely exposed us to the “web side” at all. Basic web development was an elective. JavaScript was not mandatory. Whether it is good to start new learners with web development is the subject of much debate, and a lot of it boils down to comparing a traditional computer science education to a more rapid-paced, hands-on one.

But I do think our major may have saved a lot of people who dropped out, if they had only been exposed to web technologies earlier in the process.

Web products are alive. You can look at them. You can share them. If you write some JavaScript then you get to see it working in the console, and you get to see your work come to life in the form of GET calls, website interaction, formatting changes. The same argument could be made for much of coding in general — you could say that the joy of seeing something working is universal. But there is still something about web that feels alive, if that makes sense.

Closing Sentence

Software is BROAD. You can be a frontend developer who turns wireframes into a working web application. You can be an engineer who works very closely with hardware.

There. That is what the sentences should have been.

--

--

Curt Corginia
Curt Corginia

Written by Curt Corginia

Founder, CEO, CTO, COO, and janitor at a company I made up called CORGICorporation

No responses yet