A question I am often asked is: “What technology should I use to build a web application?”. Whether it’s for a new startup or rebuilding an existing platform, the answer always depends on a number of different factors, and which options are most suited to your startup.
There is a wider than ever range of products available which can make choosing hard, especially if you are not technical and you are relying on the advice of others. However, there are some key points you can consider to determine which is the best path for your business.
1. If you do not have anything in place already then select a mainstream technology, unless there are specific requirements that demand something bespoke or complex.
Why go mainstream? The latest technologies are cool and fun until someone leaves or you need to expand the team. Then you realise how hard it is to find genuinely good people with real experience in those technologies. And when you do find them they will cost you more than for a comparable person with mainstream technology experience. Mainstream technologies tend to be mature (part of the process of becoming mainstream), get new features regularly, and have a lot of community support if you get stuck.
2. Go with what you know. If you already have a team/tech co-founder/supplier and they have real experience with something mainstream then stick with it, again unless there are specific requirements otherwise. Building an MVP quickly, or rebuilding a large system, is difficult enough without adding in the inevitable delays and rework that happen when learning something new.
3. Choose the right technology for the right situation. It may seem strange that this comes in at number three, however the reality is that the vast majority of situations do not need something specialised. A super high volume trading system needs specific choices for its database/datastore, and a language with strong in-built support for concurrency. However, your standard web application, like the next big online marketplace for an as-yet undiscovered niche, will be built quickly enough and scale well with any of the mainstream technologies.
If you have to use some specialised technologies then try to limit the number. The more technologies and ‘moving pieces’ your application has, the longer it will take developers to understand it. These complicate the application, often making it slower to maintain and be more prone to bugs.
As with everything to do with technology, don’t over complicate it.
So what is mainstream? At SoftwareSeni we chose PHP, Java and Ruby for languages along with the popular frameworks that go with each of these, and MySQL and Postgres databases. There is also the Microsoft set of technologies (.Net/C#, SQLServer) however the licences can get expensive as you scale up.
The advantages of PHP are that it is quick to develop, and software developers are relatively easy to find and often the least expensive. PHP’s disadvantage is that inexperienced developers can easily write poor code that becomes hard to maintain. However the total cost of ownership for the system is often still lower than other technologies. PHP is an under-rated technology – many massive websites are still built on PHP.
The advantages of Java are its support in the corporate and development community, and its ability to handle complex systems and very high web traffic. The disadvantages are that it is the slowest of these for development and the resources cost more than PHP developers.
The advantages of Ruby are its speed for building the system and ability to support complicated system designs. Its disadvantages are that it is harder to find developers than PHP and Java, and they can be the most expensive resources.
There are many reasons that the ‘LAMP’ stack (Linux, Apache, MySQL, PHP) has remained popular for so long: it is fairly straight forward, development speed is fast, it is all open source, and can satisfy most system requirements.
One last piece of advice is to use any packaged software that you can. There is plenty of great software available, much of it free open source, and it will speed up your time to market. Why build a custom application when you can take a big shortcut with something that already exists?
Paul Russell is the Managing Director of softwareseni.com offshore software development company.