Photo source: Pixabay.com

Making address: https://github.com/mjbahmani/10-steps-to-become-a-data-scientist

R language

R is a language and environment for statistical calculations and graphs. It is a GNU project similar to the S language and environment developed by John Chambers and colleagues at Bell LABS. R can be viewed as a different implementation of S. There are some important differences, but a lot of code written in S runs under R without modification.

Advantages:

  • End-to-end development to execution (some Brokers packages allow execution, IB)

  • Fast development (60% less code than Python)

  • Open source package more

  • Mature quantitative trading package (Quantstrat, Quantmod, PerformanceAnalyitics, XTS)

  • The largest community

  • Use RCPP to integrate R and C++/C

Disadvantages:

  • Slower than Python, especially in iterative loops and unvectorized functions

  • Worse than Matlab drawing, it is difficult to achieve interactive charts

  • The ability to create standalone applications is limited

Python

Python is an interpreted high-level programming language for general-purpose programming, created by Guido van Rossum and first released in 1991. Python’s design emphasizes code readability and uses lots of white space. Its structure makes it clear for both large – and small-scale programming.

Advantages:

  • End-to-end development to execution (some Brokers packages allow execution, IB)

  • Open Source packages (Pandas, Numpy, scipy)

  • Trade packages (Zipline, PyBackTest, PyalgoTrade)

  • Best for general programming and application development

  • Glue language that connects R, C++, and other languages

  • The overall speed is fastest, especially in iterative cycles

Disadvantages:

  • There are some immature packages, especially trading packages

  • Some packages are incompatible with other packages or contain overlap

  • The community in the financial sector is smaller than R

  • The same operation requires more code than R or Matlab

  • Tracking silent Errors can take a long time (even with a visual debugger /IDE)

MATLAB

MATLAB (Matrix Laboratory) is a multimodal numerical computing environment. A dedicated programming language developed by MathWorks, MATLAB allows matrix operations, function and data graphing, algorithm implementation, user interface creation, and interaction with programs written in other languages, including C, C++, C#, Java, Fortran, and Python.

Although MATLAB is designed for numerical computation, the optional toolbox uses the MuPAD Symbolic Engine for symbolic computation. The additional package Simulink adds graph multi-domain simulation and model-based design for dynamic and embedded systems.

Advantages:

  • The fastest mathematical and computing platform, especially vectorization/linear matrix algebra.

  • Business grade software for all areas of mathematics and transactions.

  • The script is short, but highly integrated with all the packages.

  • Best visualizations with graphs and interactive charts

  • Good testing and support.

  • Easy to manage multithreading support and garbage collection

  • Best debugger ever

Disadvantages:

  • Cannot execute, must be converted to another language.

  • Expensive: Around $1000 per license, plus an additional $50+ per added package.

  • Does not integrate well with other languages.

  • It is difficult to detect deviations in trading systems (which are built for mathematical and engineering simulations), so extensive testing may be required.

  • Poor iteration loop performance.

  • You cannot develop a separate application.

Octave

Octave can be considered a GNU version of the commercial language MATLAB, a scripting matrix language whose syntax is about 95% compatible with MATLAB. Octave was designed by engineers, so it comes preloaded with programs commonly used by engineers, including many time series analysis programs, statistical programs, file commands, and plotting commands that are identical to MATLAB.

Advantages:

  • First, there is no robust Octave compiler currently available, and there is no need to, because the software is free to install.

  • Octave and Matlab share the same language elements, with a few exceptions, such as nested functions. Octave is still in active development, and every deviation from Matlab syntax is considered a bug or at least a problem to be fixed.

  • Octave has many toolkits available, and as long as your program doesn’t require graph output, running with Octave is pretty much the same as running with Matlab without making a lot of changes.

  • Graph capabilities are an advantage of Matlab. The latest version of Matlab includes the GUI designer, which contains a number of great visual features.

  • Octave uses GNU Plot or JHandles as a diagram package, which is closer to the diagram package in Matlab. However, Octave does not have gui-like designer components, and its visualization mechanism is limited and not compatible with Matlab.

  • It’s a similar story with integrated development environments: Octave has a QTOctave project, but it’s still in its early stages.

  • The collaboration of the Octave community is likely to help the software provide better, more compatible graphics and GUI capabilities soon.

Disadvantages:

  • It’s just a free open source version of MATLAB that doesn’t bring anything new to users.

The following table lists tools commonly used by data scientists and machine learning engineers to see how popular they are.

The original link: https://towardsdatascience.com/r-vs-python-vs-matlab-vs-octave-c28cd059aa69