What is your playlist when programming the encoding
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.
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 resulted in 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 avoided with the help of Anaconda. Nevertheless, it would be welcomed if the Python community were finally completely 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.
In all probability, 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 newer versions, the creation of Java code is no longer a horror. Programming an AI application in Java may feel a little 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.
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 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:
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 immerse yourself in historical research for your applications, you can do without Lua.
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.
- Is dirt edible
- Is it good or bad to settle in India?
- Which mountains begin with the letter D.
- Should our history books be rewritten?
- What is a huge fund
- Who called Indian Indians
- Is Sinfonia just a mini symphony
- Will restaurants ever start using metal straws?
- Law firms will pay for law school
- What would happen if the earth exploded?
- How can we live without a condom?
- Which elements can be plasma
- What is burnout after vacation
- What songs did Elvis sing
- Is Pina Colada a rum or liquor
- What are the types of anarchist theories
- What exactly are Socratic achievements
- What living things grow very quickly
- How do you tease a girl
- How rich is Santa Claus
- Are American Courts Racist?
- What do wisdom teeth look like
- Programming will die soon
- How much time is there in 1 second