What is Technology Stack?
A technology stack is a collection of software products, tools, library, framework, servers, UI/UX solutions, software and programming languages used by programmer or developer to build a web or mobile-based application. Technology stack is also called as a solution stack or simply we can call it as tech stack.
This tech stack is produced when each application layer is built on top of each other and that enables programmers or developers to customize the application according to their needs. Also, any two technology stack are never alike. For example, Facebook tech stack may differ from google tech stack, Microsoft tech stack may differ from other companies tech stack.
First of all the project is chosen and based on the project, they decide which technology stack to use. And this is a very important step before building any software. Then they will select the proper framework and language and built the application.
Selecting technology stack may differ from project to project. Suppose you are going to build Enterprise Application like School Management System then you can choose Asp.net, Java for backend and vue js for frontend. Suppose your project required an extensive amount of AI and machine learning related stuff then you can choose Python as backend and any other language in frontend.
While building any application, there will be two software components:
- Client-Side (also known as frontend)
- Server Side (also known as backend)
Backend Technology Stack
Server Side or Backend technologies stack focuses on servers, application and operating systems, databases, backend programming languages. It contains the entire business logic of your product. It is not visible to the user and powers the frontend.
a) Operating System: Where software development is done. It can be Windows, Linux, Mac etc.
b) Web Server: Processes the requests given by us from an application and returns the appropriate content. It can be IIS, Nginx, Kestrel etc.
c) Database: Used for storing, managing and retrieving application. It can be MySql, MS SQL(SQL Server), Postgresql etc.
d)Backend Programming Language: Used for building application. It can be C#, Java, Python etc.
Some popular programming language and its Framework
|PHP||Laravel, Zend, Code Igniter|
|Java||Spark, Apache Wicket|
Some few backend tech stacks are as follows:
1)LAMP Stack(Linux,Apache,MariaDB,Php and Perl)
This stack is made up Linux(ie. a OS),Apache( Http Server),MySQL(database),Php(Server Side Programming).Generally used for building an application using PHP server-side language.
2)XAMP Stack(Cross-Platform (X), Apache (A), MariaDB (M), PHP (P) and Perl (P))
XAMPP is cross-platform(X), meaning it operates equally well on Linux, Windows and Mac. It includes Apache Http Server, MariaDB as a database, Php and Perl as Server-Side Language
3)WINS Stack(Windows Internet Naming Service)
It includes Windows Server, Internet Information Services, .Net, SQL Server). Generally used for building application using C# programming language.
Front-End Technology Stack
HTML: It is HyperText Markup Language and responsible for content structuring and placing.
CSS: It is a style sheet language. It essentially explains how the HTML-written document should appear on the user's screen. It contains colours, fonts, background materials, design features, etc.
Most of the popular CSS Framework used in the Frontend Development are BootStrap, Foundation, Materialize, Bulma, Pure CSS, Stylus etc.
Fig: Popular CSS Framework
How to Choose Right Technology Stack?
Choosing the right technology stack for your project can appear like a challenging job with this multitude of web development tools and platforms and stacks. Choosing the right approach of technology stack depends on the following factors.
a) Project Size and Types
Choosing the right technology stack highly depends on your project size and types.
Small Project Size: Small Project is those project which required an individual or small team typically completed within a week. In Small Project mostly emphasis is given on "Getting the things done".Ex: Portfolio Page is a small project for this you can use a simpler ready-made solution such as wix.com, wordpress.com etc.
Large Project Size: Large Project is those project which required large teams working on them and is an ongoing project. Ex: Building Social Networking Sites like Facebook, falls under this type of project. It has to be highly scalable, maintainable and should have high speed as well. It uses a different combination of tools, techniques and languages etc.
Medium Project Size: Medium Project is those project which generally requires less team than a large project and more than a small project.Ex: Enterprise Application like School Management System, Payroll System etc fall under this. It will mainly stick on one technology stack and completes the project. Example can use MEAN stack or LAMP stack.
b)Time to Market
In commerce, time to market(TTM) is the length of time the product is designed and developed to take until it is available for sale. If that the case then it depends on how much developers expertise are working on the project is one of the main factors.How well developers are familiar with the tools and language used in the technology stack if familiar then TTM is on less time frame.
c)Development and maintenance cost
Technology stack directly affects the cost of development. It includes developers salaries, maintenance cost, hosting product cost, software licensing cost(some tools and frameworks are open-source and required no cost and some are the proprietary source and required cost), distribution cost. Suppose the cost of production is high, then a suitable price for the product cannot be set in the market. But if the cost of production is not high, can set a suitable price.This cost of production and maintenance also differs from one technology stack to other technology stacks.
Also the longer the code, the harder it is to process and maintain the code so the code has to be short and clear which may reduce development and maintenance time and cost.
If the better and the standard the code is written and the better the system is designed, the easier it will be to adapt it as the business grows. And later at the time of maintenance also any developers will understand wisely written code and will be easier for maintenance.
Products need a well-defined scalability matrix, which should work well vertically or horizontally.
Vertical Scaling: Means adding more features in a product.
Horizontal Scaling: Means increasing the capacity on running the product on more traffic.
When your product begins to grow, performance is essential. To get better performance, you must focus on selecting that technology stack which can be highly scalable.
Whatever the product you are building, in its beginning it will be simple. But when you start adding modules and traffic on the product increases then your product may be a burden. So be wise while choosing the better technology stack.
Security Level of different technology stack may differ. So, wisely choose the technology stack.
What are the benefit of Choosing Right Technology Stack ?
Some of the benefits of choosing the right technology stack are as follows:
1) Developer will be able to code easily and fastly and this will surely reduce the development cost.
2) The developer will find easy for maintaining the code, fixing the bugs and performance issues and this will surely reduce the maintenance cost.
3) Product baseline will be strong and can be easier to scalable further.
4) The product will be secure.
5) Product may handle the required traffic.
What are the drawback of choosing Wrong Technology Stack?
Some of the drawbacks of choosing the wrong stack are as follows:
1) You may have trouble finding skilled developers.
2) Your developer may find difficult of getting appropriate support for the problem from sites like StackOverflow, Reddit and many more. And will be hard to learn and adopt.
3) You may find difficult to switch to other technology stacks.
4) Your product may face compatibility problem.
5) Your product may not be in a stable state.
6) You may find difficult to expand your product.
More Coming Soon