Wolfram Language
reference.wolfram.com
reference.wolfram.com
That's what I was thinking too. And I also think it could mostly be re-implement as open source, with say Python.
That Wolfram™ Language and the Wolfram™ Cloud is going to change the world forever, the language is so great because its Wolfram™ Symbolic and since it all just runs in the Wolfram™ Cloud its really fast. You can put all your financial data in the Wolfram™ and do things. You know they worked 30 years on this, and it must be good because it runs in the Wolfram™ Cloud. Cloud Cloud Cloud Bla Bla Bla Bla Buy Buy Buy Wolfram™ Wolfram™ Wolfram™.
His name is on the door. Unlike the late beloved Steve Jobs, he does not afford himself the opportunity to blame others for product problems. It's a higher standard - one without "Hold it another way" copouts and buy our products to show your good taste values. He built his startip into a company that makes amazing products that can be used to really change the world because they help solve really hard problems in ways that scale. He's putting knowledge into the world not peddling caveat emptor planned obsolescence and digital whoopie cushions.
Now he's taken his life's work and is shipping it on the Raspberry Pi instead of taken a 30% cut of the creative output of developer and musicians.
That's the difference between what is rightfully called "great" and what is called so only insanely.
And it's not like Wolfram is giving stuff away for free. Have you seen how much a Mathematica license costs? I loved using Mathematica at my university, but now I just can't afford a license anymore.
First, no one is scoffing. Second, which role is essential and which is replaceable? Steve Wozniak created computers and Steve Jobs sold them. There are ten salesmen for each person able to create something worth selling.
> If this were simple, there would be many Apples run by many "promoters." Instead there is only one.
Yes -- only one Apple, and only one Intel, and only one AMD, and only one Blackberry, and only one Tesla, and only one IBM, and only one Android. Shall I go on listing all the things there is only one of?
In fact, that's a perfect place for a salesman. Steve Jobs proves it -- he didn't design the products that Apple sold, he sold them to the public.
Henry Ford didn't invent or design cars, he sold them. Thomas J. Watson didn't invent the computer, he sold computers. James McNerney Jr. (Boeing chairman) isn't an aerodynamic engineer, he sells airplanes to eager customers.
The reason for this reverence for salesmen is because of a peculiarity of American history and because of some deplorable defects in our educational system. It's because Americans think Willy Loman was the hero in "Death of a Salesman".
He contributed style and color choices to the designs of others. To quote you, "You're way, way oversimplifying things in an intellectually dishonest way."
> His role wasn't, as you say, to be handed products defined and designed by other people and figure out how to sell them.
No, he decided what color and shape the final product would have. But he could not create the technology, he could only change its external appearance.
> But I don't see why people work backwards from that and say he was only a brilliant marketer.
That's easy to answer -- name the product that Jobs designed, that someone else packaged for him.
Don't take my word for this -- read the Jobs biography (http://en.wikipedia.org/wiki/Steve_Jobs_(book)), which ultimately agrees with my view, describes Jobs as a clinical narcissist, perpetually insecure about what he didn't know, and always on the creative sidelines trying to exaggerate his role in the final product.
I don't understand what you are trying to say. Selling technology is a great way to facilitate its progress. Or do you believe that technology just sells itself?
I know that this is a forum primarily for developers (err, sorry, where are my manners... I meant creators), but the fact is that most developers would not have jobs if salespeople did not sell the products they created. I know that's a difficult thing to grasp for some, but it's true.
> I don't understand what you are trying to say.
Okay, let me spell it out for you -- here's the remark I was replying to:
>>> If you can't acknowledge Steve Jobs massive contributions to technological progress
Really, "massive"? Invention of the transistor massive? Design of the first computer massive? Design of basic computer algorithms and/or languages massive? Or, to be more specific, design anything massive? Well, in point of fact, no -- none of the above.
> ... but the fact is that most developers would not have jobs if salespeople did not sell the products they created.
Yes, and people who actually develop technology wouldn't be comfortable without people to sweep the floors and empty the wastebaskets. The question you need to ask yourself is which role is irreplaceable -- the creator of technology or the person who sells it?
Massive in the sense of "co-founded the world's largest and most profitable technology company and later turned it around from the brink of death."
Ask yourself how many technologies we have today because of Apple, and how many innovations those technologies and products drive. Heck, you don't even have to compile a list, because I can prove my case with a single example: if it was not for Steve Jobs, Wozniak would have remained at HP for the rest of his career.
Technology has many levels. A cpu is a technology as is a touch sensitive panel -- but a specific arrangment of cpu and touch sensitive panel etc, is also technology. The one who makes decisions about how it should be made, also creates technology.
Apple also wrote their own software, and even designed their own chips and parts a lot of the time. And of course they also found lots of ingenious solutions to lots of engineering problems in creating smaller/more efficient/more battery power/etc devices.
So, what does "Jobs didn't create technology, he sold it to people" mean? Isn't iWork techology for example? Or you mean, he wasn't a coder or engineer, he was the head of the company making it? Well, that's true, but duh!
We're not discussing the existence of technology, we're discussing the creation of technology. If this distinction were not important, anyone who acquired a computer could claim to be its creator. If this distinction were not important, someone who put a computer in a box would be equal to someone who invented binary arithmetic.
> So, what does "Jobs didn't create technology, he sold it to people" mean?
It means someone else had the education and creativity to invent something for Steve Jobs to sell, to call "fantastic" to crowds of eager consumers, to import into his reality distortion field. The same reality distortion field that makes you think selling equals creating.
> Or you mean, he wasn't a coder or engineer, he was the head of the company making it? Well, that's true, but duh!
So that's your argument? Now I understand why you have the views you do.
Which is exactly what I discussed. Again, you seem to think that only lower component parts are technology (e.g the CPU itself). And you think that building a product that utilises disparate component parts (and needs tons of other engineering decisions besides) is not "creation of technology". I believe this is wrong.
>If this distinction were not important, anyone who acquired a computer could claim to be its creator. If this distinction were not important, someone who put a computer in a box would be equal to someone who invented binary arithmetic.
Apple is not a company who "acquires computers". It designs and builds them, including solving tons of engineering problems in the process. That it doesn't (usually) build the low level component parts its beside the point. Technology is modular.
I also pointed out, which you conventiently sidestepped, that Apple also creates their very own products, from designing logic boards and dedicated processsing units, to software such as Logic, FCPX, iWork etc. They don't just buy some Intel cpus, some Samsung disks and some X brand memory, slap it together and call it a day.
>It means someone else had the education and creativity to invent something for Steve Jobs to sell, to call "fantastic" to crowds of eager consumers, to import into his reality distortion field. The same reality distortion field that makes you think selling equals creating.
You continue to use the word selling, as if the products appeared by magic or trucks, and Jobs just had to sell them. You forgot the part were Apple, the company he run, isn't Best Buy (a seller), but the actual creator of the products it sells.
Jobs didn't just sell stuff. That would be Jeff Bezos, or the Walmart guy. He was the CEO, and quite the micromanaging product manager in the company (actually, companies) that also designed and build those products.
He was the CEO of a tech company. Not the CEO of a reseller chain. And, yes, he wasn't an engineer himself. Technology, as available to the people, is not created by engineers alone, especially in the form of final products.
And engineers don't just work in isolation and deliver their stuff ready for manufacture to some sales guy. They take directions, advice, suggested changes to how stuff works, etc, from a product manager guy -- and Jobs was very much hands on with such things. For the mere selling of stuff, Apple had Cook and top level retail managers on board.
After all, you sure know that Steve Jobs had got the "Vollum Award for Distinguished Accomplishment in Science and Technology, Oregon's most prestigious academic honor"? How come they didn't just give him the "sales" award? Perhaps they see the bigger picture and understand that accomplishing stuff in technology is not just about the guy in the lab?
I know what you're painting the "those non-engineering higher-ups take the praise for our engineering work" angle, but I don't consider it accurate. It belittles the contribution of higher level execs to see them as mere "sales" guys. Of course, it's all to common a point of view in lab guys.
He may not have written code or laid out circuits, but the work he did is extremely important in the process of creating technology. He wasn't just a promoter, he was also a shaper, he would steer the engineering team towards the types of solutions he was looking for and push them to achieve beyond what they would ordinarily do.
Having a vision of some kind of technology and then driving a team towards that goal is, undeniably, "creating technology".
So learn about science. Einstein wasn't "iterating" when he created the special and general theories of relativity -- these theories were very far afield from the physics of the day, and entirely original.
Charles Darwin wasn't "iterating" when be began to think about the fact that Galapagos finches from different islands had different beak sizes and shapes, and what that might mean.
Galileo wasn't "iterating" when he saw those four little stars that seemed to follow Jupiter around in the sky, and what they might teach us about Jupiter, and about earth.
Michelson and Morley tested the ether theory in their eponymous experiment, and their test failed. At the time, no one understood why. Decades later, Einstein explained why and replaced the prior theory without any help.
> Having a vision of some kind of technology and then driving a team towards that goal is, undeniably, "creating technology".
You just tried to equate a bus driver with a scientist.
Steve Wozniak created technology, Steve Jobs sold it to people. Please learn the difference between creators and promoters -- Wozniak didn't need Jobs to create a computer, but Jobs needed Wozniak (and many other similar people over the years, many of whom I knew personally) in order to have something to promote.
His insight was powerful, but like Steve Jobs, having an idea is one thing, proving it mathematically and experimentally takes considerably more work than one individual can possibly do in a lifetime.
While the achievement of individuals of that sort is significant, it's very easy to ignore the less visible people that were hugely significant in the formulation of these ideas.
Your own argument is working against you here. Was Steve Jobs "iterating" when he created NeXT? The iMac? When he defined what the iPod was? Or the iPhone?
I think you seriously under-estimate how difficult it is to have a vision for a type of technology and work relentlessly towards that goal over a span of decades. That's not a bus-driver following a pre-defined route, that's someone charting their own course, one that, in the case of Steve Jobs, broke tons of rules and challenged convention every step of the way.
Just as relativity is "obvious" now, to be taken for granted, so is the iPhone, yet both of those things completely transformed their respective worlds.
I think he is...
Personally I found the idea and explanation of knowledge-based computing where my attention went. Does your favorite language have knowledge about the world built into it?
The product can be good actually... but this kind of narcisistic marketing is better suited for weight loss products, self help, pick-up techniques e-book, etc (anything that gets money on your insecurity).
Anyways, invariably someone bashes Wolfram's ego whenever talking anything about Wolfram. This should be an internet law already.
If they don't release the sources for the compiler/interpreter it will be as popular as their Computable Document Format.
This is why there are no interpreted languages without a reference implementation that haven't failed miserably.
And if you leave off the "interpreted" qualifier, which is (a) a property of an implementation, not a language, and (b) is rather meaningless anyway (can you actually define "interpreted"?), well, then C ought to count too.
Wolfram obviously isn't aiming for that.
Go to Wolfram's page. That is no spec, it's a rough description of a particular implementation of a (closed source) system.
There's no way Wolfram can succeed with its much more complex feature set without a spec and a reference implementation that's not closed source. Flash pulled that because they caught that opportunity window in the browsed, but neither CDF as a format nor Wolfram (Mathematica language) stand a chance as a generic language. Even Matlab stays niche.
R6RS completely failed to establish itself, to this day R5RS is more popular.
You'd be hard pressed to find a more divided language than Scheme. As for ISO Prolog, it's not even the most popular standard. It might be in America, in Europe it's definitely Edinburgh Prolog and there's where it's used the most.
You guys are giving me great examples of how interpreted languages without a clear spec + reference implementation completely fail to establish a single standard. It can be argued that in the case of Scheme this is a feature, but for something like Wolfram with an existing closed runtime you definitely don't want this.
And VHDL and C99 definitely aren't "families" of languages. GCC, Clang, ICC, and maybe even MSVC all interpret the same code semantically equivalently. Unless you can either show C99 to be unsuccessful, find a reference implementation of C99, or define "interpreted" in a meaningful way, I think your assertion doesn't hold.
Oh, how I wish they had, some days. But they didn't.
Matlab? I'm not exactly sure what you mean by "reference implementation", though.
Far from desirable and this is probably Wolfram's wet dream.
I doubt it will happen though.
This can be considered a commercial success, although it's pretty much a failure for the user, the student, academia, ... everybody else.
Not-so-serious corollary: How much RAM would a Wolfram wolf if a Wolfram would wolf RAM?
There's a garbage collector, and the symbolic structure of the language makes it quite effective. You can also manually control the memory manager, one nice feature of Mathematica is how exposed it is.
http://reference.wolfram.com/mathematica/tutorial/MemoryMana...
> How much RAM would a Wolfram wolf if a Wolfram would wolf RAM?
Easily the funniest thing I've read on HN. You're my hero.
It's like an Amiga owner being shown a "multimedia" PC in 1995 and thinking, I was doing all this 10 years ago.
Thing is ; these notebook interfaces COULD be really brilliant, but they suck and I don't know why. Maybe just not enough people working on them?
What many users of open source don't seem to understand is that actually, honest-to-goodness open source development is a major undertaking and imposition on a person's time. And quality software takes actual teams of actual people with experience and commitment and a basic peace-of-mind about paying their mortgage and putting food on the table.
I would definitely say that the smoothness of the Mathematica interface, the way it works and interacts currently would be a great thing for programming languages like Haskell. It's just clumsy the way it is now and this is not something you can help but it needs fixing. Let's discuss further somewhere!
This is why I love IPython on the command line. Language is nicer too and editing is a breeze. Of course Python and available libraries are not much of a symbolic computing environment, but for the kinds of problems I deal with its faster to get things done than in Mathematica.
1. Does the language work without an internet connection?
2. Is it free to use?
3. What happens if/when Wolfram the company goes out of business, or Wolfram himself retires?
4. Are all the disparate APIs and sources that the language uses determined by fiat, or can they be customized? What happens if/when the APIs/sources stop working?
5. Given that the language can do things like query your Facebook graph, it seems like there's a lot of API upkeep that the language requires. Is this done by Wolfram? How does this work when I'm running locally (if this is even possible)?
I have become less worried. Wolfram invites comparisons to people like Leibniz for his own ends. I think it is less to stoke his vanity than to set high standards for himself. Choosing Newton as a role model may be vain but it also places massive responsibility upon him. Newton sought to solve important problems not disrupt pet grooming social networks.
He has extended Mathematica and added a search engine and is shipping it with the most affordable computer hardware he can find. Wolfram Language is an attempt to make maximum human knowledge available and Wolfram has chosen to distribute it inside a project to provide universal access to computing hardware.
Will it all work out? There are no guarantees. Millenia are long and media fragile. But I don't think there are many people more committed to the challenge than Wolfram.
http://blog.stephenwolfram.com/2013/05/dropping-in-on-gottfr...
His company offers great products... but his personality irritates me.
Also, best attribute name ever [1]: "BoundStateWaveFunctionMomentumRepresentationAbsoluteValueSquared"
[0]: http://reference.wolfram.com/language/ref/CanonicalName.html [1]: http://reference.wolfram.com/language/ref/PhysicalSystemData...
It may have been a "naive" implementation that could be much improved, but a similarly naive Java implementation was much faster and not significantly more difficult to write.
I seem to remember the pattern matching was especially slow, though very powerful. Had the latter been fast enough to use, it would have been a big advantage over Java. I'd be happy with single pass linear matching like ML/Haskell if it were just much faster than what I experienced with Mathematica's, I wonder if there's a way of doing that? Or type hinting, which most dynamic languages seem to eventually need to eek out more performance?
Hard to imagine that Mathematica wouldn't need something like that for good performance when you stray from the canned routines, but I'd like to be wrong!
However, looking at the compile support now, it looks like it's more fully featured. For example, I see type hinting is supported now (maybe it was before and I didn't know it).
It looks like it's worth trying again.
It was added in Mathematica 8 (see bottom of http://reference.wolfram.com/mathematica/ref/WolframAlpha.ht..., "New in 8").
Disclaimer: I work for Wolfram Research
Javascript would be an interesting choice for a toy implementation, especially because there are orders of magnitude more javascript installations than python, and much more effort put towards making javascript fast. And who knows, maybe the toy would turn into something more serious.
http://yow.eventer.com/yow-2012-1012/term-rewriting-in-javas...
http://groups.google.com/group/comp.lang.lisp/msg/f3b93140c2...
which explains why the Mathematica language contains so many amateurish mistakes, like its bizarre implementation of scope and its wacky pseudo-macro system. Don't get me wrong, Mathematica is a great product, in particular the standard library is fantastic, but the language itself is a mess.
The story isn't about Mathematica, its about SMP, which predated Mathematica by about 8 years. Wolfram was 20 at the time.
Back at Caltech, Rob Pike convinced Wolfram that C was the future and that was a good thing.
I hope not. If results depends on a specific implementation of a proprietary tool, there is no way to precisely replicate the results from scratch.
http://www.wolfram.com/mathematica-10-coming-soon.html
You can tell from looking at the bottom of the documentation page:
http://reference.wolfram.com/language/ref/Classify.html?q=Cl...
It has links to
Summary of New Features in Mathematica 10
New in 10.0: Data ManipulationMathematica Cookbook is also a nice reference. The book is much less systematic, but provides code that solves more realistic problems than the Mathematica documentation.
This is a great collection of resources: http://mathematica.stackexchange.com/a/606/241 (The most edited post on all of StackExchange)