Startup Programming Language Conundrum

After you have your startup’s business and revenue model in place and you have done an extensive market research on whether your idea is worth following up with a product or not, you hit a major roadblock — Which programming language should I choose to code my product in?

I have been a victim of this conundrum lately, and I’m sure almost every startup would have gone through this conundrum. Some of the startups choose to go ahead with the language/framework their developers are most comfortable with and I don’t blame them. That is probably the fastest and the easiest approach to this problem. But what do you do when you are the lone developer in the startup and all you have worked on in your previous gig is .NET and C# with a little bit of JavaScript on the frontend?

I’m most comfortable with C# but I do not want to go ahead with it because I’ve had a previous experience with it(for 2 years, to be precise) and it was not all that pleasant. I do not want to get into the specifics of the experience with .NET and C# as that can be another post in itself.

Now that I’m doing my own startup and I have to select a language by myself, I want to make the right choice. But how can you make the right choice of a programming language when you haven’t had an experience with anything apart from C#? And then you have to consider other factors like — characteristics of a language, local ecosystem, and the problem domain to be solved.(Choosing the Right Programming Language for your startup.)

I started reading up answers on StackOverflow, Quora, and blogs for various programming languages and their comparisons with each other — Python, nodeJS, Java, Ruby, PHP. There were too many answers and too little time. I decided to narrow down my search to Python and nodeJS. I excluded Java because it is very much like C# and I didn’t want that. I removed Ruby and PHP also from my list because I was unable to find a good ecosystem of Ruby and PHP developers in Bangalore. There were far too few meetups on these languages. PHP had a few which were mostly CMS based.

Python had the best ecosystem of them all in Bangalore with a very active community. nodeJS, and JavaScript in general, is picking up a lot of pace. I decided to go ahead with Python, and not nodeJS, because of the following reasons:

  • The startup will have a computation heavy product, and I had read that nodeJS was not built for computation heavy applications.
  • JavaScript on the backend made me slightly apprehensive given I was the lone developer. JavaScript offers too much freedom to go wild and I knew that messy code on the backend will spell disaster. You have to tame yourself a lot when you are using JavaScript, and the lack of clearly visible OO concepts was not a good sign for me.

I built a landing page in Python/Flask, scheduled for movement to Django in the coming days. But deep down inside, I was looking for reasons to use nodeJS. I was fascinated by the increasing popularity of JavaScript and wanted to ride that wave. ‘JavaScript everywhere’ and the huge number of open source projects based on it influenced me a lot. I knew that given nodeJS has been around for quite some time, there must be some way to tame JavaScript code and also build computation intensive apps.

I was back to square one, searching for reasons to use nodeJS, when a good friend suggested Clojure and Elixir. Combine that with Paul Graham’s essay on Lisp — Beating the averages.

I was really confused a couple of hours before writing this blog. My situation was like the person who went to a buffet with so many dishes to choose from, but didn’t have a good idea of about 90% of the cuisine and didn’t like the remaining 10%. I thought to myself, ‘What do I generally do in a buffet?’. I try out all the dishes and choose the best one and gorge on that dish.

I’m going to apply the same strategy here. Since startups race against time, I’ve decided to go ahead with NodeJS for now to get the product up and running. In the meanwhile, I’ll be implementing the same/similar solution with different languages like Python, Clojure, Elixir. Eventually, in a couple of months, I’ll have a better idea of which programming language suits our use case the best. I’ll fail fast and fail forward. Since the code will still be in infant stage, shifting to a new language shouldn’t take time.

This is my first blog and I would highly appreciate any feedback on the blog. I would also love to hear similar experiences of other people.

Hacking @sharechat | Previously Worked @wyzebulb and @babajob | Developer | Love to ask and answer questions.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store