In 2016, we saw several shifts in the programming landscape, some of which will carry over into the new year, thanks to forthcoming platform upgrades and lingering grumblings among programming communities.
Enterprise Java, Microsoft, and Apple developers dealt with shifts in strategy, delays, platform pressure, and backward-compatibility issues in 2016 that foretell an important year ahead, for platforms and developers alike.
Here is what’s brewing in the programming world as we look ahead to 2017.
Enterprise Java: Clouds on the horizon
2016 was a year of turmoil for enterprise Java, as Oracle put the brakes on Java EE, opting instead to reboot the platform for microservices and the cloud. Enterprise Java developers should get a taste of that reboot late this year when Oracle is slated to release a reconfigured Java EE 8. The launch will be the first of a two-part revamping, with Java EE 9 due in 2018. Developers should expect capabilities such as REST services and HTTP/2 in Java EE 8. Java EE 9 will focus on scalable services and key-value store support, among other capabilities.
Prior to Oracle unveiling its retooled EE plans in September, enterprise Java advocates were in revolt, frustrated over a perceived neglect by Oracle and vowing to tackle improvements by themselves. Now, Java proponents will wait and see what Oracle releases with Java EE 8. If Oracle malingers on its promises, 2017 could see increased agitation from the Java community.
Microsoft: The universal push continues
Microsoft spent the past year pushing hard on its Universal Windows Platform (UWP) despite skepticism. UWP provides developers a single platform for creating multiform-factor Windows apps, and Microsoft used its 2016 Build conference to put pressure on developers to adopt the platform.
Going forward, developers targeting the Microsoft ecosystem are expected to soon see Visual Studio 2017, formerly called Visual Studio “15.” The development environment makes accommodations for UWP that could see developers warming to Microsoft’s UWP vision. General release should be available by June, if not sooner. Already out in a release candidate form, the IDE focuses on code navigation and fixes, refactoring, debugging, and saving time.
Microsoft has also been pushing open source as a way to spread its software development technologies beyond Windows.
The popular scripting language for client-side web development had only a minor upgrade to its official specification in 2016, ECMAScript 2016. ECMAScript 2017 is slated to add capabilities such as async functions to simplify writing of asynchronous code, as well as string padding, to take the pain out of using strings and improve web performance. If ECMA follows through on its pledge for more frequent updates, ECMAScript 2017 could be approved around midyear.
On the server side, Node.js is now on its 7.x release line, with proponents working to free up the platform from strict ties to Google’s V8 engine. In turn, this could make Node.js more palatable in emerging areas such as the internet of things.
Apple: Betting big on Swift
2016 saw Apple releasing Version 3 of Swift while ironing out its intentions on how it will move forward with the language. Introduced as a successor to Objective-C in June 2014, Swift broke backward compatibility with the September debut of Swift 3 and is on a path toward Application Binary Interface (ABI) stability in its planned Version 4 release, due late this year.
"Apple is serious about pushing Swift as its main programming language, and with a well-defined and stable ABI, it can begin to consider introducing Swift-only APIs into their SDKs,” Kyle Jessup, CTO of Swift tools vendor PerfectlySoft, said in August.
Programming languages: Out with the old, in with the new
Python gave its community a late-2016 gift with its Christmas upgrade, Version 3.6, featuring speed and memory usage boosts, pluggable backing for JIT compilers, tracers and debuggers, and more async capabilities. Meanwhile, the PHP community further embraced PHP 7, the major upgrade released in late 2015, although adoption has been slowed by incompatibility and user policy restrictions.
Google’s Go language, buoyed by the meteoric rise of the Docker container system, gained popularity with developers in 2016, bringing it in from the edge to the mainstream. The 1.8 version of Go, featuring faster compilation, is due next month.
Not faring as well these days when compared with more contemporary languages is C. While still in second place in Tiobe’s monthly index of language popularity, its hold on developer mind share declined precipitously in 2016 in both Tiobe and the PyPL indexes. This has been attributed to not having a single vendor to act as its advocate, a lack of evolution, and the rise of mobile and web development, where C is an afterthought.
- Download: Developer career development guide
- 21 hot programming trends—and 21 going cold
- Download: The professional programmer’s business survival guide
- Download: 29 tips for succeeding as an independent developer
- Review: The big four Java IDEs compared
- Free course: Get started with Angular.js
- Review: 6 Python IDEs go to the mat
- Review: 6 machine learning clouds
- Should you go with Google's Go? 7 pros and cons
- Review: 13 primo Python web frameworks
- Get started with TensorFlow