I can’t count how many times I’ve been asked about what technology stack is better or which one to choose for the next web project. The truth is that there is no such thing as technology stacks. Each one can be altered, tweaked, and upgraded over time.
The Technology Stack is just a general term for describing a combination of programming languages, software units, and low-level application that works together. It’s a sum of technologies that allows your product to do what is required of it. Whether it is a mobile or web application, there is always a tech stack behind it.
That is why I recommend thinking about technology stack as a cocktail, specifically a recipe for the cocktail because even with the right ingredients you’ll need an experienced mixologist (software development team) to make your drink taste heavenly.
Core Ingredients
Example of Tech Stack used in Altamira’s project.
There are more than 20 basic tech stacks, and various combinations in between. Pretty much like in cocktails. In case you didn’t know, there are more than a hundred ways to mix an Old Fashioned.
Let’s take a look at the basics:
Operation System – The Base Liquor.
Your software product won’t work or provide added value if it cannot be executed by means of a computer machine. Just as it wouldn’t make sense to mix cocktails if people could drink pure alcohol without disgust.
Examples: Linux, Mac OS, Windows, Windows Server.
Web Server – Sweet Ingredient.
Everybody likes sweets. The sweetness makes the cocktail appealing to a wider audience, not just a few snobs. Web Server allows your product to communicate with the outer world. It processes requests via the network protocols (typically HTTP/HTTPS), delivers those requests to the OS, and makes your products available to multiple users at once.
Examples: Apache, Nginx, Yaws, IIS.
Database Management System – Sour Ingredient.
Ugly but irreplaceable. The database is boring as an accountant, but when you have too much money/sweets, someone needs to keep an eye on them. Fortunately, DMS usually goes in a package with Operating System.
Examples: MySQL, MongoDB, Oracle, PostgreSQL, and other SQLs.
Front-end / Client Side – Flavoring Agent.
This is what beginners notice in cocktail’s taste first. But only a few understand that the flavor also consists of numerous ingredients.
Scripting and Programming Languages, Frameworks, Libraries. All of these techs work together in order to make a cocktail presentation (both taste and visual) better.
Examples: PHP, Perl, Python, JavaScript, Node.js, Ruby on Rails, etc.
Mixing Principles
Think two shots ahead
In other words, think about how you will scale your product. There is no need to take Windows for OS if you’re going to scale your product by adding new features rather than selling to businesses and embedding your app into the existing infrastructure.
Take something versatile, not exquisite, and cheap in maintenance, like Martini. The best choice is obviously open-source Linux. Good gin goes well with almost any vermouth.
Know your client
A good mixologist always takes into account the interests of the whole party. Choose programming languages and techs in accordance with the proficiency of your team players. For instance, PHP and JavaScript are widely popular these days, and there is a good chance that all your team members will be familiar with them.
Take your time
You obviously don’t want to give your lady B52, when a whole night lies ahead. But sometimes, two shots may cheer you up. App performance and time required for development differ depending on the language you choose. You can’t hire 3 PHP developers and make the process go 3x faster. An additional coder can increase development speed by no more than 70% max. Thus, don’t rush ahead, keep it simple from the start and add new features gradually.
Money
If you’re hosting a charity evening for the Top 3% wealthiest members of society, prepare good booze. Large enterprises have a solid ecosystem, so you’ll need to match their standards.
Think about WINS (100% Microsoft’s techs). All parts of WINS are made to live together. Such a stack may be a good match for B2B products. But be prepared, it costs a lot.
For a startup project better focus on LAMP Stack or Ruby Stack.
Start with the Classics
Better focus on the foundation and take widespread technologies. Opt for reliable techs like Apache and MySQL for the base. There are a strong community and vast code base, so there is a 0% chance to encounter a unique problem.
PHP and MySQL are mature web combo. It’s free to use; they are secure and efficient. There is a strong user base for support and a broad base of talents to choose from, and they’re easy to learn.
Using new programming languages like Go and Rast is definitely fun, but if you’re not a developer, you are unlikely to appreciate this kind of fun.
Best Recipes
Cheers!
This article is written by Evgeniy Bril, a Software Architect and Cocktail Lover in Altamira (formerly GBKSOFT), an outsourcing web and mobile development company. Evgeniy is a key person that makes your project scalable and easy to maintain. Thanks to his advanced and deep knowledge of innovative technologies our team can produce a project with a high level of complexity and loading.