Clarification: after mentioning this at work, I had an edifying discussion with another MathWorker, which pointed out some flaws in my arguments. Here’s a layman’s summary:
- Wolfram Demonstrations isn’t the usage model I took it for. They do provide every Mathematica user with some kind of authoring tool, probably similar to MATLAB’s GUIDE editor, but with the “Manipulate” thingy instead of a Handle Graphic. But the tool does not produce a redistributable program, just a notebook and some metadata.
- To make a demo, Mathematica users must login and submit code to the website, which is vaguely like the MATLAB Central File Exchange on steroids. It’s a moderated queue to an in-house team armed with–you guessed it!–a compiler. I’m just filling in blanks here. Mathematica “notebooks” go in one side, Mathematica player applets come out the other.
- I’ve mentioned that MathWorks also sells a compiler toolchain and accompanying runtime libraries. Note that Wolfram Demonstrations offers its “blessing” only to a specific kind of graphical application fit to be “played back”. I cannot speak to what they have up their sleeves, except to say it includes this. I do know that developers who purchase MCC/MCR can use the bulk of the feature set with no additional charges for reproduction and redistribution. So if it was just oneupmanship we cared about, then yeah, we probably could. But the stakes are not what I imagined them to be.
My current job, which ends next week, has given me an interesting angle on the schism between commercial and non-commercial attitudes toward open source and toward the software development process. It’s roughly analogous to the schism some of us students and alumni see in Olin and other learning institutions–more on that in a minute.
First of all, we don’t make free or open source software (“FOSS”). Insofar as I am aware, MathWorks-owned code is ~0% free (for MATLAB aficionados: that’s ~ as in circa, not ~ as in logical negation). In terms of the Web, a place dominated by noncommercial projects like Dojo and pro-FOSS shops like Google, this dates us to approximately the Bronze Age–but we don’t live on Web terms. By Desktop terms, we are exceedingly typical, and while our licensing model has been rightly criticized we are probably not the evilest people out there.
What we do do is build, brick-by-brick, on a broad range of lawyer-approved FOSS and proprietary libraries to bring you MATLAB in all its featureful glory. To name a few examples, the product as sold includes, wholesale: the not-quite-free Java SE platform, the free-but-permissive Apache XML toolchain, a free-under-the-covers web browser, and optional support for Maple, the non-free commercial algebra platform. For ourselves, of course, we have prettier and wilder things, including the usual glut of free software programming tools (FSF philosophy still dominates in that area, thanks in large part to savvy licensing), the usual Overpriced Graphical Cxx Debugger Whom Shall Not Be Named, and some spiffy intranet productivity applications.
But for the product, we’re always cautious, and I am coming to understand that the GPL and its brethren are anathema to corporate lawyers, just as SCO and the old System V license agreements are anathema to the hacking world.
We clearly owe a lot to FOSS and to the underlying philosophy, and that influence should only grow louder as the scale of our product ups the demand for agile methods and heavy peer review. MATLAB simply dates to a period in the history of computer science before mortal programmers fully understood these things; a dark ages when all corporations licensed the bejeesus out of their software, and violating trade secret to obtain a more thorough peer review was the way things got done. I think we reflect the distinction in subtle ways–for instance when organizing our user community.
Perl has CPAN; PHP has PEAR; even Java has its community projects page; in such company, MATLAB Central stands out as a different sort of response to the SourceForge imperative. I’m not complaining that the file exchange uses e-mail and ZIP files in place of newfangled source control tools, or that the link exchange doesn’t segregate offsite FOSS projects from MATLAB Toolbox product pages. In light of the largely research-oriented user base, our design decisions are generally well supported.
No, what irks me, just a little bit, is the dearth of copyright and licensing information.
One can safely assume “Copyright 200x [author name], all rights reserved”, but in the FOSS community that’s often not good enough. Users want to know, “What if I want to deploy this in my company? What are my rights?” The answer seems to be, download the files and look for a licensing notice, or if you’re real particular you could e-mail the author and ask. Again, a reasonable design decision? Well, probably… for now. If we ever want to be competitive with generic scripting languages on their home turf, niceties like project licensing are going to start to matter.
Should we be concerned? Well, we’re a growing company, and are constantly expanding the capabilities (and price tag) of our product. We can’t count on the steady growth of scientific research to support us by itself. Similarly, FOSS enthusiasts are always pushing the boundaries of scripting languages, adding more and better math and graphics support, encroaching on us. If we want to convince more people to capitalize on our newly expanded capabilities, and pay us money for them, then we need to speak the lingo, and we need to offer arguments more compelling than FUD.
(As an aside, there’s something surreal and very 1998 about finally hearing salespeople use the term FUD in context.)
True story: 15 years ago now, the Internet came through and made everything different. Used to be your team could satisfy itself with Doing One Thing Well. Now people expect all kinds of silly things from their software. It was at least a hundred years ago, by the Internet’s fickle stopwatch, that Maple began selling as a client-server package, with all the number-crunching taking place across the network from the shiny Java UI. The other heavyweights in the business didn’t immediately follow suit–but they did something equally interesting. They added native support for distributed computing, a trick that makes certain kinds of calculations very scalable. And again, this displaces the act of computation away from the user, over the network, to some other machine.
Now, fast-forward to the present date; the situation gets more interesting. Wolfram’s demos aim for a newly expanded audience, with the common denominator set by installation requirements of the Mathematica Player, available at no cost from the site. MATLAB has a similar component, accessible from programs compiled by MATLAB with one of the Builder toolboxes. Both are basically the same thing–a hardened, locked-down version of the full application that can only be utilized by specialized code (as a consequence both are also very large installs; Mathematica Player is ~90MB). In theory, their potential applications should be similar too.
But it was Wolfram who produced the demonstrations project.
Why them? Or rather, why not us first? After all, MCR is a mature technology with plenty of tricks of its own. The reason is simple: licensing. When we came up with the MATLAB Builder product set, we made a crucial decision to productize rather than commoditize. For the sort of company we have grown up as, it seems like a pretty obvious choice, but it was not without collateral cost. Mathematica users now have an ability most MATLAB users do not: they can produce standalone interactive programs from their code. By giving something away for free, Wolfram’s product gains legs.
The phenomenon isn’t limited to the software industry, either. It’s this same sort of risque, but worthwhile, thinking that some Olin students feel their institution has chosen to eschew in favor of a safer path. So when I see stuff like this on Slashdot, I’m thinking “why not us?” on both counts. The world is moving way too fast now to make allowances for half-assed commitments to revolutionary ideas. I see people like Negroponte and O’Reilly talk the same talk we do, then walk it, because they can. It’s maddening.