What you are trying to solve:
When developing software for a business, it is crucial to select a programming language or a framework that is suitable for the specific needs of the business.
For instance, if you are building software for an airport, it is essential to choose a programming language that is reliable, safe, and performant, because, literally, people lives are at stack and you don’t need your software to crash or be unresponsive in the middle of a landing. On the other hand, if you are creating a simple SaaS product it may be more beneficial to prioritize productivity and choose a programming language that allows you to quickly bring your minimum viable product (MVP) to market.
Ultimately, the teck stack you choose should support and enhance the business, not hinder it. It is essential to carefully consider the specific requirements of the business and choose a programming language that aligns with them, rather than simply selecting a language that you personally enjoy working with.
Expected number of visitors:
I recently had a client who asked me to develop software for them using Node.js and the microservice architecture. When I asked why they wanted to use these specific technologies, they said they are expecting to deal with a large number of users. Upon further investigation, I discovered that their expected number of visitors for the first two years was around 2 million. (and that's me being optimistic). In my experience, the microservice architecture may not be the most efficient choice for such load and will cause more problems than it solves. I, personally, have successfully built monolithic apps that can handle a similar load without issue.
Again, the teck stack you choose should support and enhance the business, not hinder it. You really don’t have to go crazy when choosing your tech stack unless you really need to.
I was once excited to use FuseTools (now FuseOpen) as a cross-platform mobile app development tool suite for a client project. However, as I worked with it, I found myself spending an a lot of time trying to resolve issues and create integrations that could have been easily handled with an open-source package on a different framework or platform. The lack of a strong, supportive community for FuseTools ultimately discouraged me and made the project take longer than I had expected.
Again, the tech stack you choose should support and enhance the business, not hinder it. Choose the the tech stack that has strong and supportive community. It can save you a lot of time and resources.
Your Hiring Plans:
There is a story about a company in Egypt that used Scala to create a successful project. As the company began to grow, they faced challenges in hiring new team members who were proficient in Scala, as there were few individuals in Egypt with that skill set. As a result, they had to offer higher salaries in order to attract Scala talent and ensure the continued development of their product
Again, the programming language you choose should support and enhance the business, not hinder it. When selecting a programming language or a framework, It is also helpful to consider the availability of skilled professionals within your local community for easier hiring.