Tech professionals are always wondering about the Next Big Thing—both for the industry as a whole, and the technologies they must integrate into their individual workflows. 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; 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 over the past few years, especially in an enterprise context. 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.
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 5.0.1 is fully featured, and it’s swiftly (haha!) climbed the ranks of most popular programming languages. If you’re interested in development for iOS and macOS, check it out.
Many of these technologies have been around for quite some time, and their enduring popularity could make them essential to study—if you don’t know them already.