Hacker Read top | best | new | newcomments | leaders | about | bookmarklet login
Mathematica Version 12 Released (blog.stephenwolfram.com) similar stories update story
199.0 points by mvm | karma 132 | avg karma 18.86 2019-04-16 16:23:33+00:00 | hide | past | favorite | 124 comments



view as:

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.

Mathematica has some great machine learning tools https://reference.wolfram.com/language/guide/MachineLearning... it looks like the have added even more http://www.wolfram.com/language/new-in-12/

It has typical Keras net types and algos and nice interactive widgets for watching it run. It works on CUDA as well.

They’re proprietary, so it’s a good thing.

and python is a jumbled mess of versions, package managers, packages, distributions, etc. that isn't a good thing either.

Which perfectly illustrates how important being free and open source is.

In spite of not having commercial support and versioning shenangians, people still choose Python over the commercial alternatives.


I mean, since Wolfram is a valuable company it's clear plenty of people choose commercial software over their free alternatives

People use Mathematica and Python for completely different things. By and large they don't compete.

Yes and No. If you ignore Python being a powerhouse in the scripting world and just focus on numerical stuff like matrix and symbolic math, both Python and Mathematica have that. Some people like myself that love Python and know how to use it and Numpy bought Mathematica licenses. I still use Python for scripting, but I've moved most exploratory work to Mathematica. I miss Python's Spyder IDE, but with Mathematica I can enter equations into Notebooks much more elegantly than having to do OO code which looks significantly different than the math.

The vast majority of people want stuff for free, there isn't any grand reasoning beyond that for choosing Python.


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.


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/


I love his livestreams because of how normal he is. His meetings sound like any other meeting I've been. It's really a great watch.

Geez, I hope not. Any other meeting I've been to has been a horrible waste of time, where 50% of it is spent trying to figure out why the VC isn't working, and the other 50% is spent scheduling the next meetings.

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.


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.

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...

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.


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.


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


I got one of these too, for an almost similar reason.

Yeah he’s like not always nice, but he’s certainly not how I thought. The streams convey a much better personality than his talks or his writing.

Stephen is doing a livestream tonight and open for Q&A if anyone wants to see a live tour of v12 features and ask any questions. Twitch: twitch.tv/stephen_wolfram and Youtube on the Wolfram Research channel https://www.youtube.com/user/WolframResearch

I am a current employee of Wolfram Research and created an account just to say how very wrong this is. He literally yelled at an ex-employee so hard they went into labor. He is utterly convinced that everyone around him is an idiot, and that one day the world will realize how wrong they were about his ideology and dedicate museums to his honor, etc. He even compared himself to a Greek god in one of his meetings.

He's definitely the kind of person that wouldn't dare scream at someone in real life, but will gladly tell you how much of a PoS you are in the middle of a meeting with a dozen other people.

My fellow employees (except for the hard core brown-nosers) are the most kind and intelligent people I've had the pleasure of working with. They are the true geniuses being this release. SW is the tyrant that the rest of the company is trying to fight.


In the livestreams he says things like "this is stupid", or "what the heck is this?", but I have never heard him say "YOU are stupid". Is he acting differently than normal in his livestreams?

Also, one thing that I found a bit troubling is that the employees generally sound terrified, but I've had bosses who were great AND terrifying at the same time, so I have given Wolfram the benefit of the doubt.

> He's definitely the kind of person that wouldn't dare scream at someone in real life.

What do you mean exactly here, given that in the paragraph above you said he screamed at an employee so hard she went into labor?

> He is utterly convinced that everyone around him is an idiot, and that one day the world will realize how wrong they were about his ideology and dedicate museums to his honor, etc.

Is that something that he has said, or is it hyperbole?


Outside of work he won't be screaming but has a power Trip being the boss

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?

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...) explaining why they're closed source.

