What programming language do you have to learn in order to start coding an app like Instagram or WhatsApp?

programming

It isn’t a matter of learning a particular language. Beginners are always hung up on languages. Languages don’t matter! To be honest, language is not that important. You can develop fancy apps in almost every modern language.

What you need to learn to create a mobile app like Instagram or Whatsapp is how to implement a client application on the mobile device and a backend web service that the client communicates with.

Most services app will have frontend and backend part.

For frontend: get familiar with html/css/photoshop, UI mockup tools. Learn the Xcode IDE, its interface builder. For iOS, learn Objective C, for android, learn Java. For Hybrid, learn html/css/JavaScript.

There is a new javascript framework released by facebook which is being actively used to develop apps like instagram and pc version of whatsapp called reactjs.

Objective-c is the native iOS language and Java is the native android language.

The backend part: Which can be written in basically any programming language — is not a trivial thing, … especially if you want it to scale to lots of users.

Implementing a backend involves knowing a lot about many domains of software engineering: web servers, system adminning, database programming, database tuning, data object transmission formats, load balancing, interfacing with 3rd party APIs, interfacing with 3rd party cloud platforms, etc.

Here are some practical possibilities that’d let you build an app with similar features to WhatsApp, for the moment ignoring the sheer scale of the backend of these apps :

  • Learn javascript and Meteor. Meteor is a self-contained framework that’ll give your app a real-time feel, doing a lot of the hard work for you. Javascript is an incredibly valuable language to know right now.
  • Learn Angular, Ionic, Nodejs, and maybe use StrongLoop or Express. Again, it’s a javascript stack, and you can build all sorts of apps with it.
  • Learn the traditional phone app platforms — Objective C for iOS, Java for Android — and learn to write backend services for your iOS / Android app to talk to (which you can write in pretty much any language, though some languages / frameworks do make it significantly easier. C#, Java, Python, Ruby, Javascript, PHP — pretty much any of the top 20 languages can be ran on a server.

Don’t get soaked up on the language part only. There are much bigger things than that. A better question is how did they engineer it. You can use any language, almost, if you know how to design things.

:) Good Luck!