That was the biggest "product release" disappointment I've had in my life. I was a naive kid ... huge fan of Kamen (actually, I still am a big fan of the man). IT was going to change everything!!! Bezos and a bunch of other big wigs are investing in it!!! I grew up a bit after that ...
I didn't have as big of an issue with the business model than I had with the product itself. Seriously ... what happens when it rains? How do you navigate pedestrian-dense sidewalks? I'm not George W. but I have managed to crash one.
GWB wasn't told the important tip of turning the damn thing on which, for a demo, told me the company had no marketing sense. If you get POTUS with your product, you nail the damn demo or just close the company. GWB is a pretty athletic guy and they couldn't get the demo right.
It goes with the Tonight Show appearance that is probably the single best sales pitch except for the Segway rep trying to play nanny with Jay Leno, Russell Crowe, and Sting with Russell Crowe promoting Gladiator and yelling lines from the movie.
The Mathematica language is usually simply referred to as "Mathematica", at least from what I can tell from my experience on mathematica.stackoverflow.com. Probably because the only frontend that allows doing actual work is the Mathematica software (excluding development of own modules).
> In most languages there’s a sharp distinction between programs, and data, and the output of programs. Not so in the Wolfram Language. It’s all completely fluid. Data becomes algorithmic. Algorithms become data. There’s no distinction needed between code and data. And everything becomes both intrinsically scriptable, and intrinsically interactive. And there’s both a new level of interoperability, and a new level of modularity.
It's a little beyond that, in some ways. In the LISPs, you can view programs as data, but macros are different from, say, 'if'. The Read and Evaluate parts of the REPL are distinct phases.
Whereas in Wolfram Language, If is just an ordinary symbol that has attribute HoldRest to ensure that it can prevent evaluation of its two clauses until it knows which one to evaluate.
In other words, code is just data (expression) that happens to have specific rules that will cause it to evaluate in some way, yielding a new expression (which could be more code, or partially evaluated code, or data, or whatever).
But you can also have rules attached to several symbols together. So for example, when you see a Foo containing a Bar, replace it with a Baz:
Foo[___, Bar, ___] := Baz;
It's a little like multiple dispatch, but it is slightly more general than even that. And totally pattern based (the pattern language is ridiculously rich).
There's one more twist, which is that everything is not just serializable, but in some sense it is its serialization (called FullForm). It's hard to explain what this means without playing around with stuff.
Also, the language has actual m-expressions, thank god, unlike most LISPs.
I remember wolfram alpha being marketed pre-release as something that would make Google obsolete. The only reason I ever use this is for math when I do not have access to a native alternative such as matlab. Considering that I use less math than I used to, I wonder why it is still relevant.
29 comments
[ 3.0 ms ] story [ 69.6 ms ] threadIt goes with the Tonight Show appearance that is probably the single best sales pitch except for the Segway rep trying to play nanny with Jay Leno, Russell Crowe, and Sting with Russell Crowe promoting Gladiator and yelling lines from the movie.
A New Science Of Kinds.
</joke>
(... at least in the Northern Hemisphere)
Sounds like Lisp :p
Whereas in Wolfram Language, If is just an ordinary symbol that has attribute HoldRest to ensure that it can prevent evaluation of its two clauses until it knows which one to evaluate.
In other words, code is just data (expression) that happens to have specific rules that will cause it to evaluate in some way, yielding a new expression (which could be more code, or partially evaluated code, or data, or whatever).
But you can also have rules attached to several symbols together. So for example, when you see a Foo containing a Bar, replace it with a Baz:
It's a little like multiple dispatch, but it is slightly more general than even that. And totally pattern based (the pattern language is ridiculously rich).There's one more twist, which is that everything is not just serializable, but in some sense it is its serialization (called FullForm). It's hard to explain what this means without playing around with stuff.
Also, the language has actual m-expressions, thank god, unlike most LISPs.