What is an Application ?
With every appliance in our life going smart it is hard to say how many types of applications we interact with every day. It’s not just web or mobile applications nowadays. For a consumer it is more about a service which they subscribe to and then interact with using any device where they are logged-in. Smart TV, smart watch, mobile, tablet or laptop. Truly cross platform and synced in real time. An application no longer refers to a product or business. It is the service which can be consumed using one of the applications developed to provide that service.
Choosing a tech stack
This makes tech stack selection a challenge. It is no longer as simple as choosing the LAMP stack and calling it a day. There are so many unknowns in the beginning like how many platforms or formfactor you want to support, how do you plan to scale in future, what kind of data will the application be handling in future. Although everything can be handled when the time comes it is always better to start with something which can adapt to these unknowns rather than forcing you to restart from scratch.
Abstraction is the key here, even with so many unknowns you know that the stack will need these things:
- softwares to run at client devices (Frontend)
- softwares that communicates with frontend and runs business logic (Backend)
- ways to store and retrieve data specific to service and user (Database)
- Infrastructure or Platform to run backend and database
Myth of Full Stack
With this definition of tech stack it can no way be visualised as, well, a stack. It’s more of a mesh or network of technologies working together to provide a service to users. A true full stack engineer, developer or agency kind of becomes a mythical creature in that sense. To say that you are a full stack developer it should be mandatory to mention the stack as well.
Tech Stack Generator
Generalising an application development stack or even comparing pros and cons of different tech stacks seems like a pointless discussion. With so many variables and use cases, plus dependency on previous decisions and availability of resources it is hard to justify any tech stack with full confidence. The only thing that matters is the service is up and running as reliably as it can. With that in mind let me give you the tech stack generator, providing you with options to select from. Each one is better than the other and if you are lucky you might hit a well known stack bingo.