Translator|Liu Tao
Reviewer|Sun Shujuan
Artificial intelligence (AI) and machine learning (ML) are our daily companions. It is difficult to imagine without algorithms and statistics Model what life would be like. Whenever we hear the word machine learning, the first thing that comes to mind is Python. Because Python has long been the voice of machine learning, it has played an important role in helping implement the technical aspects of machine learning.
Python is probably the most beautiful machine learning language, used by 48.24% of developers. Because Python has powerful and convenient low-level packages and high-level API interfaces, it has unparalleled advantages in all fields of scientific computing, but it also has some disadvantages when used for specific tasks. Therefore, the need for alternative languages to Python is becoming more and more common.
Currently, many emerging languages are equivalent to or even better than Python in terms of performance. So it's no longer the only option for machine learning. Scala, Julia, MQL5 and other languages that are not a superset of Python can be used to develop and provide machine learning applications. So machine learning is no longer limited to Python.
This article will explore the emergence of new machine learning languages, how they are eroding Python’s market share, and how machine learning will change in the future.
Let us discuss some of the disadvantages of Python , these shortcomings are often faced by developers and data scientists.
Python development speed is fast, but calculation speed is very slow. It uses an interpreter rather than a compiler. It is slower than other data science programming languages due to executing sequential code. Python is slower than C because C has many useful tools and libraries. Unless you master vectorized code, you'll notice how slow it is.
Cython is a superset of Python. It compiles Python source code into C language code. The most important thing is to provide C language level computing speed without additional computing resources. Many programmers use Cython to write Python code that runs as fast as C language, but is simpler and easier to read.
Python has huge flaws in its design, which is caused by its dynamic typing. Generally, dynamically typed variables in programming languages do not require special declaration. Python uses duck typing, which can be confusing. In duck typing, an object's class or properties are less important than its functionality. Duck typing does not require type checking. You can also verify processes or properties.
Python takes up a lot of memory due to its large structure. Additionally, Python data types are flexible in terms of memory consumption. It is not suitable for memory intensive tasks. Its flexible data types also result in memory consumption. Therefore, memory management in Python becomes challenging when you create large and long-running Python systems.
Compared to other languages, Python threads are less efficient. Although Python is multi-threaded, only one thread can execute at a time. Therefore, multi-threaded Python provides single-threaded processing efficiency. Python has a global interpreter lock (GIL) that only allows one thread to use it at a time. Multiple threads can be run simultaneously only if Python uses native libraries. In addition, Jython, a superset of Python, can implement multi-threading, while Python cannot.
Python is really great. But it can't be both The Flash and The Incredible Hulk at the same time! Someone might need The Flash, someone might need The Hulk. User needs are diverse. Likewise, Python is not designed for mathematics and data science applications. It requires a third-party library like NumPy or Tensorflow, specialized for deep learning algorithms. Therefore, data-specific programming languages have advantages over Python.
For example, in the business world, machine learning requires speed and scalability to reduce execution time. You can't keep customers waiting too long. So you need faster ML languages (General Purpose Functional Programming Languages) to perform. The faster the better.
Now, Python is fast, but what else can be faster than Python? Yes, it's Julia, or Scala!
In this case, data scientists prefer to use a different programming language than Python.
in various application environments , there are several Python alternatives that perform as well as or better than Python. Here are some Python data science alternatives:
Julia is a new high-level dynamic programming language that is innovative, fast and comfortable. It is a general-purpose language capable of writing various applications. It is worth mentioning that a large part of its package ecosystem and functionality is geared towards advanced numerical computation, making it ideal for machine learning.
Julia is built on multiple languages, including C and high-level dynamic class languages such as Python, R and MATLAB. Julia draws on the optional types, syntax, and features of these languages because Julia's goal is to combine their strengths and eliminate their weaknesses.
Julia’s creators wanted to develop a language that could handle scientific computing, machine learning, data mining, large-scale linear algebra as quickly as C , distributed and parallel computing. However, they eventually developed a language that was faster. Even though Python is getting faster, Julia still outperforms it.
Julia simplifies many mathematical notations used in machine learning. It provides diverse GPU programming packages such as ArrayFire, which enables the GPU to execute general-purpose code. Each package has its own unique programming model, for example, NVIDIA has CUDA. Jl, AMD has AMDGPU. jl and oneAPI.
Machine learning engineers can quickly deploy Julia in large clusters, benefiting from its powerful tools such as MLBase.jl, Flux.jl (deep learning), MLJ.j (general machine learning), and Knet.jl (deep learning). Flux is a high-speed deep machine learning library that comes preloaded with additional tools to maximize Julia's capabilities. Likewise, ScikitLearn.jl, TensorFlow.jl, and MXNet.jl for ML applications are included.
Julia is good at solving complex computational problems. Therefore, many famous universities, including Stanford University and Tokyo Metropolitan University, offer Julia courses. Its performance is also very solid compared to Python.
Many industry executives like Logan Kilpatrick believe that Julia is the future of machine learning and data science.
Julia’s main features:
Scala is a high-level programming language that supports both object-oriented and functional programming techniques. Martin Odersky created it and officially launched it in June 2004. Scala is growing in popularity among developers and is leapfrogging today's technology.
Scala is a Java Virtual Machine (JVM) language that is compatible with Java applications and libraries. Because it lacks the concept of basic data, it is often considered a static language. Its multi-paradigm, multi-core architecture is complex.
ApacheSpark is a powerful and fast real-time data streaming and data processing tool. Scala Spark facilitates complex mapping, ETL and large data processing tasks. Scala allows users to implement new Spark functionality by understanding the code. Scala's compatibility with Java enables programmers to quickly master object-oriented concepts.
SparkMLlib contains high-quality algorithms and excellent performance in Spark, making it a scalable machine learning library. Classification, regression, clustering, collaborative filtering, and dimensionality reduction are all included in Spark’s MLlib machine learning library. Additionally, Breeze, Spire, Saddle, and Scalalab are some other ML libraries that help in creating powerful data processing applications.
ApacheKafka is an open source distributed event streaming platform. With the popularity of Python, Spark has also become popular. Anything that executes slowly in Scala Spark is bound to crash in PySpark. Additionally, you can use the TensorFlow Scala library to create an adaptable, high-performance serving system for machine learning models.
Scala's static typing facilitates complex applications. Its JVM and JavaScript runtime enable high-performance systems to easily access libraries. Additionally, its performance is better than Python. It also holds its own in comparison to Python.
Key Features of Scala
Some core features of Scala enable efficient data science calculations:
MQL5 is an advanced object-oriented programming language that provides advanced data analysis and machine learning functions. It is based on the widely used and well-known programming language C and is known for its speed and versatility.
MQL5 is not an everyday ML language like Python, Julia or Scala. It was created specifically for financial markets to monitor financial instruments. At its core, the language is similar to other languages but has unique features. MQL5 supports integers, booleans, literals, strings, dates, times and enumerations. It defines both structures and classes as complex data types.
The MQL5 language documentation lists functions, operations, reserved words, etc. In addition, it provides data types such as integer, Boolean, literal, string, date and time. It has complex structures and classes. In addition, the documentation includes standard library class definitions for trading strategies, control panels, custom visual effects, file access, etc.
In addition, MQL5 has more than 1,500 source code libraries for new application development. You can use the ALGLIB library which contains a large number of numerical analysis functions. Likewise, there are TimeSeries library for processing time series and Fuzzy library for developing fuzzy models and various other libraries.
MQL5 is a powerful programming language that can help you build real-time systems and provide visual decision-making assistance. MQL5 supports enumerations, structures, classes and events. By increasing the number of main embedded functions, MQL5 programs can communicate with DLLs.
MQL5 has a syntax similar to C, making it easy to convert programs written in different programming languages into MQL5 programs. Therefore, you can achieve the same efficiency as C when using data analysis, artificial intelligence or financial tools as a trading robot.
Main features of MQL5
Some core functions of MQL5 enable efficient data science calculations:
Programming language is like driving a racing car. A suitable car is essential, not to mention a driver. Likewise, as a data scientist, you are the driver of these unique sports cars.
Every data scientist or developer has their own requirements and specifications for specific technologies. The best technology choice depends on the viewing angle and functionality you need. Therefore, it is difficult to make the final choice.
If you want to implement multi-process computing and require very high computing speed, you can choose Julia. It's the fastest of the three. On the other hand, if you are doing a large project, Scala should be a better choice as it does the job. If you are interested in financial instruments, MQL5 is the best choice.
Similarly, each programming language has its own characteristics and areas of expertise. Therefore, it is best to choose a language that meets your requirements and specifications.
Machine learning is a continuous and evolving process. Over time, it emerged with the Standardized ML (SML) language and became popular in Python. Today, there are diversified developments in machine learning languages with different needs.
In short, Python is an excellent machine learning language. But Python is not a data science-specific language, and there are more modern programming languages that can perform specific tasks more efficiently.
As a result, emerging programming languages are gaining market share and growing in the field of machine learning. Hopefully, they too will become more commonplace in the next few years.
Original link: https://hackernoon.com/not-only-python-problems-errors-and-alternatives
Translator’s introduction
Liu Tao, 51CTO community editor, is the person in charge of online inspection and control of the system of a large central enterprise. His main responsibility is to strictly review the missed scans, penetration tests, baseline inspections and other inspection work for the system online acceptance. He has many years of network security management experience. Experience in PHP and Web development and defense, Linux usage and management experience, and rich experience in code auditing, network security testing, and threat mining. Proficient in SQL auditing, SQLMAP automated detection, XSS auditing, Metasploit auditing, CSRF auditing, webshell auditing, maltego auditing and other technologies under Kali.
The above is the detailed content of Why the rush to find a replacement for Python?. For more information, please follow other related articles on the PHP Chinese website!