How can I become an AI programmer

Web

Artificial intelligence (AI) opens up completely new possibilities for software developers: With the help of machine and deep learning, better user profiles and recommendations, a higher degree of personalization, smarter search options or more intelligent interfaces can be implemented. This inevitably raises the question of which programming language should be used for this. The requirements that an AI coding language must meet are diverse: a large number of machine and deep learning libraries should be available as well as a high-performance runtime environment, extensive tool support, a large developer community and a healthy ecosystem.

Even though this catalog of requirements is comprehensive, there are a few good options to choose from when it comes to programming artificial intelligence. We'll show you a selection of the best AI programming languages.

python

If you work as a developer with artificial intelligence, there is almost certainly no getting around Python. In the meantime, almost all common libraries support Python 3.x - the days when the switch from Python 2.x to 3.x caused compatibility problems are almost over. In other words: You can finally benefit from the numerous new features of Python 3.x in practice. Which is not to say that the packaging hurdles no longer play a role at all with Python - the majority of the problems can be circumvented with the help of Anaconda. Nevertheless, it would be welcomed if the Python community were finally fully freed from these hurdles.

That being said, Python's available mathematical and statistical libraries are way ahead of those of other programming languages: NumPy has become so ubiquitous that it can almost be described as the standard API for Tensor Operations, while Pandas carries the flexible data frames from R into the Python world . When it comes to Natural Language Processing (NLP), you have the choice between the time-honored NLTK and the super-fast SpaCy, while the tried and tested scikit-learn is recommended for machine learning purposes. When it comes to deep learning, on the other hand, all current libraries (TensowrFlow, PyTorch, Chainer, Apache MXNet, Theano, etc.) are basically "Python-first" projects.

If you are a regular visitor to arXiv, you will have long since noticed that the majority of the deep learning research projects there that provide source code rely on Python. In terms of deployment models, microservice architectures and technologies such as SeldonCore have significantly simplified the delivery of Python models in productive environments.

Python is undoubtedly the programming language of choice when it comes to AI research: it offers the largest selection of machine and deep learning frameworks and is the coding language that sets the tone within the AI ​​world.

C ++

In all likelihood, C ++ is not the first choice for your AI project. However, deep learning in the edge area is becoming an increasingly common scenario. In this case, you need to get your models to work on systems that have very limited resources. In order to squeeze the last bit of performance out of the system, it may be necessary to dive into the depths of the pointer world again.

Fortunately, modern C ++ code can actually be pleasant to write. There are several approaches to choose from: Either you use libraries such as Nvidia's CUDA to write your own program code that flows directly into the GPU - or you can choose to use TensorFlow or PyTorch to gain access to flexible high-level APIs. Both PyTorch and TensorFlow allow you to integrate models written in Python into a C ++ runtime environment. This brings you much closer to productive use, while remaining flexible in development.

Because AI applications are spreading more and more across all devices - from embedded systems to huge clusters - C ++ is an important part of the AI ​​coding toolkit. In order to implement artificial intelligence in the edge area, it is not only important to program accurately, but also to be of good quality and fast.

Java and other JVM languages

The family of JVM programming languages ​​(Java, Scala, Kotlin, Clojure, etc.) continues to be a good choice when it comes to developing AI applications. A rich selection of libraries is available for almost all aspects - be it Natural Language Processing (CoreNLP), Tensor Operations (ND4J) or GPU-accelerated Deep Learning (DL4J). In addition, these coding languages ​​also ensure easy access to big data platforms such as Apache Spark and Apache Hadoop.

For most companies, Java is the lingua franca - and with Java 8 and later, the creation of Java code is no longer a horror. Programming an AI application in Java may feel a bit boring, but it usually produces satisfactory results and enables you to use all of the existing components of a Java infrastructure for development, deployment and monitoring.

JavaScript

Learning JavaScript solely to develop AI applications is a highly unlikely scenario. However, Google's TensorFlow.js still offers a good way to deliver your Keras and TensorFlow models via browser or Node.js.

Nevertheless, the great rush of JavaScript developers in the field of artificial intelligence has so far failed to materialize. This could be due to the fact that the JavaScript ecosystem has so far lacked the necessary depth in terms of available libraries - at least in comparison to programming languages ​​such as Python. In addition, on the server side, deployment models with Node.js (again compared to the Python options) do not offer any real advantages. AI applications based on JavaScript should therefore continue to be developed based on browsers.

Swift

Swift for TensorFlow combines the latest and greatest features of TensorFlow with the advantages of Python libraries, which can be integrated easily - just as if you were using Python yourself.

The fastai team is currently working on a Swift version of its popular library - and is holding out the prospect of numerous optimizations, especially in connection with the LLVM compiler. It's out of the question as "production ready", but the next generation of deep learning development work could emerge on this basis, so be sure to keep an eye on Swift.

R.

R is the programming language of choice for data scientists. Developers from other areas might find the coding language confusing because of its data frame-centric approach.

For a team of passionate R developers, it can make perfect sense to use integrations with TensorFlow, Keras or H2O for research and prototyping. In terms of performance, however, R can only be recommended to a limited extent for productive use. Although high-performance R code can be used productively, it should be easier in most cases to reprogram the R prototype in Java or Python.

Programming AI - further options

Of course, the four programming languages ​​mentioned are not the only options for programming artificial intelligence. The following two coding languages ​​could - depending on the purpose - also be of interest for your AI projects:

Lua

A few years ago Lua was traded as the "next big thing" in the field of artificial intelligence. This was primarily due to the Torch Framework - one of the most popular machine learning libraries - both for productive use and for research purposes. As you dive into older models of deep learning, there are often numerous references to Torch and Lua source code.

It might be useful to get some knowledge of the Torch API, which has some similarities to the base PyTorch API. However, if you do not have an increased need to dive into historical research for your applications, you can do without Lua.

Julia

Julia is a high-performance programming language that focuses on numerical calculations. As a result, it also fits wonderfully into the mathematically oriented world of artificial intelligence. Julia may not be the most popular coding language at the moment, but wrappers like TensorFlow.jl and Mocha offer good deep learning support. If the relatively small ecosystem is not an exclusion criterion for you and you want to benefit from Julia's focus on high-performance calculations, you should take a look.

This article is based on an article from our US sister publication InfoWorld.