Technology platform for your start-up

Intended audience:- This blog post is for those non-technology founders and idetaors who want to understand which technology they can chose for their platform.

Many non-technology founders struggle to find the answer of this question “Which particular programming language or technology stack they should choose to build their application on”. And the answer is, there is no particular one programming language you can choose. And every programming language has few advantages over other and few dis-advantages. So there is nothing called best programming language. This article assumes that you are not developing a simple website, but a full-fledged web or mobile application.

Architecture of any technology platform is usually divided into three layers. Let me explain this to you in very simple terms:-

First layers is called database layer. This is the layer where your data will be stored. There are primarily two types of database now days which are widely used.

  1. RDBMS systems, example of these are MYSQL /Postgress etc.
  2. NoSQL database systems, example of these software includes MongoDB /Casandra etc

Second layer is called backend layer. This is the layer where your code related to how data should be stored in your database, how it should be read and how it should be sent to your client layer. Languages like PHP, Java or NodeJs is used here. Current trend involves writing your backend logic and code in such a way that it’s exposed as web services to the layers above it.

Third layer is called client layer. This is the layer where your code related to User Interface will go. User usually talks to this layer only and is not at all aware of database and backend layer. For web application, there are many programming languages/frameworks which can be used here. Personally, now days JavaScript based UI framework work are used more. Check this link to get the list of JavaScript frameworks available to us.

But now many people ask , this is fine Vikram. Can you pls give us quick recipe at a same time. So my criteria of choosing a programming language or technology are that it should enhance the productivity of team at a same time give required performance.

For Web applications:- If you are developing a B2C or SaaS application which doesn’t involve much mathematical calculations, chose AngularJs for client layer. Choose NodeJs for backend layer. And choose RDBMS such as MYSQL.  AngularJs and NodeJs are both Javascript based frameworks. So if your developers know JavaScript, they can work on backend and front end coding at a same time. If you are not comfortable with NodeJs or your backend coding involves mathematical calculation, choose either Java or PHP.

For Mobile applications:- There are three type of mobile application which you can develop. Application which will run inside mobile browser. Hybrid application, which is developed using Javascript framework and we use software like PhoenGap to deploy it on Android and iOS platforms. And the third type of application is Native application developed using SDK(Software development toolkit) of Android and iOS respectively. Again at server end you can use either NodeJS or Java or PHP and exposing all server side code as web services. RESTFUl web services(a type of web service) are most widely used these days. MySQL or NoSQL can again act as DBMS. For client side, to develop Hybrid application, we can use AngularJs/Ionic(type of frameworks). To develop native application in Android, you have to use respective SDK’s. For Android you primarily do coding in Java and XML. To develop iOS application, you write code in Objective-C.

At last, this article must have given you a high level overview of the complexity involved in choosing and working with various technologies when you want to develop your technology platform. Thus its very important to find a technology co-founder for your idea. Just hiring technical guys will not solve your problem.

Leave a Reply

Your email address will not be published. Required fields are marked *