Many people end up using R inside an IDE as a high-powered scratchpad for playing with data. R Studio and R Commander are two popular front ends that let you load up your data and play with it. They make it less of a compile-and-run language and more of an interactive world in which to do your work.
Highlights: Clever expressions for selecting a subset of the data and analyzing it
Headaches: Aimed at desktops, not the world of big data where technologies like Hadoop rule.
2. Java 8
Java isn’t a new language. It’s often everyone’s first language, thanks to its role as the lingua franca for AP Computer Science. There are billions of JAR files floating around running the world.
But Java 8 is a bit different. It comes with new features aimed at offering functional techniques that can unlock the parallelism in your code. You don’t have to use them. You could stick with all the old Java because it still works. But if you don’t use it, you’ll be missing the chance to offer the Java virtual machine (JVM) even more structure for optimizing the execution. You’ll miss the chance to think functionally and write cleaner, faster, and less buggy code.
Highlights: Lambda expressions and concurrent code
Headaches: A bolted-on feeling makes us want to jump in with both feet and use Scala (see below).
Apple saw an opportunity when programming newbies complained about the endless mess of writing in Objective C. So they introduced Swift and strongly implied that it would replace Objective C for writing for the Mac or the iPhone. They recognized that creating header files and juggling pointers was antiquated. Swift hides this information, making it much more like writing in a modern language like Java or Python. Finally, the language is doing all the scut work, just like the modern code.
The language specification is broad. It’s not just a syntactic cleanup of Objective C. There are plenty of new features, so many that they’re hard to list. Some coders might even complain that there’s too much to learn, and Swift will make life more complicated for teams who need to read each other’s code. But let’s not focus too much on that. iPhone coders can now spin out code as quickly as others. They can work with a cleaner syntax and let the language do the busy work.
Highlights: Dramatically cleaner syntax and less low-level juggling of pointers
Headaches: The backward compatibility requires thinking about bits and bytes occasionally.