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’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.
- The startup will have a computation heavy product, and I had read that nodeJS was not built for computation heavy applications.
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.