
Mathematica Version 12 Released - mvm
https://blog.stephenwolfram.com/2019/04/version-12-launches-today-big-jump-for-wolfram-language-and-mathematica/
======
copperx
I encourage everyone to watch at least one of the many livestreams[1] that
Stephen Wolfram did while putting together this release. They changed my
perception of Stephen, which I had gotten from the critiques of him that are
everywhere on the internet. He is perpetually obsessed with his creation and
does not accept mediocrity from his developers; but does so without attacking
or belittling anyone, or feeling superior and being condescending, which I
thought was his "thing" from what I had read.

He might still have that adolescent ego, and in his blog posts he still comes
across as self-obsessed; but in his livestreams he comes across as a decent
human.

[1]:
[https://www.stephenwolfram.com/livestreams/](https://www.stephenwolfram.com/livestreams/)

~~~
alok-g
I have attended a live session from him and also spoken to him.

He did live coding for the demos where for any session of similar complexity
the speakers just copy-paste pre-written snippets. It shows both his genius as
well as the capabilities of Mathematica.

At one point, his code wasn't doing what he thought it should. His reaction
was that of a pure engineer, with no trace of masking or downplaying the
issue.

He was asked the same usual questions around open-sourcing, et al. His answer
was simple and sensible: That what they are doing cannot be done without a
commercial setting. He said that he would rather do a better job for the
customers than spend time on anything else.

~~~
z2
Curiosity as well. At a live presentation I went to a couple of years back,
his laptop couldn't connect to my company's projector. The first thing he said
was along the lines of, "Fascinating! I've never come across this specific
problem before!" Literally every other presenter I've seen facing such an
issue would bemoan technology or crack a joke about things 'always' being
broken.

~~~
aloer
He actually is interested in this and talks about it in his recent blog post
here [https://blog.stephenwolfram.com/2019/02/seeking-the-
producti...](https://blog.stephenwolfram.com/2019/02/seeking-the-productive-
life-some-details-of-my-personal-infrastructure/)

Search for EDID

> for high-profile, high-production-value events, I have a little box that
> spoofs EDID strings to force my computer to send a specific signal,
> regardless of what the projector seems to be asking it for.

~~~
z2
Wow, that was totally unexpected! Thinking back (circa 2013), I wonder what
video quality lessons he got out of that particular set-up. From what I
recall, we had something awful:

1) Presenter computer plugged into some sort of video capture hub, connected
to computer A with video capture card that would composite camera video with
slides. 2) Separate computer B running remote desktop into that computer to
broadcast to the web. 3) Another computer C, also with remote desktop,
connected to the projectors.

~~~
closeparen
Serious productions bring all video signals into a switcher [0] and compose
their outputs to screens/projectors/capture devices from there. You can tell
something like this is in use if there are sensible transitions between
different presenters' computers, and the audience doesn't have to watch the
resolution-negotiation phase.

[0]
[https://www.blackmagicdesign.com/products/atemconstellation](https://www.blackmagicdesign.com/products/atemconstellation)

------
cogs
I like Mathematica a lot, and I'm happy to see the client library for Python.
What it really needs though is a decent debugger. I'd upgrade today if this
release had one.

I think the people at Wolfram and heavyweight Wolfram Language users use
Eclipse - which provides support for debugging. Though running with Eclipse in
one window and Notebook in another is a bit of a dogs dinner.

In the Notebook environment I found the current debugging functionality to be
pretty terrible. The GUI needs to work much more like a modern IDE, to support
easy single stepping, inspection and editing of values, so us mere mortals can
figure out what is going wrong when results aren't what you expect (and this
is half of what programming is, after all).

In fact it might provide that somewhere among the layers of complexity of its
meta-debugging whatnots. But I never figured it out, and really I shouldn't
have to be fighting complexity when I'm just trying to find out why my program
isn't working.

A decent debugger would help us understand the product better than any number
of new documentation functions.

------
jakobegger
I wish Mathematica was more affordable. I loved using it as a student, but now
I can no longer afford it.

