What web development language should I learn in 2017

Recently I saw this question on Quora:

"I used to develop in PHP/MySQL about 4 years back. I understand that PHP is no longer a good choice. I would like to get back in developing dynamic websites/web apps again. What language/framework do you suggest I should learn which will also be useful in coming years? Thank you."

My answer is below:

There are many languages you can use for web development. PHP is still relevant, popular frameworks like Laravel and WordPress use PHP as an example. Slack is using PHP to power their back end.

If you just want to learn a new language I would recommend to decide what you’ll be doing and start by answering these questions:

  1. Am I focused on the back end or front end?
  2. Do I need something really low level for performance or something easier to learn and get things done fast?
  3. Am I looking for enterprise level language or something I can use to build proof of concepts and small websites?
  4. Am I planning to do machine learning or build robust APIs?
  5. Is there a specific industry or company I’m targeting?

Having a focus and very specific goal helps a lot when deciding where to invest your time.

If you’re not sure about any of the above - learn JavaScript, it’s a language here to stay. Google, Apple, Mozilla, Microsoft, Facebook, PayPal, Netflix and other tech giants invest in JavaScript heavily. Their team contribute to open source JavaScript frameworks and many of them are on TC39 committee (independent group that decides what new features are added to EcmaScript (scripting-language specification used by JavaScript). It’s a default language of all browsers and with Node.js you can develop really fast and robust back-ends and APIs. With frameworks like ReactJS, Express, Next.js and Meteor - it’s possible to create any application that scales really well. JavaScript is being used by most if not all Fortune 500 companies on the client (browser) side and server side (Node.js).

If you prefer something else I recommend learning Go. It’s a low level programming language that supports concurrency and scales really well. It was created by Google and is perfect to build APIs and backends (it’s really fast).

Other languages I can recommend are:

  • Python for machine learning.
  • GraphQL (not a language, but it’s worth learning for API development)
  • Java if you’re planning to work at bigger company with legacy code.
  • Scala (runs on JVM)
  • C++ if you’re planning to do low level development.