Why might you want to read about tech stacks? We can think of two primary reasons:
- You’re a developer. You want to keep current. Skip right to the comparison.
- You’re not a developer. You have a digital project and want to understand what you’re getting into. Stick with us a bit. We’ll explain this in plain terms first.
Section 1. Explanation
What the heck is a tech stack?
A tech stack is a set of tools, programming languages, and technologies that work together to build digital products or solutions like websites, and mobile or web apps. Some people call them Solutions Stacks, but it’s the same thing.
Netflix is built on a tech stack. So are Airbnb, Facebook, WebMD, Wikipedia, and just about any major digital tool or app you use.
A tech stack is defined as the set of technologies an organization uses to build a web or mobile application. It is a combination of programming languages, frameworks, libraries, patterns, servers, UI/UX solutions, software, and tools used by its developers.
Why are tech stacks important?
Now that we have a good idea of what a tech stack is, you should know why they are important. The main reason is that no single tool, programming language, or software can do it all, despite their claims. You may use a simple site like Shopify for your e-commerce store, but even Shopify is a complicated tech stack made up of 19 applications, two utilities, 15 DevOps, and two business tools!
Another reason is related to the first. Just as each technology component in a tech stack has its strengths, it also has its limitations. This is good. The technology components have to play together nicely. They can often connect and share certain types of data with each other to get the job done. And just as you have a password to keep people out of your inbox, the connections used in a tech stack have specific permissions, too. They can only see or access what they have been allowed to and agreed to.
What type of developers code on tech stacks?
While tech stacks are extremely complex, at their heart, they only have two parts you need to know:
- The client-side
- The server-side
The client-side is also called the front-end. This is the part of the software you actually see and interact with (the interface). The buttons, copy, images, video, content, etc. All of this is part of the front-end. A front-end developer is someone who specializes in the client-side. They are developers who may have a graphics background or a good grasp of basic design and style.
The server-side is also called the back-end. It’s the part we don’t see. The databases, code, and internal workings of the system. A back-end developer specializes in the server-side. They understand the code on a deep level and often invent their own components. They often (but not always) understand databases as well. Do not count on a back-end developer for design. It’s not their area of focus.
There are also full-stack developers. They have the skills, experience, and knowledge to work both on the client-side and the server-side. True full-stack developers are not common — despite what their resumes might indicate! If you need to hire a full-stack developer, it’s a smart idea to have a Tech Consultant with you in the interviewing process to ensure you are asking the right questions and getting the right answers.
Section 2. Comparison
Let’s get right into it. There are several big options right now.
- M = MongoDB (a NoSQL DB)
- E = Express.js (a back-end web framework)
- A = Angular (a front-end framework)
- N = Node.js (an open-source cross-platform server)
Many developers are using the MEAN stack for rapid builds of complex, responsive web and mobile applications. A significant advantage is its open library of free modules. This frees up developers from having to invent too much.
Companies using MEAN: Accenture, Fiverr, UNIQLO, SiSense, ClickBalance, WineTracker.co
NOTE: There are other stacks with similar names (like MERN and MEVN). The difference is in the front-end framework. Instead of Angular (A), they use different ones, namely React (MERN) or VUE (MEVN).
LAMP runs hundreds of millions of websites. It is estimated that 3/4 of the internet runs on the LAMP stack. LAMP is easy to learn and develop on. Because of its ubiquity, it is easy to find LAMP developers.
LAMP stands for its components:
- L = Linux (Operating System)
- A = Apache (HTTP server)
- M = MySQL (Relational Database Management)
- P = PHP (Programming Language)
Companies using LAMP: Wikipedia, Google, WordPress, NASA, CERN, Reuters, US Navy
Companies using Node.js: LinkedIn, Über, Trello, PayPal, eBay, Netflix, GoDaddy, Walmart
Ruby on Rails (RoR)
Ruby on Rails is also used on thousands of very high-traffic websites. Ruby on Rails developers use the web framework to build a variety of websites and web applications. RoR stands for “Ruby on Rails.”
- Ruby (programming language)
- On (yes, the word ‘on’)
- Rails (Rails is a software library that extends Ruby)
Companies using RoR: Twitter, AirBNB, Basecamp, Shopify, Groupon, HULU, Kickstarter, GoodReads, Urban Dictionary
Designed for developers, ASP.NET is Microsoft’s server-side framework for creating dynamic web applications. While ASP.NET can run on Windows and Linux servers, be aware that Windows servers are better optimized for .NET. When you look for a .NET developer, make certain they are gold-certified by Microsoft. The name .NET came from a network as it was originally designed for networking technologies.
Companies using .NET: Microsoft, StackOverflow, MSN.com, SalesForce, Washington Post, Office.com, CNN Blogs