Table of Contents
Think about tech stack as of a cocktail which includes numerous ingredients or software components. Take proper mix of programming languages, libraries, frameworks and it tastes outstanding. Of course some of those compounds have already become well-recognised standards among software mixologists.
What is a Technology Stack?
The structure of any good cocktail stays the same, no matter what ingredients you’re mixing. Here it is:
- Front-end or client-side as a Flavouring agent that makes the difference.
- HTTP Server for Sour ingredient.
- App Server or development platform for Sweet part of the mix.
- Database Server for Base Liquor where all spirits live.
Here is a good technology stack diagram example from Upwork:
Things to Consider
Regardless of whether you are defining stack for web or mobile development party, there are some generic questions that should be answered. All of them are tied to your future software product and goals you want to achieve.
Scalability
There is a pure classic like Martini that became so popular that has acquired many variations including branded vermouth Martini Bianco. The same is true for programming languages and technologies used in development.
For example, JavaScript is the most popular programming language that gives you a wide range of frameworks, libraries runtime environments to choose from. Plus, if you take a mature technology you’ll get a strong community and developed knowledge base that will help you to upscale later.
Team Strengths
A good bartender always thinks about client’s tastes and preferences. Think about technology stack as a set of tools that should be convenient for your team members. After all, you won’t offer Pina Colada to James Bond or Old Fashioned to a young girl.
If your key members are familiar with PHP it’s a good idea to go with LAMP stack (Linux, Apache, MySQL, PHP) for back end technologies. This approach will save your time and preserve product’s quality.
Time Limits
There are two features affected by the choice of tech stack: time spent for development and overall performance speed of your app. Some spirits take more time to shut you down, others (e.g. tequila) are dangerous even in small quantities. That’s why you should keep in mind where does the party go.
To host a white-collar meeting, you may opt for WINS (Windows Server, Internet Information System, .NET, Microsoft SQL Server). There is no misreading: all participants come from the same “provider” and are designed to work together. That’s why WINS is common among large enterprises with complex, interactive websites. But it’s pricey.
The other example is MEAN (MongoDB, Express.js, AngularJS, Node.js) that allows building robust software applications with relatively low time expenses. Partly because everything in MEAN is using JavaScript which leads to close collaboration between back- and front-end specialists.
What’s your budget?
If you want to make a cocktail party it’s obviously cheaper to go with whiskey or even vodka as a base liquor. While choosing a technology stack consider programming language that it requires and therefore average salaries for full stack web developers specialists that are familiar with it.
Ruby and Ruby on Rails have recently gained popularity among startup founders but the number of specialists is relatively low, that rises average salaries and limits the choice of professionals on the market.
Long-term Run
Sorry, there is no good cocktail metaphor for this topic as well as a simple answer. You just need to check prices for technology licenses, server infrastructure fees, staff salaries, maintenance prices.
Clue: In order to cut expenses, there is an option to go with cloud-computing infrastructure like Amazon Web Services (AWS) and outstaff your programming team.
Best Technology Stack Recipes
Operating System + Web Server + Database + Programming Language
LAMP
Variations: LLMP, LNMP/LEMP, LAPP.
Common use: dynamic web sites and web applications.
- Linux (operating system)
- Apache (web server)
- MySQL or MariaDB (database management systems)
- Perl, PHP, or Python (scripting languages)
XAMPP
Common use: cross-platform web server solution.
- X (operating system)
- Apache (web server)
- MySQL or MariaDB (database)
- PHP and Perl (programming language)
WINS
Variations: WIMP, WISA.
Common use: dynamic web sites on servers.
- Windows Server (operating system)
- Internet Information Services (web server)
- .NET (software framework)
- SQL Server (database)
MEAN
Common use: dynamic web sites and web applications.
- MongoDB (database)
- Express.js
- AngularJS
- Node.js
Ruby Stack
Common use: web applications
- Apache (web server)
- Ruby onRails and RVM (Ruby Virtual Machine)
- MySQL (database)
- PHP and Ruby
Django Stack
Common use: web sites and web applications
- Linux and FreeBSD (operating system)
- Apache (web server)
- Django (web application framework)
- MySQL (database)
- Python