Stephen Wolfram Developing New Programming Language
Nerval's Lobster writes "Stephen Wolfram, the chief designer of the Mathematica software platform and the Wolfram Alpha 'computation knowledge engine,' has another massive project in the works—although he's remaining somewhat vague about details for the time being. In simplest terms, the project is a new programming language—which he's dubbing the 'Wolfram Language'—which will allow developers and software engineers to program a wide variety of complex functions in a streamlined fashion, for pretty much every single type of hardware from PCs and smartphones all the way up to datacenters and embedded systems. The Language will leverage automation to cut out much of the nitpicking complexity that dominates current programming. 'The Wolfram Language does things automatically whenever you want it to,' he wrote in a recent blog posting. 'Whether it's selecting an optimal algorithm for something. Or picking the most aesthetic layout. Or parallelizing a computation efficiently. Or figuring out the semantic meaning of a piece of data. Or, for that matter, predicting what you might want to do next. Or understanding input you've given in natural language.' In other words, he's proposing a general-purpose programming language with a mind-boggling amount of functions built right in. At this year's SXSW, Wolfram alluded to his decades of work coming together in 'a very nice way,' and this is clearly what he meant. And while it's tempting to dismiss anyone who makes sweeping statements about radically changing the existing paradigm, he does have a record of launching very big projects (Wolfram Alpha contains more than 10 trillion pieces of data cultivated from primary sources, along with tens of thousands of algorithms and equations) that function reliably. At many points over the past few years, he's also expressed a belief that simple equations and programming can converge to create and support enormously complicated systems. Combine all those factors together, and it's clear that Wolfram's pronouncements—no matter how grandiose—can't simply be dismissed. But it remains to be seen how much of an impact he actually has on programming as an art and science."
Hrm, another programming language...
Attempts have been made in the past to automate programming, it's never worked very well (or at all in some cases)
Still, look forward to seeing it, perhaps I'll be pleasantly surprised.
that you will have to pay a lot of money to use it?
that way if we make a programming error we can just comment "Bad Wolf" (too much exposure to Dr Who recently) :P
"The first time I got drunk, I got married. The second time I bought a chimpanzee, after that I stayed sober" Arian Seid
But this one is ostensibly designed by Stephen Wolfram, who knows what scientists and physicists need from a programing language.
Python, C, Java, et al were all designed by computer programmers for computer programmers. R and Mathlab were designed by computer programmers for mathematicians, thus works a lot better for expressing certain mathematical concepts and working with them (transformations, statistics). But there is much room for improvement, especially when looking at the problem from the scientist's point of view, not from the programmer's point of view.
It is dangerous to be right when the government is wrong.
Wolfram announced his latest idea - that there needed to be some kind of pliable material available next to toilets with which to clean one's bum. This material, he said, is going to be really soft, probably a couple of layers thick, and needed to be on some kind of continuous dispenser mechanism which he is developing.
If Slashdot were chemistry it would look like this:Cadaverine
First a new kind of SCIENCE, now a new kind of PROGRAMMING.
Can't wait for a new kind of LOVE.
Stephen Wolfram is the George Lucas of scientific computing.
Consider that the answer may be completely the opposite than what you assume. Perhaps we just teach kids math with programming. Then, just like long division or integration, etc. they won't have a problem explaining their desires to computers.
Hell, I have a _BEST_SORT() macro which, together with my collections library's _GEN_PROFILED_H directive will select the actual best sort method on next compile after profiling to PROVE which sort is best for the scale of the problem space, instead of guessing. Predicting what I want to do next? Yep, my brain even does that automatically me too. All I have to do is explain to the computer what I want to have happen, and it happens. IMO, the problem is the way mathematics is taught. A sigma is a for loop. The latter is more verbose, but if they'd have been taught for loop instead of sigma they'd be programmers; It's sort of ridiculous when you think about teaching kids the old way: "I'll never use this in real life", meanwhile they can utilize programming in say, javascript, to take better control of every damn device they own right now... Teachers just failed to tell them how.
Seriousy, I've taught pre-teens how to code as a remedy for flunking out of mathematics; Instantly they're able to see the utility of the tool. Humans are tool using creatures, no wonder they have a hard time learning how to use tools that aren't immediately useful to them. The flunkers are actually being smarter than the teachers.
Well, either he's created the mother of all LISP macros, or it's simply vaporware. Love to see it when they publish it. Code or it didn't happen.
Here is the obligatory xkcd, panel two.
I don't program for a living anymore, and I've always been more of a system-level, hardware driver kind of guy, so C/C++ work fine for me.
But especially coming from that background, my need isn't for another programming language, it's for better documentation of available libraries. For any common task that I want to do, somebody has probably written a great library that I can just strap in and use.
The problem is when I start trying to use it. The documentation has blank "TBD" pages, or really helpful comments like, "init_lib() -- initializes the library. You can specify the # of flickers per bleem ..."
Or ... and this is my 2nd favorite ... the documentation is out of date. "Hey, I tried to do this the way your tutorial said and it didn't work?" "Oh, yeah, that tutorial is out of date; we've changed some stuff ..."
My very most #1 favorite is automatically generated documentation that looks at (for example) a C++ class and then creates an HTML page. I might as well just look at the source code ... hoping, of course, that the people who wrote that source actually inserted more than a few, "does what it says" comments. Or that I don't have to play the Spaghetti Trace(tm) game, bouncing from one .c file to another .h file and back to a third .c (and this is after repeated greps in the "src" directory) to try to figure out what's happening to my poor variable while it's inside a function.
Not criticizing FOSS, per se; I understand that it's written by volunteers (for whom I'm very grateful). But this, rather than needing a new way to "PRINT" or "SORT" in a programming language, is the far bigger problem, in my book.
Cogito, igitur comedam pizza.
1. Wolfram is a notorious Lisp disser, and Mathematica is arguably a shining example of Greenspun's tenth rule.
2. Lisp has a long history of trying to help programmers, with mixed results. The term DWIM was coined by Warren Teitelman in 1966 as part of a project based on BBN Lisp, the main predecessor of Interlisp; this project of his sounds like DWIM writ large.
To a Lisp hacker, XML is S-expressions in drag.
One day the student came to the master and said "There are too many programming languages! I am tired of having to learn thirty programming languages! I shall write a new programming language to replace them all!"
The master smacked the student upside the head. "Idiot! Then we would all have to learn thirty-one programming languages!" The student was enlightened.
Unfortunately, it was only the one student who was enlightened. Now we all have to learn fifty programming languages.
#naabhaprzrag, #sverubfr-000, #agi-fcbafberq, negvpyr[pynff*=' negvpyr-ary-'] { qvfcynl: abar !vzcbegnag; }
Being primarily a mathematician and not a computer scientist or engineer, I have used Maple, Mathematica, and R. At one point I knew Pascal and C. I've dabbled in Python.
Of all these programming languages, Mathematica was BY FAR the easiest language for me to learn to use. The way it does certain things makes so much more sense to me than the others--for example, how it handles functions and lists. Unlike C, it's a high-level language if you want it to be, although you aren't forced to use it in that way. Pattern matching is extremely powerful. And the syntax is totally unambiguous; brackets define functions, braces define lists, and parentheses are used only for algebraic grouping of terms.
The major criticism I have of Mathematica is that it is comparatively slow, mainly because of its lack of assumptions regarding the nature of the inputs. Internally, it tries to preserve numerical precision, it works with arbitrary precision arithmetic, and it doesn't assume values are machine precision. All this comes at a cost. Also, reading other people's code can be remarkably difficult, even if it's commented. The tendency is to write functions that do a lot of complicated things in one command, so code can be remarkably dense.
Most recently, I have had to learn how to use R, due to its abundance of statistical algorithms, many of which have not been implemented in Mathematica. There was a simple example where I tried to calculate a Bayes factor, and the expression was something like (1 - x)/(1 - y), where x and y were very small positive numbers, somewhere around the order of 10^-15. This calculation totally failed in R--the answer given was 1. Mathematica correctly calculated the ratio. Maybe I don't know enough about R to know how to preserve the necessary numerical precision, but it sort of shows that in Mathematica, such issues are handled automatically; moreover, if there is a potential problem, Mathematica warns you.
Anyway, this is all just personal opinion, really. The takeaway for me is that I see a lot of evidence that Stephen Wolfram is pretty good at designing computer languages for specific purposes. Yes, he's totally egocentric, but there's no denying that he is brilliant. When Wolfram | Alpha debuted, I remember thinking how totally stupid it was. And now...every single high school and college math student knows about it. It is one of the most ingenious marketing ploys I have ever seen. And the scary thing is, it keeps improving. It's almost Star Trek-like in its ability to parse natural language input. And I think that's the eventual direction that computer programming will evolve towards. Programs will not be written in code, but instead, as broad sentences, parsed by an AI which automatically performs the high-level task.
This fellow needs to work on his self-esteem.