The white paper provides a selection framework for shortlisting of technology stacks for web development. This paper compares six different technology stacks, which include LAMP, MEAN, WISA, WIMP, JAVA, and SMACK. These stacks are compared against various parameters and NFRs so that one can arrive at the best-suited technology stack for the solution.
A web framework makes it easier to develop an application. Most applications have a standard set of functionalities (like data validation, sessions, security, etc.) and a framework prevents you from reinventing the wheel each time you create an application.
LAMP stack, WISA stack, Java stack, and the MEAN stack are the most popular, but there are countless others and important distinctions and trade-offs among the available technology stacks. For instance, free isn’t always cheaper, and feature-rich doesn’t always mean more functionality. The aim of this article to compare the six critical technology stacks available and help answer the question: “What technology stack is best for my application?”
This section provides the guidelines for selecting the technology stack for web development. This explains various critical factors that one must consider before choosing a technology stack:
Kind of Project:
The kind of project is always a determinant in choosing the right technology stack. In smaller projects, when one needs to deliver in the shortest time, then simple technologies can be leveraged; especially if the requirement entails a working prototype that has been delivered within a strict timeline. When the project is mid-size, then it would need a combination of programming languages because such projects need various functionalities and seamless integrations across multiple platforms. The application includes e-commerce, financial industry, major government projects, etc. In such cases, PHP, Python, Java, and C# are the commonly leveraged programming languages.
In complex projects, one needs to create web applications with several features and functionality. In this scenario also, there is a need to work with several programming languages and making use of different web technologies and frameworks. Examples of such projects include e-commerce, marketplaces social networks etc. Processing heavy loads need to rely on several programming languages and frameworks. One must leverage a web stack that reduces latency and makes the application highly responsive. While finalising the size of the application, it is imperative to re-think the goals and objectives. This is because the impact of technologies stack leveraged would directly influence goals and objectives of the business.
Competencies and Skills
A critical aspect to consider is the level of expertise within the team working with various technology stacks. Even after deciding on the technology stack, remember, the job doesn’t end as the team will have to maintain the application in the support phase later. The reason expertise is so important is that the developer may trudge along with issues when they are writing code. Finally, to find a resolution, the team must be experienced because the project runs on a tight deadline.
In case you are in the process of choosing a technology stack, make sure it has a huge developer community and adequate documentation. Analyzing GitHub and Stack Overflow would help understand the strength of the developer community of different programming languages and frameworks. Some technology stacks call for Test Driven Development – TDD approach where you’ve got to test first and code later. TDD ensures the project speed and quality. The development team must be competent and expert to deal with TDD methodology.
Time to Market
Planning a product launch and finishing product on time is always a herculean effort. In case if the project consumes a lot of time developing and testing the application, be mindful there is a high probability you will not make for the launch date. Time to market heavily depends on the technology stack you choose for the web application.
- Innovative solutions – In case you stumble upon a technology stack that provides a unique solution for adding functionality to the application, then you should consider leveraging. An example will be Ruby on Rails framework with its efficient open-source libraries as it helps in reducing time to market.
- Third-party integrations – In-case the application needs certain features from third-party solutions, then choose a technology stack that allows for seamless integration. This helps to easily add the features and functions that are needed by the application.
- Developer expertise – Developer expertise will directly influence the time to market. If you have an efficient team with a strong knowledge base, then you can release the product on time, free of bugs.
Scalability aspects si the ability of the system to handle the workload. As the number of users increases, the application must be able to handle the user growth, including the occasional spikes. The development team should choose a technology stack that will accommodate future business growth. Horizontal scaling is deploying the solution on several servers simultaneously to handle the influx of traffic. Vertical scaling is related to adding more processors and memory to process handle load.
Before starting the application development, build a development team for the Minimum Viable Product – MVP. MVP is a core set of deliverables needed for creating the web application. This is based on the highest return investment and lowest risk factor. While considering all the parameters in choosing the web stack consider the MVP first, and then grow from there.
In case the code is too lengthy and complicated, then developers would need to spend a lot of time trying to maintain it routinely; and if the code base is too concise, then debugging it becomes an head-ache. So, it is critical to select a language that creates easily maintainable and reusable codes.
The software architecture supports portability, scalability, and reusability of the application, and it influences both the dynamic and static component configurations. Maintenance of the software must be done even when the applications are scaled, when user load increases, when porting the application and when capabilities get more dynamic.
While most popular frameworks and tools are free and open-source, one may have to subscribe to get access to the advanced features and support.
Depending on the technology stack that you want to leverage, one will have to get its license. So, its key to weigh the balance of the cost of a stack vs. the utilities of its features before making the final selection. The cost for the infrastructure is also a critical aspect. In short, if costs cutting is a key aspect, then one must choose open source frameoworks & technologies.
Technology Stack: Reference Card
You can download the table here
Provide your comments below
If you loved this story, do join our Telegram Community.
Also, you can write for us and be one of the 500+ experts who have contributed stories at AIM. Share your nominations here.
Sameer Paradkar is a part of the AIM Writers Programme. He is an Enterprise Architect with 15+ years of extensive experience in the ICT industry which spans across Consulting, Product Development and Systems Integration. He has worked on multiple architecture transformation and modernisation engagements in the US, UK, Europe, Asia Pacific and Middle East Regions.