As businesses use increasing numbers of cloud and mobile apps, here are some of the skills developers could need to stay relevant to the business of tomorrow.
Java is the workhorse of enterprise applications, but as firms increase their use of mobile and cloud-based apps what skills will experienced developers need to remain relevant to business in five to 10 years' time?
The answer, according to Adam Seligman, VP of developer relations for Salesforce.com, will be dictated by the changing shape of enterprise IT. Business architectures are shifting from monolithic technology stacks provided by a single vendor towards a patchwork of loosely-coupled cloud services, he said.
While deep knowledge of the likes of the venerable Enterprise JavaBeans (EJB) standard isn't going to stop being useful in this new environment, Seligman said developers need to look beyond reinforcing legacy skills and at new languages and frameworks suited to the agile and distributed enterprise of tomorrow.
"In the old world there's a vendor, the vendor delivers a giant stack of stuff and you better learn the stack, and your skills and career are coupled with how well you know the stack," he said.
"The new world is one of open services, where you pick the language you're most comfortable with.
"Maybe you know how to code Java but if you could be five times faster doing declarative [programming] because you're clicking more and coding less, do it. [Or] go be a Ruby developer and use Rails. If you look at Rails and see how little code you have to write to munch data around, it's revelatory."
Java developers should swot up on new tools like Gradle and frameworks like Play - he said - and take advantage of the automation and productivity enhancements they bring to decrease the time it takes to ship products.
"Every Java developer should ask themselves 'Have you learned a modern framework?'. If you're using something old, have you learned Play? Are you playing with Gradle? Are you trying out a new JVM (Java Virtual Machine) language like Scala?" said Seligman.
A small amount of mobile development skill, is equivalent to "years of old enterprise Java stuff", Seligman claims.
"Say you're a EJB expert with 10 years of experience, I don't know if another year of doing heavy Java is going to drive a whole lot of return, versus doing a year of mobile web or iOS development. Demand for apps has changed and therefore how we build them changes," he said.
"Ask yourself 'Are you keeping up with web standards?'. Are you producing really ugly Portlet apps or are you doing HTML5 apps?"
With the growing number of PaaS options - everything from Salesforce's Heroku to Amazon's Elastic Beanstalk - allowing for rapid deployment of web apps, Seligman recommends developers begin experimenting with pushing apps to a PaaS and learn how the underlying stack works.
"The most important thing is get to the cloud, you want to be pushing apps in minutes, you don't want to spend months writing an app and then wait months for it to be deployed," he said.
"Get to the cloud as fast as possible because you could participate in this new agile, iterative, customer-first world we're in but you're going to have to ship code really fast."