A professional license costs 3500€. Which is probably worth it if you use it
every day, but not so much if you just use it just once a month to make a
graph or integrate something.

They have a "hobby" license for 350€, which is reasonable, but according to
their license it can't be used for anything work related.

I think this is an issue with a lot of professional software. It's priced for
heavy users and if you are just an occasional user, you are out of luck.

~~~
JorgeGT
There's always Mathematica for the Raspberry Pi, completely free for personal
use! [https://www.wolfram.com/raspberry-
pi/](https://www.wolfram.com/raspberry-pi/)

~~~
marco_salvatori
Since a full version Mathematica is available on the Raspberry Pi, anyone who
is interested has a very inexpensive route to getting a free copy. Mathematica
is very functional on the Raspberry Pi and, I think, making the software
available as such is very generous of Wolfram. Also for those who cant afford
a Raspberry Pi, excellent mathematical functionality is available via the
Wolfram Alpha website for free.

~~~
mycall
> those who cant afford a Raspberry Pi

That is very few people who would use Mathematica, no?

------
dimitrov
I really think that Mathematica and Matlab failed to capitalize on the rise of
AI and ML in the last decade. Seems like Python is the only go-to language
these fields.

~~~
stabbles
Julia is a great choice as well: [https://julialang.org/blog/2018/12/ml-
language-compiler](https://julialang.org/blog/2018/12/ml-language-compiler)

~~~
thanatropism
It's a winner-take-it-all situation, though. R is already struggling as a
strong second-placer.

What's more: the numerics stack in JavaScript is being modeled after the
Python style, so when we're all dragged kicking and screaming to node (UMAP is
already implemented in js and that came out when?), those who have cut their
teeth on numpy and pandas will be a little less stranded.

------
mirekrusin
I know I'm dreaming, Stephen is rather on the opposite side, but if he would
open source it all/most of it, he'd be one of the most famous people around. I
wonder how he'd move financially wise with that kind of bold move?

~~~
maliker
Seems like he's far from open sourcing it. His team just published a long blog
post ([https://blog.wolfram.com/2019/04/02/why-wolfram-tech-isnt-
op...](https://blog.wolfram.com/2019/04/02/why-wolfram-tech-isnt-open-source-
a-dozen-reasons/)) explaining why they're closed source.

~~~
carlob
Honestly I read most of those reasons as reasons for not being free and
community-driven as opposed to not being open-source, and also more as a post-
hoc justification than a prediction on what will happen in the future.

As a matter of fact a large part of the Mathematica codebase is inspectable
(the part that is written in Mathematica itself) [1].

Disclaimer: I'm a Wolfram employee, but these are my opinions and any decision
on open sourcing the language would be way above my pay grade.

[1] [https://mathematica.stackexchange.com/questions/1742/what-
is...](https://mathematica.stackexchange.com/questions/1742/what-is-the-most-
convenient-way-to-read-definitions-of-in-memory-symbols-when-we)

~~~
jordigh
Most of Matlab's source code is visible too and its license allows you to
modify its visible source code and share it with other license holders too.

But that's still not enough and that's why I still sometimes work on Octave
(although I've been semi-inactive for the past few years). Freedom isn't a
spectrum; it really is all or nothing. Unless we're all free all the way, none
of us is. It's not fair of me to share Matlab or Mathematica source code with
people who cannot have access to the software that runs it, especially from a
mathematical and scientific point of view where reproducibility in software
should allow anyone to acquire that software.

~~~
IshKebab
That's not true at all. Lots of the actual Matlab code (i.e. code written in
matlab) is available. But none of Matlab itself is. That's where their value
is. Octave has fairly easily replicated a huge amount of the mathsy part, but
is their GUI or plotting code any good? Not when I last tried it.

~~~
jordigh
Prepare to have your mind blown, friend, try `type trapz` or `type cumtrapz`
in Matlab and read Mathworks-written m-file code to your heart's content (but
if you do, you're disqualified from ever contributing to Octave). Or even try
`edit xlsread` to _edit_ that source code.

Less excitingly, read its EULA. I can't find a copy of it because they don't
publish it, but I do remember a part that allowed you to modify and distribute
Mathworks-written m-code to other Matlab license holders.

------
jwr
Mathematica is a great tool. But in my case, there are two huge pain points
which limit my use of Mathematica:

1\. Horrible REPL experience. Yes, the notebook interface can display
graphics, cool. But I would take Emacs with paredit over it any day. After
structurally manipulating Clojure code in Emacs with paredit, using the
Mathematica interface is like a throwback to the 70s. You mean I need to
balance and match my parentheses myself?! Seriously? Debugging larger
expressions is like stabbing yourself in the eye with a dull spoon.

2\. Badly designed data structures, specifically maps (also known as hashes or
associative arrays). This is the most universal data structure, that can be
used for almost anything, storing mappings from keys to values. Using maps in
Mathematica is awkward and feels like doing precision watchwork in boxing
gloves. I don't know why this doesn't get more love, after all if all your
data fits in a matrix, Matlab is the competing tool, so better data structures
would let Mathematica get a nice competitive advantage.

If these two areas were improved, I would likely subscribe to Mathematica and
use it much more.

~~~
occamschainsaw
My experience has been the opposite of this. Mathematica/Wolfram lang seems to
be a much more functional(as in paradigm) language, because of
anonymous/lambda functions and “Tables”. Even loops are discouraged.

I use it for math/science stuff and I am delighted every now and then when I
figure out how to use mappings in a smart and concise way. My coding style in
Python changed quite a bit after learning Mathematica. However, I am not a
professional coder so take this comment with a rock of salt.

~~~
jwr
Mathematica borrows a lot of good ideas from many languages and paradigms. But
programming languages are a spectrum: whatever you consider "good", there is
usually something "better" slightly above it, you just might now know about it
yet (the Blub Paradox).

Moving from Clojure to Mathematica/Wolfram is a huge downgrade as far as data
structures are concerned. And associations are a particularly big failure.

------
xvilka
It is better to focus on Octave, SageMath, SciPy, and Julia instead. Or to
donate corresponding projects instead of buying a license of Mathematica. Of
course it is an amazing software, but science, especially the core one -
mathematics, should be open for everyone.

------
mschuetz
Might seem dumb but the thing that drove me away from Mathematica are the
stylesheets. Mathematica used to have a useful stylesheet that visibly
separated input, output and text content. But at some point, I think version 8
or 9, they removed that stylesheet. All the remaining stylesheets either don't
properly distinguish input and output, or look like crap.

I lost interest in reinstalling that stylesheet whenever I had to install
Mathematica on a new system and consequently, I lost interest in Mathematica.
Wish they'd reintroduce it as an easily selectable default sheet. Jupyter has
a much better default stylesheet but Jupyter lacks ease of use and
functionality.

Edit: The stylesheet I'm talking about was called NaturalColor and there even
is a stackexchange thread about its disappearance.
[https://mathematica.stackexchange.com/questions/17323/did-
ma...](https://mathematica.stackexchange.com/questions/17323/did-
mathematica-9-remove-some-previously-available-stylesheets)

------
armitron
I know Lisp and more specifically, Lisp machines, have greatly influenced
Mathematica but when I read that Wolfram is using Mathematica as a computer
shell I can't help but think that he's taken the Symbolics Genera paradigm and
ran with it. I'm certainly happy about that since nobody else seems to have
realized how well it fits in with the current era of having to deal with ever-
increasing information flows in disparate domains.

But I'm also regretting that Mathematica is not opensource since I'm convinced
this constitutes a great barrier that the vast majority of programmers today
will not attempt to cross.

------
chobytes
Really excited to try the new SQL interface. The old one was less than
pleasant to work with.

The Unity stuff is kind of unexpected and I’m curious to try that out too.

...Now I just have to see if my student license lets me upgrade...

~~~
carlob
> Really excited to try the new SQL interface. The old one was less than
> pleasant to work with.

Cool! I hope people find it useful, that's where most of my past year and a
half went :)

