
Mathematica v12.1 - taliesinb
https://writings.stephenwolfram.com/2020/03/in-less-than-a-year-so-much-new-launching-version-12-1-of-wolfram-language-mathematica/
======
dang
Ongoing related thread:
[https://news.ycombinator.com/item?id=22625682](https://news.ycombinator.com/item?id=22625682)

Probably too different to merge the submissions.

------
veer-chah
I have tried Mathematica for small duration and in general was wowed by it.

For free CAS I would recommend to give Axiom or FriCAS(more actively
developed) a run.

[http://fricas.sourceforge.net/](http://fricas.sourceforge.net/)
[https://en.wikipedia.org/wiki/Axiom_(computer_algebra_system...](https://en.wikipedia.org/wiki/Axiom_\(computer_algebra_system\))

~~~
mmillery
Now days, it's not often that I need to do heavy mathematical work, but I turn
to Sage [https://www.sagemath.org/](https://www.sagemath.org/) when I do.

Sage has a notebook interface, is built on Python, and incorporates many free
software math packages, like Maxima, into one system.

~~~
brummm
I used Sage heavily when working in string theory a long time ago. It's very
powerful. But for symbolic math, if possible, I would still use mathematica.

------
saboot
I'm a physicist and I've used mathematica sparingly off and on for several
years, mostly manipulating symbolic formulas.

I still do not understand what I'm doing half the time. Mostly just googling
and stackoverflow answers get me by. For example, I don't understand why I
can't use subscripts as symbols?

Any recommendations on trying to 'get' mathematica?

~~~
b215826
As someone who started using Mathematica only very recently, I found _The
Wolfram Language: Fast Introduction for Programmers_ [1] very helpful. It's
the quickest way to get started with the Wolfram language if you've seen a bit
of functional programming before, e.g., Python's map(F, x) is equivalent to
Wolfram's Map[F, x], reduce(F, x) equivalent to Fold[F, x], etc. There's also
_An Elementary Introduction to the Wolfram Language_ by Stephen Wolfram [2,3]
which is available freely as Mathematica Notebooks, although I'm yet to read
it fully.

[1]: [https://www.wolfram.com/language/fast-introduction-for-
progr...](https://www.wolfram.com/language/fast-introduction-for-
programmers/en/)

[2]: [https://www.wolfram.com/language/elementary-
introduction/2nd...](https://www.wolfram.com/language/elementary-
introduction/2nd-ed/)

[3]: [https://www.wolfram.com/language/elementary-
introduction/nbs...](https://www.wolfram.com/language/elementary-
introduction/nbs/EIWL2-Notebook-Archive.zip)

------
armitron
Mathematica is worth learning and using since it's so far ahead of the open
source alternatives (e.g. Python/Jupyter and associated libraries ) in
usability/interactivity/rapid development that it comes across like future-
tech.

Unfortunately it's also the single tool most hampered by its licensing and
silo-like ecosystem.

~~~
Aardwolf
When I had the chance to try it, I didn't find it that easy to use due to the
interface which felt clunky: the way the command line works: no feature to
repeat previous comnand with up arrow, have to edit previous existing one,
requiring more mouse usage, weird forms of cursor placement, weird default
enter key behavior.

In ipython, matlab and octave it's much easier to repeat and modify last
commands, which is something you seem to need all the time when experimenting
with math.

What was I missing, usability/interactivity/rapid development wise?

~~~
kccqzy
You are just not used to it.

> the way the command line works: no feature to repeat previous comnand with
> up arrow, have to edit previous existing one, requiring more mouse usage,
> weird forms of cursor placement, weird default enter key behavior.

It's not a command line. It's an interactive notebook. It's an entirely
different experience. Repeating and modifying last commands can still be done
with arrow keys, then Shift-Enter. Also, when you are doing math, you spend
way more time thinking than typing and manipulating; the time needed to move
your hands to the mouse is minuscule by comparison.

------
saagarjha

      ds = CreateDataStructure["LinkedList"]
    

String keys to access types is kind of yucky, to be honest :( Couldn't there
be a better way to represent this than having to look up the documentation
([https://reference.wolfram.com/language/ref/$DataStructures.h...](https://reference.wolfram.com/language/ref/$DataStructures.html))
to see what would work?

~~~
carry_bit
In these cases the notebook interface will normally show you all of the
choices via autocomplete.

~~~
lonelappde
Even for string?

Why not define a LinkedList constant?

~~~
carry_bit
Yes, in WL strings are commonly used in a matter similar to enums in other
languages.

The thing to keep in mind is that WL is based on symbolic replacement. You
normally wouldn't define that kind of function as taking in a parameter (i.e.,
CreateDataStructure[x_] := ...), rather you'd define it for each case
separately (i.e., CreateDataStructure["LinkedList"] := ...).

~~~
davnn
Well.. if constants were a thing you could probably also pattern match them.

~~~
garmaine
It's a constant string :P

------
jiggawatts
Does anyone know of a good, strongly-typed computer algebra system similar to
Mathematica?

By strongly typed, I mean that Mathematica is weakly typed in the sense that
it simply assumes that all expressions are Complex numbers. At most, it can
restrict itself to some subset such as the Reals or Integers, but that's it.

It can't, for example, perform general simplifications over non-associative
types such as most Matrix algebras, the quaternions, or any geometric algebra.
Most built-in functions operate only on Complex numbers, or expressions over
the Complex numbers, etc...

I'm looking for something I can use to do symbolic expression manipulation for
physics equations in terms of geometric algebra, but as far as I know there's
nothing out there with the capability.

~~~
wdkrnls
FriCAS and Axiom

~~~
0-_-0
Does that mean I can solve a system of equations in vector form, e.g. solve
this for X:

A·X=d1

B·X=d2

(A⨯B)·X=(A⨯B)·C

------
ur-whale
Mathematica is an amazing tool, but it has one huge downside: reproducibility.

It is a closed monolith, and - especially when you start to use advanced
features - you derive results from it that can't be independently verified
because of the closed source nature of the monolith.

~~~
alimw
Has this ever happened to you? There can't be many areas of mathematics in
which it could.

~~~
lonelappde
What do you mean? There are many areas of math where providing a proof
matters.

------
eric234223
If a software is used to create data that is okay like editing text files in
microsoft windows. But computational software such as Wolfram being closed
source bothers me a lot. There is no way to verify the science you do is
correct.

~~~
ChrisLomont
Quite often it gives you a result that you can then prove directly, or check
with other tools. The benefit of MMA is that it has a lot of tools and a good
interface, good documentation, and a large community.

In practice, pretty much no one doing science has the expertise or time to
completely verify the science they are doing - they are building on centuries
of knowledge across many disciplines, and for the most part the community
verifies each part as they build knowledge.

And certainly opensource does not allow the vast majority of people "to verify
the science you do is correct." They'd have to check the code, the compiler,
the hardware, ensure no cosmic rays flipped bits during computation, and so
on.

So I'd not worry too much about the closed source vs open source nature of it.
It's a solid tool that enables lots of research.

~~~
reikonomusha
The “cosmic rays” argument, to me, is inane. It simply doesn’t practically
apply and is certainly not an argument against the benefits of open source
code. You’re castigating the whole practice of code review, computer-aided
proofs, automated theorem proving, etc.

~~~
rayhem_
And how many people doing "science" do code review, computer-aided proofs, or
automated theorem proving to verify their code is correct? Very, very, very
few.

~~~
david38
This. In theory it’s open, but in reality, people just want to get this work
done mostly.

Also, if something is that important, people can and do perform the same
calculations using different packages or different algorithms.

Write two algorithms in MMA, or one in MMA and one in something else, and
every so often spot check a few cases by hand.

------
bk322
Kudos to the team for the great release.

Two things I miss when working with Mathematica: refactor-rename variables and
a usable object-oriented programming support.

Refactor-rename is available via Eclipse-based IDE; however math typesetting
is not available there (it makes a difference for large
equations/expressions).

There are a lot of community-developed approaches to OOP. I tried a number of
these, sticking with a particular approach, but it also leave a lot to be
desired. OOP is useful in that it ties together data and functions which act
on the data. Inheritance/composition are useful if you compute properties of
similar objects.

~~~
davnn
Mathematica is mostly used for relatively small, notebook-style, applications.
Both features, while probably useful for some people, don‘t seem to be
necessary for the more popular use cases.

------
SethTro
This is one of the few pieces of non-free software I'm happy to pay for.

I've been doing some PenPlotter for fun, I wonder if I can use Mathematica
with HatchFilling for some of my plotting now.

------
carry_bit
It also appears to be faster than v12.0; my WolframBench score with 12.1 was
significantly higher than 12.0 (25-50% higher).

The new IPFS integration is exciting; might see if I could write a static site
generator that automatically publishes to IPFS.

------
currymj
they put the biggest improvement upfront lol: things now scale properly if you
have a 4K monitor. people (myself included) have been squinting at very tiny
font for years, and now they don't have to anymore!

------
superflit
Anyone here uses Mathematica besides Physics or pure mathematics?

I mean is it worth using the machine learning from Mathematica or Tensorflow
is better?

Is it better to use integer optimization solvers or then Mathematica?

In which ways you are using Mathematica and _Really_ leveraging it?

Sorry for my question but I think and suspect I am missing something bigger.

Will be glad if someone Illuminate me. And please be free to PM if your
project is discreet.

~~~
b215826
> _Anyone here uses Mathematica besides Physics or pure mathematics?_

My adviser (a physicist) uses Mathematica for all non-physics computations as
well. It's a clunky language for general purpose computation and doesn't play
well with external programs and libraries. The user experience on Linux can
also be quite haphazard with frequent crashes and lack of good HiDPI support
(I haven't used version 12.1). It's also hard to run headless programs written
in Wolfram language. But if you're okay doing everything inside the
Mathematica GUI and don't care about the fact that it's a walled ecosystem,
don't have a preferred text editor, and don't particularly care for Unix's
one-thing-well philosophy, Mathematica might work for you.

------
reikonomusha
The language began as something of a gem and each release seems to be muddying
it up. Another commenter already mentioned the string argument to make a data
structure. It also looks like built-in methods on these objects are also
strings.

The metadata and annotation facilities seem unclear. Sometimes they change the
appearance and behavior of the object, sometimes they don’t.

Some functions now are curried by default. The choice probably makes symbolic
programming and pattern matching trickier since it breeds a variety of
representations of the same concept. (Pattern matching and rewriting
_strongly_ favor canonicalization.)

All and all, it’s beginning to look like the core Wolfram Language is
beginning to tremble under its own complexity. I can’t imagine coping with
buggy code at all in this framework.

------
TheRealPomax
Now if only it wasn't $350 for home use. Like any non-privileged student can
afford that.

~~~
orr721
It is free on the Raspberry Pi computer.

~~~
TheRealPomax
It is, and that's how I use it, but we also find that computer in the category
"horribly underpowered" category of devices that can run Mathematica.

------
drwu
Seems to support 4k HiDPI on windows finally.

------
mehrdadn
Is there any reason not to call Mathematica AI at this point? I swear some of
the things it does look more like black magic than what we call AI nowadays...

~~~
HPsquared
I'd call it more of an "expert system" \- it has a HUGE amount of rules and
methods built-in, but at the end of the day it's all deterministic.

~~~
balfirevic
> but at the end of the day it's all deterministic.

That's not what's preventing it from being AI.

------
vtail
Many people on this and similar threads rightly question whether results
received with the help of a closed source software are reproducible. I think
it's a fair question, but these discussions often miss a couple of important
points.

First, there is a question of theoretical vs. practical reproducibility: true,
in _theory_, an open-source codebase with many millions of lines of code of
highly complex transformation can be checked for accuracy by anyone. In
_practice_, only very few insiders will have both technical understanding
_and_ time to verify the correctness of this or that algorithm, and everyone
else would need to rely on their expertise. That situation is no different
from using a proprietary system if we trust their authors.

Second, while it might be shocking for someone, most of the science, outside
of maybe math, it's not _practically_ reproducible. Most of the articles are
behind paywalls, don't have enough data to replicate their results (even
economists much more often than not won't include their raw data or algorithms
or both). Also, no one who is trying to build a scientific career would try to
replicate someone else's results, especially if it requires some costly
equipment, reagents, etc. - the rewards in the scientific community are for
novel results. Replication crisis[1] describes this pretty well.

Most of the software that runs LHC at CERN is probably not inspectable by a
regular Joe the physicist, yet somehow the physicist community somehow trusts
their results, etc.

In summary, while an open-source software of Mathematica quality would be
awesome in theory, I highly doubt it would be practical for a long time.

[1]
[https://en.wikipedia.org/wiki/Replication_crisis](https://en.wikipedia.org/wiki/Replication_crisis)

~~~
reikonomusha
Reproducible has a much simpler meaning than that you describe: it’s feasible
for any scientist to recreate the result perpetually. While inspection of the
methods might help one understand the result—and I think itself holds a great
deal of value to especially mathematicians—just the simple ability to compute
the answers yourself without binding yourself to a contract or paying $1000’s
of dollars in license fees is a valuable aspect to science. Especially so when
the calculations are at the level of pure algebraic manipulation.

Your (and Wolfram’s!) argument about “not needing to see the insides because
really only 10 people in the world understand it anyway” should _really_ be an
argument _for_ opening it up. If 10 people could understand it, and we must
intersect that group with folks who can access the source, we are left in
quite a dismal state of affairs.

~~~
vtail
While I don't disagree with your definition of reproducibility, I want to
point out that very few papers would satisfy that criteria, regardless of
their use of a closed- vs open-source software.

Here is a recent example: Imperial College COVID-19 response team published an
article[1] where they modeled different effects of non-pharmaceutical
interventions, such as suppression and mitigation on the number of infected,
deaths, etc. This is a very interesting result, but it's impossible to
replicate their results in practice without contacting the authors, as their
methodology is not enough to reproduce it.

While someone else[2] posted their own model that is very well documented and
fully reproducible by anyone with a $230/year personal license.

While theoretically [1] is high science and [2] is not, in my own opinion [2]
is better than [1]. I would love more science to be done and discussed that
way. Ideally, using open-source software, but in practice, using Wolfram
Language, in that case, is already good enough in my opinion.

PS. I'm not affiliated with Wolfram Research in any way.

[1] [https://www.imperial.ac.uk/media/imperial-
college/medicine/s...](https://www.imperial.ac.uk/media/imperial-
college/medicine/sph/ide/gida-fellowships/Imperial-College-COVID19-NPI-
modelling-16-03-2020.pdf?fbclid=IwAR3RwGVLlRhBGLT2_KdL1RXk6_XF04RFSYgz5MjhN6LLysKbGonXGnRiZOY)

[2]
[https://community.wolfram.com/groups/-/m/t/1901002](https://community.wolfram.com/groups/-/m/t/1901002)

~~~
lonelappde
Making an exact copy of an experiment is the lwest level of reproducibility.
In science , reproducibility means reproducing the _results_ with different
components (people, tools, methodology), showing robust Independence form
potential confounders.

