What is the most valuable programming language to know for the future and why?

#Computer Science, What is the most valuable #programming language to know for the #future and why?  on quora and shared on Forbes.com

Answer by Boz Bundalo:

This answer has been cross-posted on Forbes

UPDATE: I've updated with some stats since some people needed reasoning behind my claims.


I will disagree with the whole Javascript thing and I'll tell you why.

While Javascript might "exist" as long as web exists, the web/browser is dying. The next generation and revolution we are witnessing is the Internet of Things and interconnectivity of the devices (namely Android but as well as iOS and possibly Windows type of OS for mobile/devices – but that's yet to be seen).

While Javascript is useful to know, the web stack will be more and more used for the back-end RESTful type of web services and less for front-facing web and this is where knowing Python/Django, Ruby/Rails and even PHP/Laravel will come more in handy as they are perfectly positioned for RESTful web services.

The latest numbers show that consumers/mainstream audience uses more and more native applications and mobile devices and less web based apps and desktop. Desktop web usage (the main consumption of traditional web) is on the decline while mobile app usage is on the rise. PCs are being replaced by mobile devices and this trends is increasing at a rapid pace.

Desktop sales sharp decline:

Source: Comescore (Feb 2014)

 
IDC: "Smartphone adoption, meanwhile, increased 39%, according to research firm IDC. This trend will likely continue thanks to improved user experience on mobile apps "

VENTURE CAPITAL -> From an investment standpoint most of the investments are going into mobile devices/apps ecosystem.

A lot of people can see this clearly as well. Chris Dixon (Entrepreneur/Investor and former CEO of Hunch) puts in nicely :

"This is a worrisome trend for the web. Mobile is the future. What wins mobile, wins the Internet. Right now, apps are winning and the web is losing.

Moreover, there are signs that it will only get worse. Ask any web company and they will tell you that they value app users more than web users. This is why you see so many popups and banners on mobile websites that try to get you to download apps. It is also why so many mobile websites are broken. Resources are going to app development over web development. As the mobile web UX further deteriorates, the momentum toward apps will only increase.

The likely end state is the web becomes a niche product used for things like 1) trying a service before you download the app, 2) consuming long tail content (e.g. link to a niche blog from Twitter or Facebook feed)."

Facebook and Twitter's audiences are now mostly using them on mobile device and through their apps:

Facebook Reveals 78% Of US Users Are Mobile As It Starts Sharing User Counts By Country | TechCrunch

Twitter now has 75% of it's users accessing the service through mobile apps.
Mobile Twitter: 164M+ (75%) Access From Handheld Devices Monthly, 65% Of Ad Sales Come From Mobile | TechCrunch

This was from late 2013, Twitter now generates 75% of their ad revenue from mobile.

But let's go back to Javascript/HTML5/web environment:

Twitter, Facebook, LinkedIn and quite a few others have tried the HTML5/JS approach for mobile apps and developing complex applications and have failed terribly. They admitted it and all have native applications.

Javascript is a relic that has changed somewhat but not enough in since 1999. It still has the same problems it had 15 years ago. It's not efficient even though the Javascript engines have progressed (looking at V8, SpiderMonkey, Nitro etc) but it's just behind.

LinkedIn's Kiran Prasad (senior software engineer) said it nicely:
"We have definitely shifted from HTML5 to native. The primary reason for that is, we’re seeing that more and more people are spending more time in the app, and the app is running out of memory."

Why LinkedIn dumped HTML5 & went native for its mobile apps
Facebook doubles iPhone app speed by dumping HTML5 for native code

This is the reason why Google came out with Dart and tried to offer alternatives to Javascript, why Microsoft introduced Typescript etc..  Not to mention that if you saw Google IO 2014 you can see that Google is clearly shifting Chromebooks to run native Android applications and is a signal that they might be moving away from the web app approach.

Segment starts 2:45:
https://youtu.be/Q8EwC48Xfjc?t=2m45s

Javascript landscape is a wild wild west. The way one person writes it differs from another especially when you account gazillion frameworks that are trying to solve some kind of inefficiency with DOM/JS approach and overall issues.

But let's talk about languages. Java has a new revolution. Why? Because it is a solid language that covers a lot of things and has HUGE backing and support from the community and is incredibly mature. You can build back-end services, you can build native Android applications, you will be building applications for cars, for TVs, etc.. and you will be doing it natively with the APIs from new devices.

There is a reason why many big companies have started with other languages and back-end architecture and they eventually went back to Java.

Granted, Java is not perfect, but if you acknowledge that Android rules the world and the new devices and services come out, you will have far more work and opportunities with it.  I would say a lot of people who have issues with some things Java, will tell you that Scala is better and I think Scala is pretty great. Twitter uses it.

I think knowing Java will also allow you to jump to other similar languages. Today we see that Apple is moving to Swift, C# is very popular with Xamarin that allows you to build real native applications with it and they are all very similar as they come from a C family.

I think a lot of people need to ask themselves whether or not they think Web apps will stay relevant or the native type applications with direct connection to hardware APIs will be the way forward.

All the statistics and what we are seeing are telling us that we are moving towards the latter.  Native applications with the web services/cloud back-end.

This is only intensifying.

While I agree that you should understand general computer programming principles, design patterns, OOP and data structures I would tell you that you should learn the following languages for the next 10 years in this order:

1. Java (Java has matured so much and Java has some of the cool stuff like generics, lambda expressions, Improved type inference
2. Swift
3. C#
4. Javascript (and mainly because of Node and less because of web-app front ends)

Github Javascript measurement is really not a good measurement of popularity.

If you look at job requirements across the world the demand has skyrocketed for Java (holds number 1 place), Objective-C and Swift now, C#.

You can see that the top five languages are all native (and for a good reason). Java is second to C only.

The Coding Standards Company
Java skills demand hits all-time high

As I noted, this is really where technology is going (mobile, internet of things). Javascript and traditional Web in general have really less and less place in that future.

We are moving towards mobile devices, cars with apps, powerful TVs that will add even more functionality, home automation etc etc and this is a world where web as we know it has little place in unless it is a cloud and web services that we use to store/retrieve data.

And if you think about it, we went full circle, from desktop apps without connectivity, to web only approach and now we are coming back to smart devices with desktop/native type applications and we use the web for what it's really great for, network connectivity and less of front end usage.

I encourage you to watch the Forrester Research CEO George Colony talking at Le Web 2011 (everything he talks about is already happening now)

Good stuff starts 5:20 but I definitely encourage you to watch the whole video:
https://youtu.be/BiYNs5uPPEE

In conclusion, if you are going to be taking a language, consider this and go native all the way and you will have a bright future.

What is the most valuable programming language to know for the future and why?

Advertisements
What is the most valuable programming language to know for the future and why?

One thought on “What is the most valuable programming language to know for the future and why?

  1. You post very interesting posts here. Your page deserves
    much more traffic. It can go viral if you give it initial boost, i
    know very useful tool that can help you, just search in google: svetsern traffic tips

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s