~~~
marmaduke
Maybe you can’t comment but it was neat (and huge time saver)to see something
like sqlalchemy’s reflection.

~~~
carlob
Actually we use sqlalchemy internally for the backend-specific code generation

------
JustFinishedBSG
Mathematica is really one of these tools I have zero use for but wish I did.
It's such an amazing accomplishment.

------
thomasahle
> nowadays the vast majority of what the Wolfram Language (and Mathematica)
> does isn’t what’s usually considered math

I wonder how much of actual Mathematica use is outside of mathematics.

The new AsymptoticSum and AsymptoticSolve functions sound useful though!

~~~
arnoud-buzing
It's used in more places than you'd think, e.g. Alexa:

[https://news.ycombinator.com/item?id=18726804](https://news.ycombinator.com/item?id=18726804)

~~~
phonon
That's Wolfram Alpha.

~~~
carlob
And what do you think wolfram alpha technology stack is built on?

~~~
phonon
Yeah, but at that point, we're already another step removed...okay, partial
credit.

------
phonon
Still don't understand why they don't have a good JSON REST API story. It's
like they have no expectation of Mathematica ever being useful in a server
based production environment.

~~~
carlob
Care to elaborate? I was one of the developers behind APIFunction and
GenerateHTTPResponse. If you are you talking about the ability to deploy a
REST API to our cloud I think you are wrong and I'd be happy to show you how.

~~~
phonon
I don't want to use the Wolfram cloud. I have no interest in tracking number
of monthly API calls. Say I wrote a nice notebook that does a bunch of useful
things. What's an easy way to deploy it on a server and connect to it with a
REST API?

It takes me a few minutes to do it with Python using Chalice and AWS Lambda.

I'm also not a fan of the primitive URL query syntax. Why isn't there a way to
generate an OpenAPI? A schema?

~~~
carlob
I absolutely feel your pain. As a matter of fact I've been lobbying internally
for a refresh of webMathematica for years. Maybe something is going to come
out in the near future. Please hold on :)

