Timeo Danaos et dona ferentes... I fear the Greeks even when they bring gifts...
I don't get it... Wolfram is a money-hungry egomaniac. For example, unlike the other big Ma competitors (Maple, Matlab, Magma) not a single source line of Mathematica code is exposed. He's litigious, he labels everthing "mine", he endlessly praises himself. He wrote this insulting "don't worry your pretty little head with our source code, it's too complicated for you" piece:
Edit: To clarify, my guess here is that they want to give people a taste of Mathematica on weak hardware in order to lure them to a subscription model on "the cloud" where much more processing power will be available, just like widespread university site-wide licenses and turning a blind eye to student piracy are great marketing strategies.
Is there any evidence to support my wild theories?
What a ridiculous post. The quote in question is a reference the Trojan horse, so unless you are suggesting that loading Mathematica onto the Pi will, in fact, destroy it, I don't see any merit to this analogy. And while it's true that Steve Wolfram is incredibly arrogant, so too is the act of publicly shaming him for refusing to share his code, no? The man has spent the last 25 years perfecting his product and along comes you, acting like you have some God-given right to inspect its inner workings. Gimme a break.
> along comes you, acting like you have some God-given right to inspect its internals
Well,it's mathematics software, so it's actually really not unreasonable. Fortunately, the rest of mathematics has moved past the seventeenth-century style of "Here's my result, the proof is secret". If Mathematica is intended to be suitable for mathematical research, then its source must be open so that the results are auditable.
Other mathematics software like Sage doesn't have this problem, and is already available for the Raspberry Pi for free, obviating the need to use Mathematica.
> If Mathematica is intended to be suitable for mathematical research, then its source must be open so that the results are auditable
You don't need source to audit the results. It's a tool, just like a calculator or a table of logarithms or a table of integrals. If I use an HP calculator for a calculation, for instance, you don't audit my results by examining the source for the calculator's firmware and convincing yourself it is right and then accepting my results. No, you audit my results by doing the calculation on your Casio calculator and seeing if it comes out the same.
In fact, you do. Modern computer mathematical results require full exposure, nothing can be left to the imagination. This is true and understandable.
Going back to the first important computer mathematical result (the solution to the four-color map conjecture¹ in 1976), to be taken seriously, computer math results have been required to be fully transparent.
Imagine auditing a cancer cure without knowing anything about the methods or tools. Same idea.
I actually somewhat sympathize with your view. But I think you overstate the problem: if someone discovers something with Mathematica, they can then formalize it with an open proof assistant like Coq before they publish, and modern journals in fact encourage this sort of thing.
Really, it's not a zero-sum-game between open-source and commercial tools.
> Really, it's not a zero-sum-game between open-source and commercial tools.
Yes, there are mathematical results that can be validated independently. But the problem is not so much pure mathematics as numerical results. In that arena, the method by which the results were acquired must be accessible in detail. And much of modern applied mathematics relies on numerical results. Imagine producing a result of some value and being unable to explain in detail how it was arrived at, because it emanated from a closed-source program.
The four-color map problem I mentioned earlier was the first important case where this problem had to be dealt with, and it was resolved to everyone's satisfaction only because the full source was made available.
Did the four-color map problem use numerical results? I imagine it was just a pure combinatorial enumeration problem (I have not read the original paper, I may be wrong about that).
If you're doing a finite element method to validate a bridge design, you're hardly publishing a paper based on the result (though of course you will do plenty of validation and then times everything by 2 for good measure!).
What kinds of actual fields of mathematics are you thinking about, here?
I know that error analysis is a deep and arcane subject, and personally I have no idea how well or badly we do in that department, but I'm struggling to think of where the details of how we get it wrong or right is crucial for the development of published academic mathematics.
"Most" maths is totally abstract these days, categories and sheaves and topi and what not.
In that case, anyone who uses more than one example to make his point is jumping around. If allowed to prevail, this non-argument would cripple debate.
> Did the four-color map problem use numerical results?
Yes, emphatically so. There were a certain finite number of possible maps (1936 to be precise), and each of them had to be tested explicitly. The reason for the requirement for full disclosure was that the tested set needed to be examined to assure that nothing germane was excluded, nothing included on specious grounds, and the manner of testing had to be closely examined. None of this could be reduced to a simple equation, and none of it yielded to a formal, concise mathematical proof.
> I imagine it was just a pure combinatorial enumeration problem (I have not read the original paper, I may be wrong about that).
If that were true, there would have been no role for a computer program -- it would have been published as a pure and formal result, like Fermat's last theorem. No one would have cared about the role played by computers, because a formal and pure proof could be examined by anyone sufficiently versed in mathematics.
> What kinds of actual fields of mathematics are you thinking about, here?
Any field that would benefit from use of a computer. By recent count, that's nearly all mathematical fields for one reason or another, including areas we once might have thought would have no use for a computer. Computer mathematics has gotten to the point where computers, laboring independently, come up with new theorems that humans have overlooked.
> I know that error analysis is a deep and arcane subject, and personally I have no idea how well or badly we do in that department, but I'm struggling to think of where the details of how we get it wrong or right is crucial for the development of published academic mathematics.
Most struggle with that, and part of the struggle is being able to see the detail of the algorithms used to arrive at a result. No detail, no trust, no science.
> "Most" maths is totally abstract these days ...
Not relevant. Relevant would be whether that abstract mathematics is or is not fully revealed in its details. For science, it must be.
-- discusses the role of theorem-proving software like Coq, but includes a misleading statement by someone at Microsoft: "Microsoft hopes to develop a similar system for checking the logic used in computer programs, which could pre-empt some unforeseen bugs that cause programs to crash."
I hope this is an error on the part of the journalist who wrote the article, because it implies that Turing's halting problem, and Gödel's incompleteness theorems, which lie behind it, are potentially soluble. They aren't. All the more reason for full disclosure.
The statement regarding checking logic in computer programs is not misleading (though of course, your characterization of it is); there are many systems which are not subject to the halting problem in fact (at least in any way that affects practice ---> You can simply limit constructible terms to those which provably terminate, if you please). Statements like yours about Turing & Gödel are a common mistake.
You don't have to _decide_ whether a program halts in order to prove it. In many cases, termination is not so much even a proof obligation as it is a _fact_ by construction; in the harder case where termination is not obvious structurally, you can simply rewrite your general recursion as a call-graph, and then termination is a proof obligation which you must satisfy if you wish to execute it.
Decidability is much a much stronger thing than "provability in most relevant cases", and it turns out that the latter suffices. By Gödel, there are indeed "true" sentences which you cannot prove in a particular system, but I am willing to give you a hundred thousand dollars if you can actually find one and print it out. That is, Gödel's result was indeed sort of constructive, in that it did provide a scheme to construct such a sentence, but nobody does so because the term is so unfeasibly large.
There are many things which we should like very much to be decidable, some of which _can_ in fact be decidable (by Turing, termination is not one of those). For instance, in some systems (such as Intensional Type Theory), type checking is decidable, which is really nice. In others, type checking is undecidable (such as in Extensional Type Theory); does this mean that type checking cannot be done? Of course not. It simply means that type checking becomes a proof obligation, since the typing derivations may not be entirely synthesized by the type checker. (A simple demonstration of this is equality in a NuPRL-like system: propositional equality is reflected into definitional equality; there is not decidable equality for functions; therefore, there are equations which might hold definitionally by equality reflection, but for which further proof would be required; therefore, definitional equality is undecidable; therefore type checking is undecidable; but we can still prove that a term is well-typed, even if type checking is undecidable.)
Only if you use an overly literal interpretation of "commercial" yet don't use the literal interpretation of "open source" (since it's also possible to make source code visible to the public without using a license that would be considered "open source").
You have just rediscovered the reason that some people talk about "free software", and some people talk about "open source".
The sort of access to source code that is being expected here is really no more than the sort of access that you can get to Windows code. It really is not an unreasonable expectation.
No - when most people use the term "open source", they mean something along the lines of the Open Source Definition (http://opensource.org/definition), rather than the literal meaning; this is independent from the distinctions between open source and free software, which are mostly about philosophy rather than the set of applicable licenses (http://www.gnu.org/philosophy/free-software-for-freedom.html)
I suppose that you, however, do not, which makes what I was trying to say irrelevant.
If what one is publishing is an algorithm or formula or what-have-you, it's only required that the algorithm itself be fully exposed. It particular implementation, much less so the implementation of the particular software that implementation is written in, is only incidental. When you're giving a driving test, you don't need to know how a fuel-injection system works.
> It particular implementation, much less so the implementation of the particular software that implementation is written in, is only incidental.
Not at all. In computer programming, examples abound in which the gap between the formal algorithm and its practical embodiment led to catastrophe. One can scarcely count the number of times in which the specific manner by which a simply stated algorithm was implemented needed to be examined more closely:
"Ariane 5's first test flight (Ariane 5 Flight 501) on 4 June 1996 failed, with the rocket self-destructing 37 seconds after launch because of a malfunction in the control software.[20] A data conversion from 64-bit floating point value to 16-bit signed integer value to be stored in a variable representing horizontal bias caused a processor trap (operand error) ..."
> When you're giving a driving test, you don't need to know how a fuel-injection system works.
No, but someone does. If the software is inaccessible, then no one can check it except its owners, who have an incentive not to check it thoroughly, or to conceal what they have discovered.
Deep enough that the meaning of the result cannot reasonably be called into question, just like in science.
> How would you even approach this?
As scientists. Someone once described science as ... not so much knowing as knowing that we know. Same idea.
Many results that seemed certain when published, evaporated once the mathematics were examined closely. This happens even when the entire process -- data, equations, conclusions -- are all included in the publication. Given that history, imagine how much more cautious people want to be when part of the process of arriving at a critical conclusion is concealed perpetually.
"Deep enough that the meaning of the result cannot reasonably be called into question, just like in science."
I think what is really being asked is: "What level of confidence is required?".
I would assume you trust the hardware and only scrutinise the software? In contrast: are results tested on a plurality of machines with intentionally, measurably different hardware and the absence of discrepancies implies that the hardware is not a factor with regard to the problem being solved? Presumedly you'd need some sort of standardised test suite to pass on your hardware to really confidently declare the hardware to not be a factor.
I doubt this is the case, but like the previous poster, I'm quite curious as to the specific level of scrutiny applied here.
> I think what is really being asked is: "What level of confidence is required?".
That's something that varies from field to field. In physics, a new discovery requires a five-sigma result, meaning a result that has a one in 3.5 million probability of arising by chance rather than the legitimate detection of a new particle or phenomenon.
In psychology, by contrast, a p-value of 0.05 (i.e. 2 sigma) is accepted as statistically significant, which by itself may explain the sad state of the field.
> I would assume you trust the hardware and only scrutinise the software?
No, a scientist doesn't trust either hardware or software, but hardware can be checked and validated. In the case of Mathematica, the software cannot be checked and validated, it must be trusted. And for a scientist, trust cannot be distinguished from faith.
Your table of logarithms and integrals is exactly the perfect example of why you need the source to audit the results, those things were notoriously error prone.
IMO, the existence of Sage obviates the need to use Mathematica in the same way as the existence of the Gimp obviates the need to use Photoshop.
In both cases, the commercial package has many, many features that the free version barely implements or even completely lacks, and implements many of the shared features better. On top of that, the commercial software has the advantage of being market leader. That brings with it that it, in general, is easier to find a Mathematica package to do X that to find a Sage one.
If Sage really is to Mathematica what Gimp is to Photoshop then IMO it definitely does not obviate using Mathematica. The Gimp/PS argument is well worn.
>so unless you are suggesting that loading Mathematica onto the Pi will, in fact, destroy it, I don't see any merit to this analogy
That's not really how you refute an analogy. In any analogy, you can find differences, but not all differences are relevant. You could say "Mathematica isn't made of wood", or "Mathematica isn't full of soldiers", but these differences don't weaken the analogy.
You have to look at the claimed similarity (in this case, ulterior motives) and show a difference that conflicts with that claim.
You have failed to do this, and so your refutation falls flat.
QED... as in, "I've demonstrated what I wanted to say, regardless of what the original claim was."
OP was talking about fearing the 'gift' because it might be a ploy to get you data-locked into Wolfram's cloud suite, or some other kind of bait-and-switch. As in, there might be unforeseen consequences of embracing this offering. I don't think there was any implication that we might not be able to uninstall Mathematica. I think it's an apt analogy.
My fellow bovine friend, you're now misinterpreting the analogy (and Greek mythology, but I assume you mistyped and meant "the Trojans" and not "the Greeks"). In the analogy, Troy is not a single person's computer. Troy is the software ecosystem.
Consider Microsoft's old "embrace, extend, and extinguish" strategy, which devastated the PC software ecosystem in the 90s. Was that problem solved by individual users uninstalling Microsoft's products? Of course not. Recovering from that destruction was a far more difficult and grueling process which isn't quite finished even today.
No, this is actually valid criticism. People are generally adverse to learning new software programs, when the one they've been using for years has served them so well. With this in mind, we'll be exposing thousands of students to closed source software when the open source alternatives are more than adequate for teaching. By the time students need features in Mathematica that are not present in the open source alternatives, they will have the skills to contribute those features back as pull requests.
This is a Trojan horse. It undermines the open source alternatives. The Pi foundation here is betraying its open source roots.
> The Pi foundation is betraying it's open source roots.
No, it's not betraying it's open source roots. It has none. The Raspberry Pi has been a proprietary environment dressed up in open source clothing from the beginning.
The Raspberry Pi has most of its processor silicon devoted to a chip that you are not allowed to touch -- the ARM6 core is really more of a coprocessor to the GPU, which comes with a big binary blob. OK, you say, forget the GPU, I'll just use the little ARM core. Nope! You can't boot the system at all without the blob.
Then we've got their laughable attempt to pass off a shim that delegates function calls as an open-source driver. Or their support for software patents, with patent-restricted chip features that require separately purchased licences.
The Pi foundation's roots are with Broadcom, a company known very well for its hostility to open source.
I believe most of your complaints can be explained by their desire to create the cheapest device possible, but still powerful enough to be useful in an education setting. Corners had to be cut somewhere, and pure open hardware is expensive and hard to come by. If you want to drive the cost down, that typically means using popular silicon, which in turn typically means dealing with companies like Broadcom.
Just because it's not 100% open source doesn't mean it has no roots there. I know this is hotly debated in many circles, but in my book it doesn't have to be all or nothing.
Personally, I feel they made the right decision for their project. I'd rather introduce kids to linux, computing, and hacking on a device that is relatively open rather than on a purely open device that schools may not even be able to afford.
Don't get me wrong, the Pi is a positive development, and I'm glad it exists. But I don't think that we should think of it as something with open source roots. Sure, you're never going to get a 100% open device at these costs. But something like the BeagleBone Black is in the same price range as the Pi but doesn't have all of these issues (i.e., the lack of openness is not just due to pragmatic cost reasons, but also "because Broadcom".)
As a comparison, the Beaglebone Black (http://beagleboard.org/products/beaglebone%20black) uses a TI chip, which is at least fully and properly documented. It is also better than the BCM chip at pretty much everything except high-resolution video decoding.
The Raspberry Pi is a cool machine, but the "open source" hype about it is rather exaggerated.
You're right, but for the wrong reasons. As far as I understand it, the Pi foundation doesn't have much in the way of open-source roots. Their aim wasn't to produce an ideologically pure device, but to create a dirt cheap but fully functional computer as an educational aid to teach kids to code. Open source software
just happened to be a cost-effective way of achieving that goal.
I think they were were so focused on the educational side that they didn't realise how interesting the device would be to hackers and hobbyists. Remember the problems launch where the demand hugely outstripped the initial manufacturing runs.
> The quote in question is a reference the Trojan horse, so unless you are suggesting that loading Mathematica onto the Pi will, in fact, destroy it, I don't see any merit to this analogy.
It is, as you say, an analogy and not to be taken literally.
Someone offering a suspiciously good gift can be expected to expect something in return that may not be to your benefit - particularly if the gift giver is not known for being a philanthropist.
Maybe a good counterpoint would be to suggest that OP "not look a gift horse in the mouth". That being said it isn't too difficult to imagine Wolfram having ulterior motives. Overall I think it's a good thing and a good act done for bad reasons is still a good act (though agreed, source code would be nice)
Well, what is the possible catch? I can't see it. My immediate guess is that they think the money isn't in selling the software itself but to have some sort of cloud-based subscription model, and having it on a Raspbian without charge would be a good lure. What ulterior motives do you foresee?
I define myself as a pragmatic computer user. I use Linux because it is the best tool for the job, but I use closed source programs when they are the best tool.
In program why would someone want a closed source solution that cost $2,000 for profession use and $200 for a one year personal license when we have so many great Open Source languages? Why program in something closed source any more? I can't see that working especially in statistics and math.
How would any closed source (secrets) Mathmatica be a better option than an open source language (Sage)? Really want to understand the thought process.
Also Trojan hHrse analogy is always used when referring to closed source programs coming into an environment. Take your issue up with RMS (Richard Stallman)
I think you're missing the point about why the Wolfram Language is going to be useful on a PI. I don't think the majority case will be mathematics. See here for some ideas:
And re free tools: I doubt very much that Sage has any mechanism for flashing LEDs through the GPIO pins of the Pi, or doing image processing on a RaspiCam, or balancing an inverted pendulum using control theory, or modelling and controlling a sous vide cooker.
For the tinkerer, getting an embedded device to do something cool isn't going to lead to bankruptcy in older age.
I've always wondered, who are these sycophants who are always cheering Wolfram in his long self-aggrandising blog posts? Are they his employees or something?
I suppose it is your prerogative to classify employees as sycophants if you want.
From talking to other people at the company I know of only two Wolfram employees who are active on HN, being myself and carlob.
I don't think I cheer Wolfram, particularly. He's arrogant, sure, his posts are self-aggrandizing (or rather product-aggrandizing), sure -- although I don't think that these are remarkable properties for a CEO to have.
But we have some really nice technology that not many people seem to know very much about, so I comment a lot about it when the opportunity arises. Also, I think NKS has some cool stuff in it -- that's how I got associated with the company in the first place, through an amazing summer school experienc in Pisa, Italy.
> How would any closed source (secrets) Mathmatica
> be a better option than an open source language (Sage)?
> Really want to understand the thought process.
Probably because it does something Sage can't do. I can think of several reasons why I'm attached to Mma.
1) It has a great help system. Having 3 to 100 examples per help entry, and a See Also section in every single one f them is invaluable, at least for me. I almost can't use any other language's help system after using this one, because it's so good. Good yet simple; nothing prevents others from maintaining at least Examples-driven documentation but almost nobody does that, and I'm not aware of a single other documentation model that would include [consistently] both Examples and See Also sections. With its interactivity and tutorials on top, MMA's DocCenter is completely unbeatable.
2) Sage is for mathematics, Mma is for everything. That's what Wolfram says, and that's what programmers usually giggle at. Ask non-programmers, like me, about it. I use Mma for everything, and I can't imagine using Python instead. I actually feel rather weird explaining this on HN. Have you read about Blub Paradox in “Beating the Averages”? Mathematica vs Sage is Lisp vs Python. Of course I'd never use Sage. Wolfram language is really good: I use it as a basic markup for every piece of structured data that I need to write down in everyday life. I can't think of any single alternative here: other markup languages I know of are way too clumsy for this.
3) Mma has a unique interface, a mix of GUI and CLI. Nobody else has that. IPython Notebooks is a (surprisingly late) attempt to mock it, but for me it looks a bit like an exercise in sympathetic magic: for example, they've copied In and Out labels that are actually Mma expressions, that is, a part of its language. Not that it's an essential part but still, it looks like IPython authors were rather clueless about what they tried to imitate. Mma notebooks themsevles are written in Wolfram language while IPython Notebooks are written in that miserable excuse of a markup called JSON.
Mathematica is Enterprise-class emacs. It's general, powerful, AND also user-friendly and good looking, unlike emacs. I can be sure that lots of people will use it who would never dive into a black hole of a terminal [until absolutely neccesary], yet all the power of CLI will be with them when they use Mma. Well, this sounds like the kind of people I want to write software for.
As for closed source, Mma is just too good for that being a crucial drawback. Besides, a truly mathematical result never depends on anything external so it doesn't matter whether you use black boxes while producing it, or not. If only mathematical result is correct and valuable, then it /must/ be self-contained.
IPython has to my knowledge always used those kind of labels for inputs and outputs. It just follows from the CLI convention.
I looked up how it was in version 0.0.1 from 12 years ago and it turns out the original CLI format was made to look like Mathematica [1]: "Interactive execution with automatic history, tries to mimic Mathematica's prompt system".
> Well, what is the possible catch? I can't see it.
It's obvious. The first exposure to something expensive is often free. Heroin. Women. Alcohol. All those things that end up costing much more than one can imagine at the outset.
It's a classic marketing strategy, and it works.
> My immediate guess is that they think the money isn't in selling the software itself but to have some sort of cloud-based subscription model ...
No, it will be more like Wolfram Alpha, a way to show what a product can do without providing the full experience.
I believe the idea here is to prevent exposure to similar free software such as Sage by exposing students to Mathematica first. Once they learn it, they may be reluctant to learn something else.
It's actually a simple concept. Apple used that in schools for ages, first with the Apple II, then with low-end Macs. The software you use in high-school or college stands a good chance of becoming your choice later in life.
> acting like you have some God-given right to inspect its inner workings.
As it happens, closed-source mathematical software is next to useless for anything serious, and for scientific work, it's fatal. This is the single biggest obstacle to programs like Mathematica -- it may be useful for experimentation, but once one intends to publish, it has to be completely excluded from the process.
Imagine someone claiming to have cured cancer, but using a method that other laboratories cannot imitate or inspect, essentially black magic. That's what faces people who try to use Mathematica in scientific work. It violates the most basic principle of science -- transparency.
Also, funny thing, the quote is not a reference to the Trojan horse but wisdom that derived from that trick the greeks pulled. It doesn't mean "don't allow wooden horses in your castle", it means "maybe there is something behind the obvious".
> I don't get it... Wolfram is a money-hungry egomaniac.
That's kinda funny. Our revenue per employee is lower than the industry average. If the company was interested in money uber alles, there are many more profitable and less interesting ways of doing it than what we do now.
> not a single source line of Mathematica code is exposed
Well, not sure what you mean by 'exposed'. But you can read large swathes of our code by looking in the right place in the installation. We also have some official open source projects, like our HadoopLink: https://github.com/shadanan/HadoopLink
>> I don't get it... Wolfram is a money-hungry egomaniac.
> That's kinda funny. Our revenue per employee is lower than the industry average.
That's true for investment banks too (i.e. lower than comparable management positions in other fields), but this doesn't mean the higher-ups aren't money-hungry egomaniacs. In fact, it can be argued that when the salaries of mid-level employees are low compared to industry norms, that fact may be used to argue that the company is top-heavy, even possibly money-hungry.
> But you can read large swathes of our code by looking in the right place in the installation.
This is misleading. One can read all sorts of user-level script code, but no source code at all. It's not an accident, and it explains why Mathematica cannot be used in serious mathematical work, work meant for technical and scientific publication and peer review.
> In fact, it can be argued that when the salaries of mid-level employees are low compared to industry norms
Read my post again: revenue / employee, not salary / revenue.
> One can read all sorts of user-level script code, but no source code at all.
What? Probably half of the Wolfram Language is written in the Wolfram Language. How is top-level code not source code?
> it explains why Mathematica cannot be used in serious mathematical work, work meant for technical and scientific publication and peer review.
You keep saying that... I think the truth is more subtle. A tool like Mathematica might play a crucial role in some result, but the proof or result itself doesn't a priori need to rest on any black box software at all to be reproducible.
A nice family of examples would be the class of NP problems, for which the discovery might have been difficult, and achieved via proprietary tools, but the verification is possible via open-source tools or with direct human insight.
And that's not even considering physics, biochemistry, engineering, and astronomy, where many of the tools you use will always be expensive and built by industry, and have no impact on peer review. Especially if they are a means to visualizing data to generate hypotheses, or processing or wrangling data into a tractable form.
> What? Probably half of the Wolfram Language is written in the Wolfram Language. How is top-level code not source code?
I can write BASIC code all day long without having access to the engine, the interpreter. But if I publish my result, there will be problems.
Also, if the language under discussion were so open, people would write third-party imitations -- not imitations of the results, but of the methods as well. But they can't. They can't because the source is secret.
> And that's not even considering physics, biochemistry, engineering, and astronomy, ...
The only way a result from a proprietary source would not be an issue is if the result isn't original. A routine statistical result, one that anyone can duplicate, isn't likely to be an issue. But an original result, one in which the mathematics itself is key to the result, would require full disclosure.
> ... where many of the tools you use will always be expensive and built by industry, and have no impact on peer review.
Not really. Any significant result must be completely transparent. To understand the reasons, review the history of the Mars Climate Orbiter:
Even though the specifications were perfectly clear, even though everything was out in the open, two teams used different unit systems, and a critical mid-flight burn went wrong. Imagine how much worse such things would be if any part of important technical processing was concealed from close inspection.
I advance the possibility that your thinking about programming languages has become, to paraphrase The Dude, way too uptight.
Is a telescope a proprietary source? Is a commercially manufactured CCD a proprietary source? Maybe they got the response curve wrong! Okay, test it before you announce your galactic dust measurement paper! I take that attitude towards "experimental mathematics" that involve computers in some deep way.
And no need to patronize with Wikipedia links, I know the story about the Mars Climate Orbiter. And I don't think it even demonstrates your point. As I understand it, vxWorks, which many of the NASA missions use, is closed source. You have to pay to see the source. And I'm sure that Wolfram Research would or could do the same thing for e.g. intelligence agencies (and hopefully will do for everyone in the future, fingers crossed).
Let me do some patronizing of my own: are you sure your understanding of what the language does is up to date? You seem to talk of it as if it were a predominantly a CAS: http://reference.wolfram.com/language/index.html
Personally, I would love to see Mathematica's simplification and integration routines some day and discuss them with everyone. That's one of the "basic" things that the free CASes still get so woefully wrong, and for me is one of the most interesting secrets.
So you guys (?) released publicly some boring code about linking Mathematica with Hadoop. Big whoop, it's just a wrapper. Where's the real interesting stuff?
Well, because for the moment the Wolfram Language has such a small fraction of developer mind-share.
Which means that open-sourcing our projects during their actual development isn't worth the significant development cost (an entire toolchain would need to be open-sourced, and documented). And it also is somewhat antithetical to our design process, which is kinda centralized around Stephen himself, who for the most part really does have a good sense of design.
I think that could change, though, and then I think there is a really good opportunity to open source more of our stuff and start building stuff collaboratively with a wider community. Especially when our Cloud stuff comes online.
Also, I regularly bug Wolfram about open-sourcing some core part of the kernel. He's not in principal against it, but points out that it would cost a lot, buy us nothing in the short term, and fork the language. But I think it'll happen eventually, hopefully sooner rather than later.
Ah, a relief. Not that I doubted that S.W. is a reasonable person but open source vs closed source is such a… “religious” topic. :-)
Collaborations in Wolfram language will be a pretty unique experiment, for they are likely to unite people from very different fields (including, of course, lots of non-programmers). It's going to be great.
It's a poor substitute, but consider contributing to Mathics, an open-source Mathematica implementation written in Python. I believe it is integrated with Sage. https://github.com/poeschko/Mathics (I imagine it would also run on the Raspberry Pi).
It seems unlikely that such a movement would grow to be the size of Mathematica or the Wolfram language, but then again Linux and Wikipedia also seemed unlikely at the time.
We used to integrate with Sage, but no longer. The main reason is that it wasn't really used for anything, but made installing Mathics much more complicated
Practically all of the symbolic computation done by Mathics uses Sympy. It depends what your interests are. If you're interested in Symbolic computation I'd suggest Sympy. It's a really nice pure python package and it's easy to get started.
If you're familiar with / interested in Mathematica, I'd suggest helping Mathics out. The Mathematica language is massive, and there's heaps of low hanging fruit left in Mathics.
What are your goals and strengths? I am not familiar with the state of most of those projects, but fixing bugs and completing todo items is welcome anywhere, I imagine, and if your goal is to improve free software then any of those seem a good choice. That's not a very exciting answer, though.
I suggested Mathics because you appear to be interested in what Mathematica can do but resent that it closed source. Since it does not appear that it will be open sourced soon (Taliesin discussed this elsewhere and I got a similar answer from Stephen in an AMA http://www.reddit.com/r/IAmA/comments/tmutz/stephen_wolfram_...), and because duplicating even a portion of a system with a 25-year head start would require a massive amount of effort, it seems the best choice would be to work on a program that would best organize the efforts of the other programs. To agree with that statement one probably has to agree that the language is the best one to build a system around.
I'm not actually interested in Mathematica itself. I just know it can do lots of things that the free CASes can't.
I currently work on Octave because there's so much Matlab code out there that needs to be liberated. Is it the same case with Mathematica code? Are people able to easily take their code from Mathematica and run it in Mathics?
Maxima is pretty simple and straight forward (and is kind of a free version of TI Interactive), but if it has to also look pretty, then OpenAxiom is way better as it easily exports to TeX or MathML:
I find Wolfram endlessly amusing, in an uber-nerdy way. He is a money-hungry egomaniac. In interviews I have read and from what I understand, he is utterly devoid of charm. But he is a brilliant man.
And Mathematica is an amazing piece of software. (Or at least was -- I haven't used it about twenty years. Twenty years ago it was mind-blowingly good. Nothing was even close.)
And 'A New Kind of Science' was a fascinating book. It hasn't quite ushered in the revolution Wolfram still seems to expect, but it was fascinating nonetheless.
"And 'A New Kind of Science' was a fascinating book. It hasn't quite ushered in the revolution Wolfram still seems to expect, but it was fascinating nonetheless."
Possibly because, from what I remember of the reviews, most people said something to the effect of, "It's brilliant! Well, the part I know anything about is garbage, but the rest is great!"
Totally agree. The kids who are fortunate enough to be part of the computer based math movement really should be learning scientific computing on FOSS... not building their foundation on restrictive, typically very expensive software.
I first started exploring advanced math, graphing, and basic programming using Mathematica, and as much as I love OSS and FOSS math software, I think 12-year-old-me would have a much harder time with FOSS software today than even the Mathematica of more than a decade ago.
Having good free software is very important! But I wouldn't pull back on providing this software, especially where it could be used to provide a real benefit on learning, based on free software ideals.
Octave & co. could see this as encouragement to get better support for themselves on the raspberry pi as well! I see no reason why they can't all coexist.
Octave. . . I'm doing a Coursera class that uses it right now, and I've got mixed feelings about it. I want to love it. I do love it; it's a great piece of software. Couldn't say how it compares to Matlab, which I've never used, but for my needs it's a really nice tool.
However, out of the box it seemed to have two modes which it would switch between at random:
1. Hang when the user tries to draw a plot.
2. Crash repeatedly.
Eventually I did get it working by fiddling with the (way overcomplicated) installer until I stumbled across just the right set of features to play nice on my computer. Which is fine for me. . . but anything that's going to be used in a real classroom needs a MUCH more refined Windows package to be a viable candidate for most schools.
the MATLAB language is pretty poorly designed, in my opinion. take for example the use of abbreviated function names.
everything in Mathematica (including graphics and UI) is described using the structure of the Mathematica language itself. the whole system is malleable/composable to a degree that few languages approach
for example:
Nest[Button, "hello", 5]
will create a nesting of 5 buttons. that's the same Nest you would use when nesting a function:
Nest[# + 1 &, 2, 5]
And neither of these are hacks, they both work under the same exact rules, because:
Sage already works on the Raspberry Pi, today, and unlike Mathematica, after you use it for a while, you can actually take it apart and see how it works, making it much better for the purpose of "learning, based on free software ideals". Since it's actually, you know, Free Software.
I haven't used sage. How does it measure up vs. Mathematica and Maple? What impressed me with the commercial offerings is the ease-of-use in the first-year use-case. You can just type in formulas they come back pretty-printed, and plotting/solving/whatever functions are easy to learn thanks to the good features of the editor (instead of digging through docs or man-pages).
Versus Maple, there's really no contest in my opinion, but that's mostly related to the rather poor quality of Maple. I remember even five years ago, when Sage was considerably less mature, Sage was able to outperform Maple on first-year calculus problems (i.e., there were symbolic integrations that Maple choked on but Sage did perfectly). Sage is not only better than Maple at symbolics, but also at numerics, and the gap only widens as the mathematics level increases.
As an amusing anecdote, I had to use Maple for a course once, and compared the speed of a simple algorithm to find the order of an element of Z/nZ (by taking x, and adding it to itself in a loop until you get to 0). The Maple code ran approximately 100x slower than the Sage code, even though the Maple code used machine integers but Sage uses bigints by default.
With Mathematica, the general impression that I get is that for making interactive graphics, Mathematica is slightly better, but otherwise they're mostly approximately even for the first-year case, with a slight edge to Mathematica. Sage's friendly user interface is a web-based notebook, whereas Mathematica has a native application, but it's pretty good. Sage has very good documentation for common use-cases, but I haven't used the Sage notebook in a while, so I can't really say how discoverable it is.
There are some resources on using Sage in an undergrad curriculum here, if you're interested:
though the examples presume you're actually running a Sage notebook, so they don't show what happens, for instance, when you add an @interact decorator to make an interactive thing, like so:
Yeah, Maple's actual language is hideously slow. The functions within it seem to run pretty quick, but we were always tought that the moment you wanted to do a loop you should fire up Matlab and do it in that.
The reason I mention Maple is because I found it spectacularly easy to use when I first picked it up, as long as you think like a math student instead of a programming student.
> I haven't used sage. How does it measure up vs. Mathematica and Maple?
Sage can produce some very interesting results, but it has a rather steep learning curve and requires more study and time than the commercial alternatives.
Sage has a full house of powerful mathematical tools, suitable for professionals as well as students, but you have to read more documentation than its alternatives require, and there are no sophisticated tab-completion features and wizards to accomplish various tasks.
One of Sage's advantages is that it can use a browser as an interface, offering a pretty nice working environment that relies on the browser's abilities. Example: http://i.imgur.com/VvrGng2.png
Over time Sage has gotten much better, mostly because of all the skilled volunteers finding and fixing bugs and writing new abilities into the feature set. But it's not Mathematica, and it's not US$2500.00 for a license (alternative: US$1000.00 per year) (source: http://www.wolfram.com/mathematica/how-to-buy/industry-indiv...).
> Is there any evidence to support my wild theories?
Certainly. Wolfram was once a near-monopoly in computer-aided mathematics, but their exalted position is fast eroding, diminished by free alternatives like Sage¹.
Wolfram's response has been to package their product in increasingly ingenious ways, as with Wolfram Alpha², which has been quite successful. But in the long term, these methods will fail, because for mathematics to be both valid and understood, it must be transparent.
An entire country (Estonia) recently bought a Mathematica site license.. I don't see that as evidence of monopoly erosion.
Look, Sage is great, I hope Sage does really well and eventually duplicates the entirety of our functionality. But at the current rate it'll take probably hundreds of years. Sometimes, profit-subsidized research is just much, much more productive at driving innovation.
> This seems like an odd comparison since one doesn't really buy Sage licenses.
True in a deep sense. In principle one could collect all the open-source components that make up Sage and recreate it independently. Sage resembles gluons more than it resembles protons and neutrons -- it holds together things created by others.
> I don't see that as evidence of monopoly erosion.
If I were you, I would want to avoid describing Wolfram's present circumstances as a monopoly. The word has certain legal implications one would do well to avoid.
no. that web page is terrible. a company having a monopoly is just a state-of-affairs that be used as a justification for prosecuting certain actions that company takes. having a monopoly is not illegal. Microsoft was found guilty of abusing their monopoly in the PC operating system market, not of having a monopoly in the PC operating system market which was all but self-evident at the time and not a crime.
> a company having a monopoly is just a state-of-affairs ...
The legal issues turn on how the monopoly was acquired, not its mere existence. In any case, my original point was that it's unwise to describe one's company's position as a monopoly -- it sounds predatory, and it can only attract the attention of corporate lawyers.
That was my first reaction too. I say that as a fan of both Stephen Wolfram and his baby, Mathematica. If there's one thing I've learned over ten years of using this product, it's that Wolfram does not give away Mathematica. They enforce their student- and home-version rules like nothing else I've purchased. And it's damned expensive in a pool full of very powerful, free alternatives.
But I don't know what he could be up to. Getting people hooked? Seems like running Mathematica on underpowered hardware could leave a bad taste in people's mouths.
>> But I don't know what he could be up to.
A couple of things come to mind. Not necessarily nefarious.
Firstly, I remember watching a TED video[1] by Steven's brother Conrad, which was passionate about using computers for teaching Mathematics. Perhaps this Pi initiative is less commercial than philanthropic and was initiated by Conrad.
Secondly, if you look at Wolfram's own blog post[2] on the Pi release of Mathematica, he talks about his new Wolfram Language far more than about the Pi platform. I suspect Steven Wolfram is as successful a business-person as he needs to be now, but he intends for his legacy to be as a revolutionary. I don't know this for sure, but Wolfram Language seems to be a beachhead for NKS in usable form.
I also speculate the common Britishness of these two organisations might have helped move this project forward.
They could have just put it in the non-free repositories, but noooo-nooo it comes preinstalled. Obviously an attempt to push non-free software - just like MS pushing VS with Dreamspark.
Looking at the frighteningly informative article on the Wolfram page, your theory doesn't seem far out at all.
Given that most educational uses of the Pi won't involved developing things at such a low level as to require detailed specs of the processor and that the OS's for the Pi are all freely available that article would probably be better titled "Why the Pi is unsuitable for educating hardware engineers about ARM."
The $25 price point is more important to the educational use (K-12) then any specs put out about the hardware. I don't need to know any of that to learn Python for instance.
Yes, and the Raspberry Pi is not designed for them. There is no reason it should cater to everyone, it's designed for those who aren't experienced with programming, hacking and reverse engineering so they can start on their learning experience without a large financial barrier to entry.
You're missing my point, which is that high school students are capable of this kind of thing, and it would be perfectly possible to push yet more of them along that route given the right environment and attitude.
Well that's kinda harsh. It's a hardware platform, it makes sense for them to be happy to get more choices as they go. I don't care about Mathematica on the Pi, but someone might be interested, why not give them the choice? :-)
Open source (and linux fragmentation for example) is all about choices right?
I don't understand your point. I am a realist and I think there is a value in using both open and closed source tools. It is like giving out Matlab for free and you think this is a bad thing? I am not saying don't use octave or numpy scipy, but honestly students and educators can careless about whether the tool they are using is open or closed. The number 1 thing about education is not about the tool being open or closed source, it's whether the tool is usable. Mathematica is a very well-known software and many Math teachers have used it before.
Seriously, they are not endorsing non-open-soruce. They are graceful that there is one additional tool available to educators. Your "debian repository" is a marketplace. I don't see why education has to be run with open source tools. Why? Do we all have to use Open Office instead of MS Office suite? I actually like MS suite better but I just don't want to purchase a license for my Mac so I keep Open Office. I like fusion over virtualbox. There is nothing wrong with anyone using closed source in education. Please stop thinking that because Raspberry Pi runs on open source operating system it has to include open source software from start to end. The end goal is to be able to afford cheap hardware and bundle a bunch of software for classroom use.
I've used Mathematica for 24 years now, and I quite like it. It was especially helpful when I was in school, for working on my homework. The fact that it could do symbolic calculus, and do algebra without making any mistakes helped a ton. These sorts of problems....
Thanks for pointing out sympy, I hadn't heard of it. I'm not sure why you're being sarcastic, I basically write python code full time. I'm quite familar with it, so I felt qualified to comment without doing any 'investigation'. I use ipython with the normal numpy/matplotlib/scipy numerical approach. You knew something I didn't, congratulations.
It qualifies me to talk about the python ecosystem, which I know quite well. I said something I thought was true, but wasn't. That's an honest mistake. I was unaware of a library, maybe even one that is well known. I was quite surprised I had missed something, and I said 'thanks for pointing that out'. I imagine it was a blind spot for me, as I always reach for Mathematica for symbolic work, so it just wasn't something I noticed.
I would never say things about ruby libraries, for example, as I don't know anything about it. I might say the same thing about R or matlab, which I do.
In the immortal words of pg:
When disagreeing, please reply to the argument instead of calling names.
E.g. "That is an idiotic thing to say; 1 + 1 is 2, not 3"
can be shortened to "1 + 1 is 2, not 3."
As in, 'python actually can do symbolic computation, see http://sympy.org'
I'm not blaming you for being wrong. I just don't think that having a good idea about the python ecosystem qualifies denying that you can do symbolic calculus, more than knowing how to sail qualifies you to say that the earth is flat.
Sorry I just thought it was impossible to not know about the whole python math stack being an actual ipython user, so assumed you were just paying lip service.
IPython is great system for interactive programming, especially for someone who is familiar with Python and is able to find a complete distribution or able to set up all the details about their distribution (e.g. avoid problems like https://news.ycombinator.com/item?id=6725597), or someone who requires free-as-in-speech software.
I don't use either IPython or Mathematica much, but I would understand preferring Mathematica over IPython given the choice. Aside from being younger, IPython is made of a combination of systems without a strong conceptual glue tying them together. Mathematica is made of a combination of systems too (kernel written in C, various external libraries in C, Lucene search engine, etc), but the components are tied together using what I guess is now called the Wolfram language, where everything, from computations to settings to notebooks themselves, is specified in Wolfram language expressions. If you view an IPython file in a text editor you see JSON, which is different than the language used to compute. If you open a Mathematica notebook in a text editor you see a nested set of Wolfram language expressions. Mathematica grew up around that idea.
As a further small example, compare the prompts to the two systems:
IPython
In [1]: 1+2
Out[1]: 3
vs
Mathematica
In[1]:= 1+2
Out[1]= 3
In IPython, the array brackets are just a sort of notation--the assignment isn't syntactially correct Python. But in Mathematica, you can view that prompt as assigning the value of an In list at index 1 the expression "1+2".
That sort of consistency holds through the entire system in a way that IPython can't match.
I am not sure if you are aware of this, but you can access the history of IPython inputs and outputs through the two arrays `In` and `Out`. This prompt is precisely indicating this.
Thank you for pointing that out. I meant to show that while they both store their inputs and outputs in array-like structures, Mathematica does it in a way that is valid in its own syntax, and IPython does not.
In Mathematica "In[1]:= 1+2" is a syntactially valid expression (though the literal In symbol is protected), so you could do the following:
In[1]:= in[1]:= 1+2
and the interpreter would evaluate it (though the values of In[1] and in[1] would be different).
In [1]: in=[]
In [2]: in[0]:1+2
File "<ipython-input-2-b9cd4c9ee15d>", line 1
in[0]:1+2
^
SyntaxError: invalid syntax
The fact that this trivial expression is valid in Mathematica and not in IPython by itself says nothing about the relative merits of each system. IPython could be modified to use another notation for the input/output arrays, and Mathematica would work just as well if it were changed to use some syntactically incorrect notation. But what I was attempting to show is an example of how consistent Mathematica is.
Mathematica to me is like Perl. You don't necessarily like it, but it is often the tool that gets the job done in a minimum amount of time, with spectacular results.
What does "SageMath uses IPython a bit under the hood" ????
To Quote Sage's home page: "Sage is a free open-source mathematics software system licensed under the GPL. It combines the power of many existing open-source packages into a common Python-based interface."
Sage is based on Python and so it is not a bit it is the whole thing.
That said, it sounds like it might be a hassle to get that to work on a Mac.
I got the personal license of Mathematica for Mac a while ago and thought the price was reasonable for such a powerful system.
The only thing that was driving me nuts is that Mathematica does not work properly on a Retina display, which of course is a shame as text and graphics would look gorgeous. Support for that is only planned for the next major version, according to Wolfram (http://mathematica.stackexchange.com/a/30104/10565).
Given how easy the quick fix is to apply, basic Retina support should really have been in a free minor-version update to 9, not in a presumably paid upgrade to 10, after a long wait.
Getting an ARM VM running Raspbian with QEMU on OS X is surprisingly easy. It's not like KVM would help with ARM anyway, so Rasbian+QEMU on OS X is basically the same as on Linux.
You could also just get the binary from the Raspbian repositories. You would still need to make sure you have all the binary-compatible dependencies, but at most you need a chroot (and ARM processor/emulator).
Current ARM emulators aren't great in the speed department. Fine for low speed requirement command line tools, but they don't do so hot on graphical stuff.
I've wanted a Raspberry Pi for a while, but I couldn't quite justify it. I also toyed with the idea of getting the $300 home edition of Mathematica (also limited to non-professional use, BTW), but again didn't have enough of a reason.
Although my preference is for free software (hadn't heard of either SymPy or Mathics mentioned elsewhere), I like the idea of plugging a Raspberry Pi into the router, and being an X session away from Mathematica.
You could make a cluster with them (in fact for none-mathematica uses it has been done).
Efficient not even remotely the performance per unit of a Raspberry Pi just makes it not worth it (note: it's worth it if you want to simulate multi-node programming, SMPP type stuff).
For example a 32 node raspberry pi machine clocked 10.9Gflops on linpack[1], 32 * 35 is $1120 (excluding switches, cabling, power supplies which would add at least another $200 or so).
A single Nvidia Titan clocks ~1.5 Teraflops in double precession mode for ~$1000 (a performance per dollar rate of 137 times better).
According to wikipedia[2] a cheap Sempron 145 with 3 Geforce GTX760's at $1090 has a performance of 6.771 teraflops (so over 500 times the performance of the 32 node raspbery pi)
Mount an Arduino to measure the heat which bridges into your Mathematica program... world's most efficient micro-Mathematica cluster, world's least efficient radiator circuit.
Does anybody know what license this is released under? For example, can one run it under an emulator? On something more powerful than a Pi? Using an ARM-to-my-CPU jitter (does that work at all, or does Mathematica have its own JIT inboard?)
If one managed to hack the binaries and include them in an iOS app, would Wolfram permit that?
"...free for anyone to use for personal purposes. (There’s also going to be a licensing mechanism for commercial uses, other Linux ARM systems, and so on.)"
Thanks. I think the "on the Raspberry Pi" part of the statement in that post is significant, though. I doubt they will feel fine if someone wrote a clone of the Mathematica kernel and copied over the notebooks from this release, to be run on, say, a desktop PC.
Mathematica being what it is, what are science intensive problems worth solving on raspberry pi without uploading to a server?
I'm thinking along the lines of robototechnics. Something like calculating a ballistic trajectory for autonomous gun turret with statistical analysis of precision via feedback loop. Feedback being the delay of sound of projectile impact for impact distance. Or visual position of a hit. You get the idea.
What can you think of for civil use?
Mathematica can deal with arbitrary-precision numbers (or better said, Mathematica doesn't blindly use whatever underlying number format is present, it has precise controls for this sort of thing http://reference.wolfram.com/mathematica/tutorial/ArbitraryP...)
The ARMv6 CPU in the Pi has an FPU. Depending on your OS, you can use it in two different ways:
* softfp where the float function arguments are passed in using integer registers or the stack
* hardfp where they are passed in using the FPU registers
In the above cases, the float operations are done in hardware in the FPU.
There is a 3rd ABI called softfloat where everything is done in software, and thus is very slow.
I don't get it... Wolfram is a money-hungry egomaniac. For example, unlike the other big Ma competitors (Maple, Matlab, Magma) not a single source line of Mathematica code is exposed. He's litigious, he labels everthing "mine", he endlessly praises himself. He wrote this insulting "don't worry your pretty little head with our source code, it's too complicated for you" piece:
http://reference.wolfram.com/mathematica/tutorial/WhyYouDoNo...
So... gratis Mathematica on Raspbian... what's the catch? Is it to lure us to the cloud?
http://www.wolframcloud.com/
Edit: To clarify, my guess here is that they want to give people a taste of Mathematica on weak hardware in order to lure them to a subscription model on "the cloud" where much more processing power will be available, just like widespread university site-wide licenses and turning a blind eye to student piracy are great marketing strategies.
Is there any evidence to support my wild theories?