Was 2017 the year that every product under the sun was marketed as being cognitive, having machine learning, or being artificially intelligent? Well, yes. But don’t hate all of them. In many cases, machine learning actually did improve the functionality of products, sometimes in surprising ways.
Our reviewers didn’t give any prizes for incorporating AI, but did pick out the most prominent tools for building and training models. These include the deep learning frameworks TensorFlow and PyTorch, the automated model-building package H2O.ai Driverless AI, and the solid machine learning toolbox Scikit-learn.
The MLlib portion of Apache Spark fits into this group as well, as does the 25-year-old(!) R programming language, of which our reviewer says, “No matter what the machine learning problem, there is likely a solution in CPAN, the comprehensive repository for R code, and in all likelihood it was written by an expert in the domain.”
2017 was also the year when you could pick a database without making huge compromises. Do you need SQL, geographic distribution, horizontal scalability, and strong consistency? Both Google Cloud Spanner and CockroachDB have all of that. Do you need a distributed NoSQL database with a choice of APIs and consistency models? That would be Microsoft’s Azure Cosmos DB.
Are you serving data from multiple endpoints? You’ll probably want to use GraphQL to query them, and you might use Apollo Server as a driver if your client is a Node.js application. Taking a more graph-oriented view of data, a GraphQL query looks something like a JSON structure with the data left out.
As for graph database servers, consider Neo4j, which offers highly available clusters, ACID transactions, and causal consistency. Are you looking for an in-memory GPU-based SQL database that can update geospatial displays of billions of locations in milliseconds? MapD is what you need.
Two up-and-coming programming languages made the cut, for completely different domains. Kotlin looks like a streamlined version of object-oriented Java, but it is also a full-blown functional programming language, and most importantly eliminates the danger of null pointer references and eases the handling of null values. Rust, on the other hand, offers memory safety in an alternative to C and C++ that is designed for bare-metal and systems-level programming.
Speaking of safety, we also salute two security products—one for making it easier for developers to build secure applications, the other for extending security defenses to modern application environments. GitHub security alerts notify you when GitHub detects a vulnerability in one of your GitHub project dependencies, and suggest known fixes from the GitHub community. Signal Sciences protects against threats to your web applications and APIs.
If you’ve started deploying Docker containers, sooner or later you’re going to want to orchestrate and manage clusters of them. For that, you’ll most likely want Kubernetes, either by itself, or as a service in the AWS, Azure, or Google clouds. Honeycomb goes beyond monitoring and logging to give your distributed systems observability.
Microsoft’s relationship with Linux has been troubled over the years, to say the least. For example, in 2001 Steve Ballmer called Linux a “cancer.” The need for Linux in the Azure cloud changed all that, and the Windows Subsystem for Linux allows you to run a for-real Ubuntu or Suse Bash shell in Windows 10, allowing you to install and run legitimate Linux binary apps from the standard repositories, including the Azure Bash command line.
Read about all of these winning products, and many more, in our tour of 2018 Technology of the Year Award winners.