A question I hear from many non-technical co-founders or founders is what programming language we should use for our startup. And the interesting thing here is actually if you have to ask, it’s probably not that important. Because the truth is great software has been developed in nearly all programming languages. Trust me there are great applications made in PHP, microsoft.net, node.js and so forth and of course there is pros and cons of these languages but in reality all these languages have made great progress. So, if you’re not technical you shouldn’t worry that much about it because you can actually make great things in each language. Let’s go into more details and look at some of the pros and cons so we can do navigation a little better in this environment.
The most important point and takeaway here is, it doesn’t matter that much if you pick PHP or dot. Net, of course there are some consequences to face in the long run but whatever language you pick is going to work out for you and this is what I see in every startup that it actually works out anyway because they all are pretty good.
Suppose you make a blog post on iPhone Vs. Android, people have so strong opinions about it that if you make a post on the wrong side you’re going to get so much hatred. If there is a topic that has even stronger opinions is programming languages. So by posting this blog all the technical guys are probably going to hate me little bit because I’m going to bash probably all the languages. People, who are expert in one of the programming languages, are so much obsessed with the language that they don’t like hearing bad about their own programming language. So people who are an expert in a programming language they are so strongly opinionated about it and that’s truth to the whole community. And you can find people among those, so that’s just a word of warning.
So if you are going to make an app, you actually have a pretty simple life because it is simple. If you have got to make iOS app for instance for iPhone or iPad, you have to do it with swift. If you are doing Android app, you have to do it in Java and if you do it for Windows Phone you do it with dot. Net. It’s that simple because that’s how you do so for apps. But the real problem here is that gets more problematic when putting it to work. So when you make an app what you won’t do is have all the logic on the app itself because that gives a couple of problems. Let’s say you want to have both an iOS and Android app. You have to make all the logic in each app or even worse if you also want the web app in future. Then you have to put the logic in three places. But instead, make a shared API and this API is basically an interface both the website and apps can use, while it’s pretty simple to answer what language to write your apps. The API can be programmed in everything, and that’s because the API is a backend. For the backend nearly all programming languages can be used in some extension and what I want to do here is to go over the most public languages and I just want to say that this is so much religion and I actually do fear posting this article because these fanboys from different languages are so obsessed with their own languages and hate everything else.
But let’s just take the most popular one that is PHP and it’s a great language, has a lot of open source code used by many big companies. However it has a lot of questionable quality as well. You find a random PHP developer you often get pretty bad code because it’s not that structured and it’s often their first language many developers make. So the general code quality is pretty bad and that just gives a lot of growing pains when you grow and that’s what I’ve seen in many different customers if they didn’t have a really good developer starting out. And that’s just not good for enterprise and scaling solutions in long-term perspective. So it requires some really good people.
And also there is legacy in the code a lot of stupid things in the language itself, which just makes it little bit slow to use. So that is a problem but overall I’d say PHP is a good language and it’s a good solid solution. Systems like WordPress and Magento are made in PHP and it’s not going away anytime soon so PHP is a pretty good option actually.
Python is a very simple programming language and is used a lot recently especially both in websites, offline and even in university. This is a very strong language and many people seem to love it a lot. In fact if you go into internet and look for Python vs. PHP, it seems more people actually like Python even more even if they are PHP developers. To make it even better it has a very strong framework called Django which makes it very easy to develop applications.
And there are also reasons you might not just go with Python. Well there is of course also disadvantage just like PHP. Good developers know how to handle it. You could be in some kind of consideration as just like PHP you don’t have a big corporations supporting it and promising to support for five ten years like Microsoft and so it can be kind of slow as it is a very big abstraction and very far away from the actual machine code meaning PHP and Python can be kind of slow but it’s not a big problem today because we have so fast computers but that’s just worth having inside your mind. But in general it is a great language and is probably good for all websites actually because it’s just so good and has a very good supportive framework.
Then there’s microsoft.net. It’s just a very strong language and it’s used in a lot of enterprise and something that I have experienced is the average code quality is really high because the people who wrote that often have a very good education because they learn it in universities and they work in consulting companies and that means that the average code just seems to be really good and it’s very scalable. The thing that is even better about Microsoft.net is that the people around. There is a pretty big community and you can hire good people and you know it’s going to be supportive in 10 years because it’s Microsoft, they promised us on that. The back side of this is extremely expensive especially with your growing into a very big website. Licenses can be very expensive and servers need to have a lot of processing power and RAM and so forth. It can also be kind of heavy, meaning you need a lot of supporting software. It is difficult to just getting a guy and doing a couple of small fixes and get him out because it is very enterprise solution, meaning you have to go in and set up the project, download some files and do some changes and so forth.
The next language is node.js which is very new and known to have the quality of handling very high traffic websites and especially if there’s a lot of interactivity where your site updates all the time and you have to connect to a server and you get updates from the server. Let’s just say that you may exchange where you trade Bitcoins and you want to know the price of Bitcoins. Well with node.js getting that update from the server all the time is not a big problem. So my point is you should really good for some kind of websites and it has a huge community for extensions but again it’s a new language and develops a lot and if you look for year after year a lot of things have changed and of course is kind of stable as well. It has some disadvantages for sure.
Then you have Java which is probably the most used language in the world because there is Java code on so many old machines all these mainframes around the world and has a lot of history and it’s just a very good enterprise solution. It is not used so much in the web but it has got a new renaissance because of Android is using Java. It has a very good progress because you have it for an enterprise need, so the programs by the developers are very scalable. But the people coding it are also very expensive. In San Francisco Java programmers are the most expensive employees compared to other technologies.
Then we have ruby on rails which was really hot a couple years back, only used in the web. This is very fast to start out with but it’s questionable how well it scales and it’s difficult to find employees for it and so forth. So it was a great choice a couple years back because it was great for prototyping and getting things live, but is not that public anymore compared to earlier but is still fine choice. You can make some pretty good things right away. So, if you choose this, it’s not a big problem, but I would just question if it was the right thing to do now. But it changes quite often and it’s a pretty solid choice.
So to summarize, your programming language doesn’t really matter that much. The most important is the skills of your provider. So if you have a lot of employees who are familiar with PHP then you should definitely go for PHP, if your developers are skilled on Python you should go on Python and so forth. That’s my point here that all of the languages have made great products in history and the trust doesn’t matter that much. So even though you meet a guy who says you should only use Python, that’s his obsession and is religious about it because people are religious regarding their own technology, just as four years ago if you’d ask me about the best programming language I’d have said dot.Net is the best. All languages have pros and cons and it’s just worth accepting that and taking the best from all worlds.
So there is of course a ‘but’ here and I just skip this from now and just say thanks for reading. If you like it tell about it to your friends and also under the final note here, free PDF is available on some mistakes in software development on this site and is just worth checking it out which might save you a lot of money.