wow, I was expecting an intelligent list of reasons why he cannot explain how mathematica works internally (I'm sure there are many). Instead, this post is a ridiculous strawman argument against the open development model.

For all the reasons he says, he could perfectly publish the source code of mathematica (e.g. under the AGPL) but still do not accept external pull requests. There are many successful open-source/closed-development projects out there.


I think you misinterpreted his point. It's not that he can't give Mathematica away as it stands now. His point is more that Mathematica couldn't be developed as a free and open project with just contributions from random people.

The point he doesn't mention is that it costs money to develop it closed source, and giving away the source (or even the binary) would cut off funding. I'm obliged to agree with him, since there isn't anything free that comes close to Mathematica.


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...


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.


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.

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.


One of the directions the company is taking to address this is to allow for running some things as a free tier on the cloud.

But I think the open vs. closed source discussion in academic research is not really about that: lots of Mathematica code is fairly concise and highly automated.

Let me make an example: suppose you're minimizing some complicated function and you claim to have found some minimum with Mathematica. Your source code looks like NMinimize[complicatedFunction[x], {x, 0}]. If I wanted to reproduce your result I would not need to use Mathematica, but access to the internals would allow me to see what tricks I need in terms of minimization method used, whether or not extended precision was necessary, etc...

Being able to rerun that black box minimization independently for free is not really reproducing my result, because we might both be observing the same bug in Mathematica.


I believe your job depends on you defending black boxes, but black boxes have no place in science or mathematics, at least not any black boxes that we create ourselves. That's my point. I shouldn't just tell you "minimise, this function, it worked" (or it didn't, who knows why). We should both be able to see exactly what that minimisation did and why it did or did not work.

I think you misread my comment. I'm agreeing with you on the importance of being able to inspect the code and I'm strongly against black boxes.

Where I don't agree with you is that open-source === free and community driven. There are a myriad of hybrid models where a for-profit company releases the code, yet doesn't accept pull requests from the community.

The all-or-nothing attitude that you just showed is actually a very good argument for those who are against open-sourcing within a company like ours. Do you really think a company will go from commercial to GPL in one step because: "freedom is not a spectrum"?


Non-free licenses that nonetheless make the source code available to licensees have long been used for scientific software. This licensing model alleviates concerns about black boxes even if it does not align with the FSF's mission.

Is all Mathematica source available to licensees? Is there any additional cost for a source code license? I understand that most companies (and sometimes even research groups) need/want to maintain ownership of their software. I'm ok with that. But I'm opposed to licensing schemes like that of Gaussian, Inc. where a source code license costs more than an all-platforms site license.


It alleviates some of the concerns about black boxes, but it doesn't really help with reproducibility, as other people who don't have access to the code will not be able to reproduce the results easily. That is, they won't be able to download the original source and fully understand what's happening.

That's true, and it is a reason that free software with a public VCS history is really the gold standard.

I've worked with enough non-commercial but restrictively licensed academic software that I'm willing to forgive commercial vendors for similar transgressions, so long as there is full source available to licensees.

Though I admittedly steer clear of restrictively licensed code when at all possible now. I gave up on GAMESS and switched to really open quantum chemistry software because I tired of not having any revision history in the source tarballs, and of having to re-agree to the license every time I wanted an updated version. Also because I want to build software that can be installed in a fully scripted headless manner, and a "fill out the license agreement" step precludes that.


There can be no compromise: we are small, independent and have very little income. You are part of a large company with hundreds of employees and millions of revenue. All we have is software freedom; if we compromise on that, we have nothing left.

Also, I didn't say that producing free software meant you had to accept patches from anyone or listen to anything they said. All it means is that you no longer forbid your clients from knowing how your code works and you no longer forbid your clients from sharing that knowledge and that software with each other. You don't have to offer extra support or open up a public bug tracker. You don't even have to offer access to your repos; giving your clients the tarballs would be enough.

The GPL isn't anti-commercial, but your job is structured to make you believe it is. It's possible to make a living without forbidding your clients from learning and sharing.


I agree with you. I stopped using Matlab for my academic work because I don't consider the results reproducible. Of course, that hasn't stopped 99.5% of control theorists, but every bit of useful code released in the open source alternative makes it easier to switch.

I'm more wondering why Mr. Wolfram would open-source the code, rather than why he would not.

...none of that makes any sense!

There's a lot of open source tech out there with 90% centralized design and decision making. Most open-source databases. Haskell and OCaml programming languages also have small groups of core devs... I think even Julia development is controlled by a very small group of people.

Open source the core language if you want it to survive, otherwise it will be completely forgotten and lost from history! Closed source programming languages have no chances of survival and increased adoption, even Microsoft and Apple know this now!

(Sure, keep closed the UI + some modules with truly innovative proprietary algorithms, bc most of your paying customers will keep buying your paid versions, you won't loose the revenue stream.)

Anyway, it's too late anyway...


The thing is, looking at that list... most of it actually seems reasonable to me. Quality software costs money, and that money comes from somewhere.

The problem is network effects. The blog post is right that if you are running a large deployment of things like R or Python, you are likely paying vendors and getting support contracts and all these things so that it's not really free-as-in-beer to you. But there are a lot of people not yet at that scale where it is free as in beer to them. An ecosystem based around R or Python has a lot of people who can't afford to pay for Mathematica. Those people are writing blog posts, or answering Stack Overflow questions. If I've just come up with a novel technique and I want to get it out there (either as someone in academia or elsewhere), my broadest reach is going to be to release R or Python code. Everyone with Mathematica can install R if they're curious, people who use R can't just install Mathematica on a whim to look at one research paper. If I'm an employee at a small company that is using Excel for analysis still, it's really easy to smuggle in R or Python and do an ad hoc pilot project that gets adopted, whereas it'll take me six months to get Mathematica through the approval process, and they'll probably tell me no.

So more packages get written for the open source ecosystems, more documentation gets written, I can share my work with more people. Even if R and Python are in every other way worse than Mathematica, over time, the network effects will drive more and more people to R and Python.


Some of that list looks reasonable to me (mainly what you pointed out, that software development costs money), but there's a heaping dose of old-Microsoft-style FUD about open-source ("Because open-source projects are directed by their contributors, there is a risk of hijacking by interest groups whose view of the future is not aligned with yours") mixed in there too. The core argument, though, seems to be that the Wolfram Language is a special case and could never be built in any other way because it would be too hard. I don't buy it. Everyone thinks their own thing is a special case, and it rarely is. Contrary to his argument, the core language doesn't really need to be informed by subject matter expertise in graph algorithms or machine learning or whatever. They're really just libraries, no matter what he says. And it doesn't really require that extraordinary a leap to have some core types like points and intervals and curves that are shared across the system, without fragmenting. His arguments are just not that convincing to me.

I don't think wolfram is a special case, it's just a complex end-user product that's polished and innovative.

I struggle to think of open source end-user product that has:

- technical innovation - polished UI/UX/documentation - a problem domain of moderate to high complexity

Can you name any?


Chrome, IntelliJ, Blender, RHEL, AOSP. Anyway, if he had restricted his argument to "polished software is hard with an open source business model" then I wouldn't be posting an unimpressed comment. Instead, the argument centers around Mathematica being a special case.

Maple got really close to being freed a long time ago, before they were bought by that Taiwanese Terminator company (Cyberdyne systems, or whatever they're called). I can't find a reference for it now, but one of the Maple admins said so in an interview.

https://mathics.github.io/ is open source partial clone. Frankly with out a source of income it wouldn't be what it is today.

Mathics is neat, but it is mostly an interface for a small part of the Sympy library and tries to mimic in a partial ad-hoc way the Mathematica syntax. Mathics also seems to be on life-support in terms of developer activity.

Sympy or Sage are much better examples of open source computer algebra systems, but they lack the pattern-matching weirdly-lispy language design of Mathematica (the Wolfram language, which while certainly weird, is very powerful).


And William Stein (founder of SageMath) just quit his tenured professor position at UW to continue working on CoCalc: http://blog.sagemath.com/2019/04/12/should-i-resign-from-my-...

This morning one of my Ph.D. students (Kevin Lui) said to me, "I may have to implement this [number theory] algorithm for my thesis using Magma, because [some number theory algorithm] is broken in Sage." My visible continued failure to make Sage a viable alternative to commercial closed source math software almost made me cry...

How do you feel about the OSCAR [1] project? It is similar to Sage in its mission, although smaller in scope, I guess. And it looks like they were able to secure significant funding (at least for the duration of the project).

Not sure what else is different, besides using Julia as the glue language, rather than Python/Cython.

[1] https://oscar.computeralgebra.de/


I'm very excited about the OSCAR project. It could be very helpful down the road to the overall goal of creating a free open source viable alternative to Mathematics, etc...

For what is worth, even if it is not perfected yet, SAGE is nonetheless already an amazing achievement that has helped me in my studies.

I can second that :-) It empowered me to do casual Gröbner basis computations without learning a new tool/language (Singular).

Is CoCalc generating more funding for the development of Sage?

Not yet. That was why I started CoCalc.

I'm rooting for you.

Wolfram Research today has several hundred employees. Are you proposing they would keep working on Mathematica, and would they continue to get paid for it?

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...


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...


> 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 :)


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

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

Thanks for the hard work in the Mathematica SQL area.

I know y'all have lots and lots of database documentation, but I've had trouble commenting from Mathematica to Oracle via ODBC. It's a tad confusing, but I'm sure I'm doing something simple wrong. In R, this was really easy, but surprisingly complicated in Mathematica. Do y'all have any kind of step by step doc in that arena? SQLite was of course easy, but I think Oracle requires the use of JDBC with Mathematica and that's where I get lost.


> 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!


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

https://news.ycombinator.com/item?id=18726804


That's Wolfram Alpha.

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

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

Seems AsymptoticSum still can't solve many really simple sums though, like

    AsymptoticSum[Binomial[n,k],{k,0,n/3},{n,Infinity,1}]
Will still have to that by hand I guess :(

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.

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.

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?


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 :)

I would second this, there’s no way I can deploy APIs to your cloud and meet compliance requirements for data protection.

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/

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/ should be built in.


Mathematica is not tied to the notebook interface. The notebook is the most interactive way to use it, but you can save code in standard files and run it through the engine. You had always the option to call this code from C, but now they are adding Python bindings too. So, in my opinion, the only thing that limits Mathematica to be used for web services is licensing. I think they know this and probably it is the reason why they don't spend too much effort trying to sell this use case.

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.... Hoping they are pushing this great software forward to another 30 years.

A shrink-wrapped version of the instant API that could be installed on a server would be a good product.

Hmm. I don't know about JSON and REST, but an API would definitely be interesting. In general, I think Wolfram (the company and the man himself) has a very narrow Mathematica-centric view of the world. Every feature begins and ends in the Mathematica notebook interface. That's very limiting.

A good full API would let me use a sane interface (see my other comment about the horrible notebook interface experience with more complex expressions), it would let me use Mathematica in server environments, it would let me make use of Mathematica as a service (which I'd like Wolfram to offer).

Related: I always wished for a Mathematica computational service in the cloud, so that I could offload my larger computations right from the interface. Instead of computing that matrix on my crappy local computer, send everything off to a powerful computer and do it there.


I don't think you know what you're talking about. Mathematica is quite big in scope already, but then there's "The Wolfram Language" which is a f!%ing big vision of the world. Take a close look at it some time. Not to mention the audacity of "A New Kind of Science"! Whatever you may rightly accuse Steven Wolfram of, thinking small is not* one of his faults.

Having used Mathematica since 1993 I think I do know what I'm talking about :-)

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.


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.


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

I would want to use Mathematica for work related stuff, though.

Well then maybe your company can afford it, no? (Unless you're a bootstrapping startup, of course)

I suspect many people are in the same position I am. I like the tool and occasionally wish I had a copy at work, but the problems I would use it on are infrequent and/or peripheral to my actual job. It's hard to justify burning the social capital for an 'occasional' nicety.

My company isn't going to pay 3500€ for a tool that I don't really need.

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.

> those who cant afford a Raspberry Pi

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


>excellent mathematical functionality is available via the Wolfram Alpha website for free.

My experience is that they've significantly ratcheted down the amount of compute time per request in recent years. It's become much less useful to me because so many of my requests time out.


I had a similar gripe: I’ve tried several times the trial versions but 14 days is way too short to get up the learning curve far enough to see whether it’s useable or not. And even then, if I only need it a few hours a week, I couldn’t justify the costs.

Yeah, I'm a student right now and I've come to really like mathematica... I'll probably even get the hobby license after school, but I don't think I could justify the cost of using it professionally.

My school is for some reason still renewing my student license 7 years after graduating, so if they're that lax everywhere you might not have to worry. :P

Since you're a student and enjoy using Mathematica, I would recommend taking a look at this http://www.wolfram.com/company/careers/ambassador/. It's an opportunity for student enthusiasts to share their use and interest on campus, in return Wolfram provides access to tech and other stuff noted.

btw it seems the develop open cloud thing is mostly free, which might do it for some cases,

https://develop.wolframcloud.com


Maybe http://www.wolfram.com/development-platform/pricing/ ? There is even a free plan. Not sure how different it is from "regular" Mathematica, or what licensing restrictions there are.

Have you looked at Octave?

https://www.gnu.org/software/octave/


Octave is more a replacement for MATLAB than Mathematica.

True, but the GP said that all he does is create some plots and Integra e every so often. Octave can handle that.

Octave and Scilab are more Matlab like replacements as a user below commented. Sure both are for mathematical code, but Octave is more for numerical work and Mathematica for Symbolic computation.

However, Mathematica is powerful in a much bigger way than Octave. Mathematica is more like a very successful and commercial lisp in that it has zillions of composable and we'll documented functions for everything. You don't just copy in a link to an image you want to do something with, but can literally copy paste an image into a function and immediately do stuff with it in a way I've never seen before. Recently I wanted to draw up pretty advanced network diagrams using the images our vendor used. I simply copy pasted them in and then used the graph theory primitives to draw a diagram. Then I noticed that I wanted to add a different picture and it didn't match the color scheme of the vendor. No problem...I just passed it to yet another Mathematica primitive to invert the colors. This was all REPL like interactive and easy to do. There are lots of little commands like this. My favorite example is a file open command that works on over 100 file types. The obvious ones like CSV, XML, JSON, .XLS, & TXT are all there, but so are other file formats like .MPS optimization files, common biology file formats, weather forecasting file types. Chaining this together is insanely easy. Suppose you want to solve a linear programming problem and you have a .MPS file. Just open the file and wrap it in the LinearProgram[] command and then wrap in a FileOutput[] command if I want to write to a text file. There's a lot more for Python where I have to import libraries and write loops.

Mathematica ain't perfect though. It has a large runtime and doing more complicated work doesn't scale as well as I would like for writing big programs. Code distribution is also harder. Nobody else on my team is going to want to install the Mathematica runtime to run my code.

Overall it is pretty nice though and I think it would surprise most HN users.


I’d love to see a write up of how you handled that network diagram scenario. It’s been years since I used Mathematica, and my main use was exploring cryptography and cryptanalysis. That need isn’t there for me these days, but I might jump back in if I had a sense of how to use it to handle general purpose diagramming tasks.

It wasn't too bad. If you look up the Mathematica GraphTheory primitives for building diagrams it is pretty simple.

To give an example of a diagram showing love interests you create a variable for each person and set is equal to a picture of them.

Then, you simply create a map that represents each of the relationships like Jerry <-> Alice to show that Jerry and Alice like each other, Jerry->Samantha to show Jerry likes Samantha, but it isn't returned and so forth.

At the end, wrap it all in the command to create the diagram (there are lots of them) and you're done.


This is how compilers and IDE's were, back in the day. Things changed and now community editions are rife.

Maybe this will happen someday with Maths software.


Please have a look at sagemath. https://www.sagemath.org/

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.


I think you may not be the target market. A lower-level option is often more powerful, but carries added complexity and a steeper learning curve. It is my understanding that Mathematica is more valued in academic settings where not everyone wants to deal with learning Clojure.

Many poor people rent furniture rather than buying because it's not feasible to muster the initial investment, and must continue doing it in spite of the long-term loss. The same is true here: not everyone uses Clojure over Mathematica because many cannot find the large chunk of time to learn it, though its use may produce a net gain of time long-term.

> Using maps in Mathematica is awkward and feels like doing precision watchwork in boxing gloves.

Can you elaborate a bit more on this? I haven't used it before.


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.


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.


Associations came very late to Mathematica (version 10 if I remember right) and the whole of the tools in Mathematica had to be converted over. The result was incomplete.

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.

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

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.


Legal | privacy