What Programming Language Should a Startup Choose?
If you ever want to turn a room full of engineers into a real battlefield, just say that one programming language is better than another. Mind you, there will be profanities.
Jokes aside, one of the first questions you’ll need to answer as a startup founder will be: “What is the best programming language for my startup?” I wouldn’t dare to give you a definite answer — after all, this choice has to be yours and yours only. But to help you out, I asked six experts — CEOs, CTOs, developers, and marketing managers — to share their views on this very complicated topic. Here’s what they told me:
Tom Stuart, CTO at FutureLearn:
“For a new startup, I’d say it’s best to choose people first and programming language second. Most programmers will enjoy learning a new language if given the time and the motivation, so there’s not likely to be enough benefit in deciding on a language before you have the people to use it.”
Software developers will gladly argue all day about which programming language is best for a particular application, but the intrinsic technical differences between languages matter less than broader social factors.
One of the most common reasons for a startup to choose a given language is that their founding technical team are already comfortable with it. Fluency with conventions and idioms can make a huge difference in how productive you are with a language, while the minor technical details of how it works are likely to be much less significant.
Another important consideration is the ecosystem and the community that exist around a language. For example, Python has been enthusiastically adopted by the scientific computing community, so it has an abundance of scientific libraries and tools available, which in turn makes it an obvious choice for any scientific application. Different language communities also have a different spirit and focus; Java and .NET tend to be used in the enterprise, so they have a more formal and professional tone, whereas Ruby adoption skews more towards small companies, so it has a more exploratory and experimental user community. These differences inevitably become more pronounced over time as each community attracts more like-minded people.
So when choosing a language, you’re really choosing a culture and a collection of existing tools. For example, FutureLearn chose Ruby because of the popularity of the Ruby on Rails web application framework. This has technical advantages like making it easy for us to build new functionality quickly, as well as social advantages like giving us access to the community of Ruby programmers in London who are interested in working at startups. Ruby places an emphasis on programmer happiness and Agile software development, which are things that are important to us as an organisation. One downside of Ruby is that it doesn’t run as fast as some other languages. But computer time is less important to us than the programmer time it takes to extend and maintain our application, so this is a tradeoff worth making.
For a new startup, I’d say it’s best to choose people first and programming language second. Most programmers will enjoy learning a new language if given the time and the motivation, so there’s not likely to be enough benefit in deciding on a language before you have the people to use it. If the market you’re entering already has a vibrant developer community centred on a particular programming language, it’s worth joining that community even if that language itself isn’t the fastest, newest or hottest one on the market.
Gregory Golinski, SEO specialist and programmer at YourParkingSpace:
“Both Ruby and PHP are great for startups. PHP and Laravel are powerful and cost-effective, while Ruby on Rails is easy to set up and helps speed up the development.”
I believe that together with Ruby on Rails, Ruby makes a great programming language for building a website from the ground up. It’s a very scalable technology that gives you an all-in-one solution to create a website. It’s also very logical. It was created to make perfect sense and is a developer’s dream come true. That’s why websites such as Airbnb and Twitter have been built with Ruby on Rails.
The great thing about Ruby and RoR is that you don’t have to spend an inordinate amount of time configuring files in order to get set up. The RoR framework comes with a set of conventions that help developers work faster.
Although I love Ruby and RoR, we ended up going for PHP and the Laravel framework at YourParkingSpace, as it provides the same amount of power as Ruby, yet allows for lower development and hosting costs.
Another great thing about PHP is that it’s the de facto programming language of WordPress. With PHP, a startup can customize a WordPress website to make it look totally unique. They can modify its theme and functionalities, and create plugins for it too. WordPress and PHP make a very powerful combination for startups.
To sum things up, both Ruby and PHP are great for startups. PHP and Laravel are powerful and cost-effective, while Ruby on Rails is easy to set up and helps speed up development.
Jonathan Danylko, a lifelong programmer from Columbus, OH
“Write with what’s familiar. If you’re already a C# master, it doesn’t make sense to start learning PHP just because it’s the most widespread language.”
Although the majority of the Internet is made up of ASP.NET and PHP, if you’re a startup, your primary goal is to make something fast so you can get it in front of people and solve their problems.
The four perspectives I have on this are:
- Programming languages don’t matter. In the end, all the user will see is the website. If it solves their problem, they will return and continue visiting your site.
- Programming languages do matter. If you aren’t a developer and you create a website using something like WordPress, at some point you’ll need someone to help you with future customizations. There’s always a maintenance factor to consider.
- Write with what’s familiar. If you’re already a C# master, it doesn’t make sense to start learning PHP just because it’s the most widespread language.
- Build or buy. Most content management systems out there can handle the basics of what a website needs — a blog, an online store, and so on. But if you need a less common feature, it may make more sense to create an extension or build the website from scratch.
Shoaib Rehman, lead web developer at Receptional
“For ecommerce and social networking websites, the LAMP stack will provide a good starting point. However, for search engine-like and enterprise applications, I strongly recommend using Java.”
PHP is specifically designed for web programming. It’s easy to start with, easy to use, it integrates well with MySQL, and the maintenance cost is lower compared to other high-level programming languages.
Here are the technologies I believe a startup should concentrate on depending on the type of website they want to build:
PHP is the world’s most popular programming language and ecommerce CMS. Magento, OScommerce, OpenCart, and WooCommerce are all built on it. Since the cost of maintaining a website is pretty low in case of PHP, this language truly is a great option for startups.
Social networking websites
Facebook’s technology stack consists of applications written in many languages, and PHP is one of them. If I were to develop a social network, I’d go for PHP for any backend development.
Search engine-like websites and web applications
The choice of language depends on the nature and the scale of the application. Let’s take online banking as an example. Here, security is one of the most important factors, so Java, along with other supporting technologies, would be my first choice as it provides high level security mechanisms that encrypt data and keep it safe.
So for ecommerce and social networking websites, the LAMP stack will provide a good starting point. However, for search engine-like and enterprise applications, I strongly recommend using Java.
John Rooney, digital marketing manager at Klood
“If budget, time, and resources are an issue, a pre-built open-source technology that can be easily modified is usually the best option. For well-funded startups where time and resources are less of an issue, a more bespoke option will work better.”
The choice of ecommerce technology depends on your circumstances — budget, time, resources, and functionality are all important considerations.
Magento boasts a wide range of features that can provide a complete solution thanks to a myriad of plugins and extensions.
The likes of Shopify, BigCommerce and Volusion — or even WooCommerce for WordPress — are ideal if you want more of a DIY solution, and they often offer a quicker and less expensive route to market.
This approach works across multiple sectors and industries. If budget, time, and resources are an issue, a pre-built open-source technology that can be easily modified is usually the best option. For well-funded startups where time and resources are less of an issue, a more bespoke option will work better.
Nick Kamyshan, CEO at Chanty
There is no one-size-fits-all set of programming languages. Here are some of the aspects you need to consider before making the final decision:
- Runtime environment (including operating system, hardware configuration, and the infrastructure of your future clients)
- Database type
- Data transmission (choose those programming languages that deliver the most power to network data transmission)
- Prototyping in the early stages of development (a good programming language should allow you to prototype and easily tweak the code early on)
- Speed and performance
- SaaS scalability (the programming language you end up choosing should allow you to scale your project in the later development stages)
- The right language version (the stability you’ll get depends on the language version you use (LTS, stable or dev) — for example, Perl5 or Perl6, Python 2.x or Python 3.x)
A few other factors to consider:
- The overall purpose of the language. You won’t be very successful building web pages with languages created for working with statistical data
- Programming language standardization. For example, language support of the ECMAScript specification
- Documentation, books, and forum communities dedicated to a certain language
- Frameworks and readymade solutions
- Language promotion policy. I bet some of you had to make the choice between io.js and Node.js
I know, this is a lot to chew on. If you haven’t narrowed down your choice to two or three languages yet, here’s an extra tip that should do the trick: take a look around and see what is being used to solve business problems similar to yours, and research your local community to understand what skills are widely available and ready to be tapped for talent.