With the end of 2015 nigh, tech pros everywhere are wondering what the next year will bring—both for the industry as a whole, and the technologies they use. The following is a list of development technologies that could have a very big role to play in your career over the next 12 months, depending on your area of specialization.
Git is a mature distributed version control system, now in its tenth year, originally created by Linus Torvalds of Linux fame. While version control systems are not a new technology, Linus considered the then-existing systems (particularly Monotone) inadequate; he put Git together in just a few months.
Though the main user interface is the command line, there are free and paid-for GUI clients available for Mac, Linux and Windows. The platform’s popularity has only increased: in May 2014, according to the Eclipse Foundation, Git became the most popular source-code management tool, and its popularity shows no signs of waning into 2016.
Part of Git’s appeal is the repository hosting service, GitHub, which provides a Web-based GUI as well as desktop tools. With approximately 30 million repositories, it’s now the largest source-code hosting service in the world.
Though the world of Linux containers existed before Docker appeared in 2013, probably no open-source package has enjoyed such an amazing impact in such a short time. Docker allows automation of running applications; once you’ve created a Docker file containing a list of images to download and install, you can quickly deploy your application on any platform that runs Docker. Developers can test their applications against many different configurations quickly, and ops can deploy new releases into production just as speedily.
There’s also Docker Hub, a cloud-based registry service for building and shipping application or service containers. It has a large number of images. In deploying your application, for example, you might require a version of Ubuntu, plus MySQL and some other components—just specify them in your dockerfile, and the first time you build your container on a given platform, it pulls the requested from the hub.
C++ 11 and C++ 14
Most compilers support most features of both the aforementioned versions of C, though GCC and MSVC (Microsoft Visual C++) feature the most overall support.
The C++ 11 update was a major change to the language that really modernized it. First there were Lambda expressions, which are anonymous local functions. Also: auto for letting the compiler infer the type according to the right-hand side of the expression (much like C#’s var); before C++ 11, auto was a little-used storage type specifier.
As with C#, you can now use braces to initialize arrays: add in a new library <thread> and proper smart pointer classes (unlike auto_ptr).
C++ 14 is a minor update in which lambda expressions have been made more generic; it uses auto for return type (the compiler deduces type from what’s returned); the C++ 11 requirements on constexpr are likewise relaxed.
As a result of all these changes, C++ is now a lot friendlier to beginners, with syntax that is shorter and more readable.
Swift 2.0 (and Beyond)
As previously reported, Apple open-sourced Swift, its latest programming language for iOS and Mac OS X. The code is now available on Swift.org, as well as Github. Swift 3.0 is due in fall 2016, with Swift 2.2 serving as an interim release (probably sometime in the next two or three months). While Swift has already, well, swiftly climbed the ranks of most popular programming languages, making it open-source could encourage even more developers to explore it, supercharging its adoption rates.
Many of these technologies have been around for quite some time, and their enduring popularity could make them essential to study in 2016—if you don’t know them already.