Tech Express Weekly: Demystifying Development #2
Which programming language is right for my startup?
A guide for non-technical founders.
Let’s be honest, life isn’t all smooth sailing as the non-technical founder of a tech startup.
Yes, you probably have charisma, great selling skills, and a decent network. But most likely any in-depth conversations about development make you feel a little anxious. So let’s make life a little easier by running through the basics of how to choose a programming language for your startup.
SCENARIO ONE: You already have a talented CTO or Technical Lead. Then they will usually have a programming language in mind (presumably the one they’re most skilled in).
SCENARIO TWO: You’re still on the hunt for a CTO. Ideally, you should choose a language that meets the needs of your startup, not simply the one your CTO feels most comfortable with. So it pays to have a rough idea of which language would be optimal for your startup before you start screening potential candidates.
We’ll avoid digging into too much technical detail, as this is the job of your (future) CTO. But here are four key points to keep in mind as you get the ball rolling.
1. Consider your programming language as a recruiting tool.
A small war is waged every time a group of developers starts to discuss the merits of one language over another. Why the controversy? Because developers identify themselves with one (or more) languages and the perceived culture it entails.
Consider your language selection not only a technical decision, but one that will affect the culture of your company and your ability to recruit.
Who are you looking to hire?
For instance, developers from the startup scene may gravitate towards trendy languages such as Node.js, Swift, and Elixir. On the other hand, developers that have had corporate experience may be centered on Java, C#, .NET, or PHP, which some consider to be a bit more ‘old-school’. Of course, these are somewhat generalisations, but something to keep in mind nonetheless.
Where are you based?
In the past, it was crucial to consider the talent pool close to your office. Now this isn’t such an issue, as vetted freelancers are becoming the norm and they eliminate any availability issues. Hiring remotely also offers you the chance to choose developers based on their experience in your desired language, rather than their ability to make it to your office every day. Plus, remote developers are likely to be more experienced, as Stack Overflow’s 2016 survey of over 50,000 developers highlights:
‘Developers with 11+ years experience are nearly twice as likely to work remote as developers with less than 5 years experience.’
If you do narrow your search to on-site developers, then be sure to do some research first. Attend local developer Meetups and scan some Facebook groups to ensure you’ll be able to find a steady stream of talent.
2. Different programming languages will affect your speed and scalability.
Like politicians with a four-year term, startups have to focus on short-term results while somehow building the foundations for long-term success. So how should you deal with the supposed trade-off between speed and scalable development?
On one hand, the aim of an MVP is to launch a basic product as soon as possible and iterate quickly after every feedback cycle. There is much debate about the perceived ‘speed’ of coding in certain languages, as the following comment from Stack Exchange User, Djheru illustrates:
‘Some languages and frameworks are designed to promote rapid application development and others are designed to promote stable, scalable architectures with large surface area. I would say that languages/frameworks like Ruby on Rails, node.js with something like Express, PHP with something like Laravel tend to fall more on the “rapid development” end of the spectrum and languages/ frameworks like Java/Spring, C#/.net fall more on the stable, scalable end.’
But one thing is for sure, experienced developers will work faster than younger developers, regardless of the language they work in.
It makes sense to lay the foundations of success early on, yet focus on keeping customers and investors happy with quick iterations. We like to call this a Scalable MVP.
“It’s been my experience that startups are more interested in a fleshed-out, complete simple application than a skeleton of a complex application.”
Djheru, Stack Exchange User (this guy’s a guru!)
The real answer to this duality of scalability and speed comes down to your business goals — do you have proof of concept and little or no pressure from investors? Then focus on a more scalable architecture and bootstrap your way to glory. On the other hand, do you need to test your business model or keep investors happy with quick updates? Then speed is of the essence, even if it means creating some structural stumbling blocks in the future.
3. Make the most out of open source code.
In this digital era, there are vast repositories (libraries) of code available online. Open Source simply means it’s free and accessible to everyone — usually through a platform such as Github. These snippets of tried-and-tested code can significantly speed up your development process. While certain technology may need to be built from the ground up, most startups can get away with harnessing some open source code. You never know, but someone may have already solved half of your problem!
This is a nice example from Microsoft employee, Shrey Desai, highlighting the breadth and strength of open source code.
So while it shouldn’t be the key condition for selecting your programming language, keep in mind that open source code may assist you in rapidly scaling your startup.
4. Keep the industry’s standard language in mind.
Last but not least, reinventing the wheel might actually give you a competitive advantage — just because your industry typically uses a certain language doesn’t mean you have to. However, be aware that there may be some advantages to adopting a language that’s typical for your industry (such as established frameworks and plenty of open source code). Most likely the functionality you need will limit you to a few languages anyway.
Another key question: What do your competitors use?
Their choice of language may offer some hints as to what could work for you — especially if they are a startup rather than an incumbent. Are there any platforms or partners you may have to integrate with? Then be sure to take this into account as well.
For some top-notch discussion about the common programming language in certain industries, take a peek at this article written by Adron Hall.
On the whole, your (future) CTO will hopefully bring a lot of expertise and insights to the table, but it pays to have an idea of the bigger picture — and avoid simply selecting the language that they feel most comfortable with. While we hope these pointers leave you feeling more comfortable with the upcoming tech negotiations, in the words of Kevin Dewalt, there’s only one thing you really have to keep in mind:
‘Great developers — not programming languages — build great products.’
Thanks for reading! This article was written by our Head of Marketing, Ella Cullen. Hailing from New Zealand, she’s fascinated by minimalistic design, sleek branding, and the freedom of remote work.
This article was originally published on our blog.
P.S. Don’t be afraid to 👏 and show us some love ;)