Staying current in the programming field can sometimes make you feel like the Red Queen in “Alice Through the Looking-Glass.” She said, “It takes all the running you can do to keep in the same place. If you want to get somewhere else, you must run at least twice as fast as that!”
You’re a master at Ruby on Rails? Great, but how are you with statistical analysis in R? Want to work at Google? Forget Python and start building channels in Go.
Introduction to R
You may be surprised to learn that R has been around since 1994. It was built by Ross Ihaka and Robert Gentleman at the University of Auckland and was based on the Bell Labs language S. The turning point for this statistical analysis tool came when it zoomed up to first place as the highest paying tech skill in the 2014 Dice Tech Salary Survey. That can be considered the year that Big Data arrived in mainstream business and R was clearly the best way to handle it.
Though it was preferred by academic data scientists originally, R has proven instrumental for enormous business applications like large-scale financial reporting for Bank of America and Facebook’s Social Graph, which analyzes interactions among 500 million people. Today, companies like Microsoft are using R as a server platform to go further with predictive modeling and machine learning. For many of these companies, R is replacing SQL, which can become extremely resource-intensive for advanced analytics.
Here are three reasons why R has taken off recently:
- Because R supports missing values as a core data value, it can easily deal with incomplete data sources that are more common in real world projects.
- A popular data visualization package for R called ggplot2 breaks up the graphics into scales and layers as components. It’s now the most used R extension package.
- The top-level language shell in R is customizable, and coders have used that facility to build integrated development environments like RStudio. This made R much easier to learn and more widely available for business use cases.
In the Redmonk Programming Language Rankings of 2016, which compares the popularity of code on GitHub vs. Stack Overflow, R ranked 13th.
Introduction to Go
While some of the other languages here are getting a new life, Go (a.k.a. golang) is experiencing its first one. In 2012, Google presented the open source Go v. 1.0, after giving the world a glimpse of the experimental language three years earlier. Google had its eye on the future, saying, “People who write Go 1 programs can be confident that those programs will continue to compile and run without change, in many environments, on a timescale of years. Similarly, authors who write books about Go 1 can be sure that their examples and explanations will be helpful to readers today and into the future.”
Go was made for web services that need to handle thousands of concurrent web requests. Popular app builders like Python can’t deal with the speed and intensity of parallel requests on mobile. For the same reason, it is an excellent HTTP handler. Like C++, Go is ideal for writing web services with precise control without the sharp learning curve of the aging object-oriented standby. Go has also been compared favorably with Algol.
As you would expect from a language with the backing of Google, Go has been used for major projects like Docker’s large-scale, distributed software projects. Evidence of the range of Go came in the form of Revel, which is a high-productivity, full-stack web framework that was created with Go. Revel is able to handle web essentials like routing, caching, parameter parsing, templating and more.
Go’s power of handling concurrent requests resides in its goroutines and channels. While goroutines function like threads, channels are the communication ports between goroutines.
Go currently ranks as the 15th most popular language in the Redmonk Programming Language Rankings of 2016.
Introduction to Hack
Hack was an internal Facebook project that was released as open source in 2014. As a replacement of their PHP, Hack is a way of combining the short dev cycles of dynamically-typed language with the core discipline of static-typed ones. It also borrows features from some of the other new languages, such as type annotation and generics that allow you to set parameters for classes and methods, while adding many features commonly found in other modern programming languages.
Facebook reported that many common tasks were becoming problematic in PHP, such as calling a method accidentally on a null object, which would generate an error that you wouldn’t be able to catch until runtime. Another problem was with complex APIs that required developers to look up mundane method names in documentation. Those are merely annoying unless you are working at a company like Facebook, where developers are expected to ship code twice a day. Thanks to the upgrade, Hack is now replacing Facebook’s entire PHP codebase.
While just about any site that uses PHP now could be using Hack, it has not gained widespread acceptance yet (a major barrier to adoption of Hack is that you must be running the HHVM runtime). One example of a creative uses for Hack is Vindinium, which is the basis of an AI-driven game system.
Wikipedia’s MediaWiki runs on the HipHop Virtual Machine (HHVM), powered by Hack.
Introduction to Rust
Mozilla’s Rust has been in development for years, but Rust 1.0, the first stable release, appeared in 2015. Mozilla’s David Herman detailed what makes Rust valuable: “Rust has something unique to offer that languages in that space have never had before, and that is a degree of safety that languages like C and C++ have never had. … [T]here are some things that make doing systems programming terrifying that are gone in Rust.” Specifically, he’s talking about security vulnerabilities in C++.
Rust was made to give programmers complete control through extensive compile-time checking. For example, browser exploits in C++, which caused Firefox to be unstable, would generate compile-time bugs in Rust and close the hole.
The 2016 State of Rust Survey reported that one-fifth of the language’s users are deploying it for commercial purposes, either full or part-time.
Rust won first place for Most Loved Programming Language of 2016 in the Stack Overflow Developer Survey.
Introduction to Swift
Apple has many new hardware platforms, like the Apple Watch and Apple TV. Swift was built for them. Initially, it was brought out in 2014 as a better alternative for Objective-C, since it makes it easier to build native apps for iOS. It’s also made for building apps on OSX, watchOS, tvOS and Linux.
Many of the biggest app developers on iOS have already incorporated Swift into ecosystems, including:
- The Weather Channel
Swift has moved up to 17th place in the Redmonk Programming Language Rankings of 2016.
If you just want a quick summary of which new language to use where, refer to this guide:
- R is better than SQL for statistical analysis and managing big data.
- Go is better than Python for building apps that have to deal with multiple, parallel requests.
- Hack is an advanced version of PHP that speeds up development cycles.
- Rust is easier, more security-conscious language for various use cases versus C++.
- Swift replaces Objective-C for native app development on iOS.
This blog was originally posted at AppDynamics Blog.