On a daily basis, Ben Kittrell translates the jargon-filled world of technology for clients of his tech consultancy. The Words that Frustrate (WTF) series aims to offer readers some clarity in an industry dominated by techies’ confusing argot.
Spend enough time with a developer and you’re bound to hear the term “stack” thrown around.
“LAMP stack.” “ MEAN stack.” “Full-stack.” We like to stack things.
The words “stack” is actually used quite a lot in programming because it makes sense to think of a computer in layers. We have the hardware at the bottom with a very small number of things it can do on it’s own. Over time, we have written software that runs “on top” of that hardware. Each layer builds upon the last layer making the software more and more specialized for different purposes.
What’s in the stack?
When you hear the word “stack,” it’s most likely being used to describe a set of technologies that are being used to develop an application. One of the first and most popular solution stacks is called LAMP, which stands for Linux, Apache, MySql and PHP.
Linux is an operating system — it’s like the Windows of the web server world. Apache is the actual web server software that serves up code and images to web browsers like Google Chrome. MySql is a place to store information like user accounts, blog posts or products. And PHP is the programming language, which ties everything together.
One of the more modern stacks is called MEAN for Mongo, Express, Angular and Node. Again, this is a complete set of tools that can be used to write web applications.
What about a full-stack developer?
On bigger teams, you usually have roles assigned out for design, user-interface development, back-end development, database design and system administration. A full-stack developer is one who is proficient at all levels of the stack and is capable of writing an application from front to back.
The full-stack developer has become essential to tech startups that cannot afford a full team as they’re getting started. One full-stack rockstar developer can handle the load of two or three who are less experienced and more specialized.
Over the last few years the number of technologies used to develop applications has multiplied, so it’s very difficult to truly be a full-stack developer anymore. New web development tools are created and improved every day, which doesn’t even account for mobile development, machine learning or cloud infrastructure.
This only makes “stacks” more important so that, as developers, we have a reliable set of tools to help us create innovative and engaging experiences.