Salesforce Developers - Is Javascript your New Apex?
If you are a Salesforce developer and you're already fluent in Javascript, congratulations, you don't need to read this post. If not, then please continue and I hope by the end you will be keen on expanding your repertoire into Javascript, because...
Javascript is Taking Over the World
It's now fully official, and everything, that Javascript is Taking Over The World. You could perhaps argue with this statement, but in any case in recent times we're seeing Javascript everywhere, including in Salesforce solutions. Particularly in consumer-facing applications, the flexibility and performance of using Javascript to interact with the Salesforce back-end via mechanisms such as remoting or the REST API has seen a large uptake.
Often contemporary libraries such as AngularJs, React, Ember or Backbone are used to provide the framework for the Javascript particularly around data-binding. Learning to use these frameworks is not a trivial exercise and many 'traditional' Salesforce developers are not very experienced in Javascript, so often we see development teams split into 'Front End' and 'Back End' developers.
What About Visualforce?
Clearly Visualforce isn't going away any time soon and as a Salesforce developer you will most likely continue to use it. But over time I'm certain we will see a shift towards client-side (Javascript) from the server-side (Visualforce) and this is where Javascript comes in. Now Lightning Components have come along we see the introduction of a whole lot more Javascript in the Salesforce stack. Lightning Components have a Javascript client-side controller and other components to manage interactivity. Again, a very good knowledge of Javascript is going to be required to develop complex custom user interfaces on the platform.
The Salesforce Developer of the Future
So this has all led to me wondering whether the pattern of separate front-end and back-end developers will extend and grow into the enterprise Salesforce app space. Will specialised front end developers build the components using their Javascript, HTML and CSS skills along with knowledge of the Lightning Component Framework, and traditional (or now 'back-end') developers will provide the 'AuraEnabled' API for the components to consume?
There will always be a requirement for those traditional Force.com skills - Apex, SOQL, integration, multi-tenant awareness etc. But maybe now we are seeing the emergence of a new type of developer specialised in the development of custom user interfaces for Enterprise Salesforce apps. Or maybe you can do both extremely well, in which case you will be very valuable.
Learning Javascript
In any case, if you are a Salesforce developer, my advice is to learn Javascript if you aren't already very knowledgable in it. Chances are, you have had some exposure to it and have a working knowledge, but there will be an advantage in being as fluent in Javascript as you are in Apex. You may not always be a Salesforce developer but you can bet there will be demand for Javascript skills for years to come.
There are some great resources out there and it's fun to learn. After Apex you may find it refreshing to work with a language that supports many more contemporary programming constructs, and is not strongly typed (that doesn't mean you don't have to press the keys as hard btw...)
Javascript is really a good technology to have a grip on. The concepts are really good. Anyone can learn JS. It's quiet easy to learn.
I completely agree with you on this and have started to teach my 12 year old nephew the basics of javascript so that he can get ahead of the game.
spot on!
I agree with this post John and going forward with mobile applications taking over the traditional web based apps, JavaScript is going to be a dominant skill for developers to ensure that paycheck keeps coming...
I thought Apex was the new Javascript? Or was that last month?