|
Inntel Hotel at Amsterdam, Zaandam
|
Table of Contents
- What is full-stack development
- Why is full-stack development necessary today
- What is wrong with full-stack development
What is full-stack development
The predominant web application development model today requires splitting
application logic in two parts:
- The front-end, running on the browser.
- The back-end, running on the server.
The front-end is typically written in JavaScript, while the back-end is
typically written in Java, Scala, C#, or some other programming language. The two ends invariably communicate with each other via REST. The choice of
JavaScript and REST is not due to any technical merit inherent in these
technologies, (there is none,) but purely due to historical accident; see
michael.gr - The Wild, Wild Web.
A web application developer can either focus on one part of the stack, or
work on both parts. Due to reasons that will be explained further down, more
often than not, web developers are asked to work on both parts
simultaneously. When this happens, it is known as full-stack development.
For the purposes of this paper, we will call full-stack development
not just this mode of work, but also this architectural style as a whole:
full-stack development is when application logic must be written both on the
server and on the client.
Full-Stack Development is a paradox, since it suggests a way of work which
is contrary to what common sense dictates. Common sense calls for
specialists each working on their own area of specialization, so one would
expect to see different developers focusing on different layers of the
stack, and nobody ever attempting something as preposterous as working on
all layers simultaneously. However, there is a technological hurdle which
renders this necessary today.
Why is full-stack development necessary today