~~~
phonon
I was hoping there would be a big API rethink in this area for version 12 :-(

What I don't get, is that long term, making Mathematica useful for actual
server based production environments would open up an order of magnitude
larger revenue stream. Yet all I see is a fragmented, difficult to
use/understand/license environment. There seem to be a dozen, slightly
different initiatives, some basically unmaintained.

I mean, what the heck is all this?

[https://www.wolfram.com/engine/](https://www.wolfram.com/engine/)

I should seamlessly be able to prototype something through the notebook
interface, and then deploy it, in a standard generic way, and on a server I
control, that can be consumed by anyone who can read through a OpenAPI (with
auto generated docs and schemas).

Setting Alpha aside, what you seem to offer is a) a prototyping/notebook
environment, like Jupyter (yes, I know you came first) b) a programming
language tightly coupled with a really nice stdlib

The programming language itself, realistically, has no use outside your
libraries. And there seem to be very little third party Mathematica libraries.
The notebook environment is only useful for prototyping.

So the market you should want to grow into, is, "How do we allow people to
build something really easily, and then deploy really simply, in their own
server/DB environment, with reasonably standard API interfaces?".

The attempts to integrate with Python are a good start, but seem to be more
focused on the prototyping aspects.

Something like [https://www.django-rest-framework.org/](https://www.django-
rest-framework.org/) should be built in.

~~~
kenkangxgwe
Wolfram Language lacks many open specifications that a usual high-level
programming language should expose to their users, such as stdin stream,
concurrency, memory model and so on. To some extent, their toolchain and
design pattern are behind the state of the art, while the leaders are
confident about the design, cf. [https://blog.wolfram.com/2019/04/02/why-
wolfram-tech-isnt-op...](https://blog.wolfram.com/2019/04/02/why-wolfram-tech-
isnt-open-source-a-dozen-reasons/). Hoping they are pushing this great
software forward to another 30 years.

