Wolfram Mathematica — Why

This page is mostly focused on:

Do not confuse WL/WM with other things such as:

What is WM/WL as programming language

WL/WM is (by definition inspired by Leonid Shifrin):

Alternatively WL/WM is also often seen as term-rewriting system.

Among other things, WL/WM is CAS (computer algebra system) with a possibility to create your own math notations.

As a programming language, WL also has:

WL directly supports paradigms:

Also, OOP is not as streightforward in WL, but still can be implemented.

WL in its early days took its inspirations mainly from:

WM/WL: Pros and Cons

Pros:

Cons:

It is worth mentioning that one of the main flaws attributed to WM is it is slow. However, advanced WM users do not agree with it.

Details: is WM really slow?

The problem comes from WM rich sytax and support of many programming paradigms (there is talk by Leonid Shifrin where he shows that Fibonacci function can be created in around 20 vastly different ways).

Difference between usage of various paradigms in WM can result in million-time (yes) code speed up. It mostly comes from utilizing APL and FP constructs, which are not some high-level woodoo tricks, but rather intermediate WM features.

How do I actually use WM

I work as a stress engineer, and use programming as a support tool mostly for various secondary Data Science tasks (like processing output of CAE software).

To me WM in short is thinking laboratory for rapid prototyping (again, this definition comes from Leonid Shifrin).

As a hobby, I mostly use WM:

As a tool in payed work, I use WM:

I never had a colleague who used WM lol, so I have to avoid WM in a team-work.

Thus, whenever I need to share (eather code or standalone app), I am using other tools (Python, Excel, etc.).