Wolfram Language Demo Impresses
theodp writes "The devil will be in the details, but if you were stoked about last November's announcement of the Wolfram programming language, you'll be pleased to know that a just-released dry-but-insanely-great demo delivered by Stephen Wolfram does not disappoint. Even if you're not in love with the syntax or are a FOSS devotee, you'll find it hard not to be impressed by Wolfram's 4-line solution to a traveling salesman tour of the capitals of Western Europe, 6-line camera-capture-to-image-manipulation demo, or 2-line web crawling and data visualization example. And that's just for starters. So, start your Raspberry Pi engines, kids!"
This looks a lot like Mathematica. When does something become programming language? Wasn't mathematica a programming language too?
Some drink at the fountain of knowledge. Others just gargle.
A picture is worth a thousand words, but most sets of 1000 words can't be succinctly described by a single picture.
Similarly, while I'm sure that you can write a few lines of Wolfram and do amazing things, I wonder how often you can set out to do an amazing thing and end up with a few lines of Wolfram. Maybe the answer is "pretty often", which would be wonderful. But I'm waiting to hear from some outside users.
So we don't count the lines of code behind the "FindShortestTour" function?
Did you solve the secrets of the Universe? Stephen Wolfram did. All is known because of Him, even though you could not hope to grasp what He knows. Show more respect and reverence.
Cramming 20 commands and 8 layers of brackets into one line doesn't make your programm an 'impressive 5-liner'. It, at most, makes a neat stunt by a mathematician in a proprietary programming language he invented himself. I'd be tempted to call it shitty programming.
Nothing to see here folks, move along.
We suffer more in our imagination than in reality. - Seneca
It looks like a very nice library.
Doesn't really say very much about the power of the language at all, though.
Someone reminiscent of APL which critics called the first 'write-only' programming language.
[Insert pithy quote here]
All I see there is calling some method to do something complicated. It's not 2 lines of code of the actual meat is hidden somewhere.
did you forget to take your meds?
As much as I would like to be impressed, what I see is quite underwhelming: a functional application language with some interface to "facts" and "databases" with a pattern matching engine might make some analysis easier but ... the principles of the language are mostly what you come to expect if you have seen lisp once or any modern functional language,e.g. haskell.
I can see it as being useful, but as another commenter pointed out, "FindShortestTour" is a library function (which might be handy), but definitely not an example of how concise the language might be; the same could be said about "EdgeDetect" or the like. The power of the language can be measured in how easily it can be extended or non trivial algorithms can be implemented ... not in how many functions are offered (even if this could be more convenient none-the-less).
Yes. Just like we don't count the lines of machine code that a perl 'one liner' gets transformed into before execution.
it's just one line in wolfram:
print UNIVERSE.revealSecrets(ALL);
Hey, I have a first edition New Kind of Science! Don't know if there was ever a second, though...
I can do much the same thing in the same number of lines of Perl code. I don't think there are many who would claim that makes Perl a paragon of language design.
Clickbait article is clickbait.
But practically useless as the only way you are going to travel via some of those legs is if you have your private plane.
And what sort of salesman has a private plane .. hmm .. maybe one who is trying to sell us a new computing paradigm??
I am Slashdot. Are you Slashdot as well?
Please forgive my ignorance - what mysteries has he unlocked?
Don't make me laugh -- I used to be an APL programmer.
it's just one line in wolfram:
print UNIVERSE.revealSecrets(ALL);
Output: 42
Emacs has a binding for that.
You can do the same in Python.
I think you just need to type this first
import wolfram
But it prints this rant from Guido on why this is not Pythonic at all, after it does the import.
Just one example: why water flows the way it does around an object placed it its path. In Chaos: Making a New Science, it specifically says this is unpredictable. ANKOS has a model how to predict it. I, for one, highly recommend reading it.
Tic-Tac-Toe, Global Thermonuclear War, and relationships all have the same winning move.
All that functionality had better be thoroughly tested. High level scientific computations (especially working with large data sets) are often extremely hard to test and validate.
Just because you call a function, it doesn't make the code more elegant or better.
Why not just wrap all the data into the function and say" hey I did it in 1 line of code."
Impressive but overwhelming. I don't look forward to learning, reading or maintaining such code. So as usual: functionality is inversely proportional to usability :)
If ego can feed you, Wolfram would be, like, really fat.
Fuck systemd. Fuck Redhat. Fuck Soylent, too. Wait, scratch the last one.
So we don't count the lines of code behind the "FindShortestTour" function?
Not unless you had to write them yourself. Do you count the lines of code behind printf() when you write Hello World?
I don't care if it's 90,000 hectares. That lake was not my doing.
The traveling salesman tour - is NOT a 4 line solution. By that definition I can write "Run Linux" and have a one line operating system.
No, of course not. When you call a library funnction, do you count all the lines of code in the library? When you write a for loop, do you count all the lines of assembly it compiles into? No. The number of lines you count is the number of lines you have to debug, and the ones that hurt more count extra.
Fixed that for you.
"Wolfram Language" is not new. Wolfram is just trying to decouple Mathematica's programming language from the Mathematica products, which only makes sense considering the direction of the company. Mathematica users have been using this language (minus the Wolfram Alpha feature) for years.
As a domain-specific language, it's really great. The functional programming features have a great syntax (IMHO) for doing math stuff. As a general purpose language, it's awful. The library is large and easy to use, and the documentation is a pleasure to read. It's also as proprietary as it gets. Wolfram Research tries to ease the pain of that constricting noose with the CDF player and the ability to embed certain kinds of Mathematica--er, I mean, Wolfram Language code into web pages. In practice, however, everyone you want to share your code with is going to need to buy a Wolfram Research product or work at an institution that has a site license.
No, of course not. When you call a library funnction, do you count all the lines of code in the library? When you write a for loop, do you count all the lines of assembly it compiles into? No. The number of lines you count is the number of lines you write.?
Unless you're a useless bit pusher, you make sure you fully comprehend the ramifications of *every* library you use. For example, Boost is really sweet when you need to slam together a pile of code and have it working out of the gate with minimal fuss, but if performance is an issue, you cant use it. If you need to understand where every processor cycle goes, even C may be too high level for you... In short, Wolfram isnt for programmers, its more for IT / administrators.
The real test of a language is what the source for the compiler and the libraries looks like
I wish I had a good sig, but all the good ones are copyrighted
The solution it comes up with is correct (it includes/excludes the links you mentioned), but for some reason it's drawing the graph incorrectly.
nice observation. Even weirder, is that the list of capitals shown for the tour is in a different order than the map that is drawn. I'm thinking this has something to do with that //last.
Some drink at the fountain of knowledge. Others just gargle.
/usr/bin/gcc $1
So we don't count the lines of code
FTFY
All my liberal friends think I'm a conservative, all my conservative friends think I'm a liberal.
it's just one line in wolfram:
print UNIVERSE.revealSecrets(ALL);
Output: 42
Sorry that's life, the_universe AND everything. It's a bitwise AND, of course, so that's 101010. Life is 111011, everything is (as you might expect) 111111. Finding all possible values of the universe is an exercise left to the reader.
Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
Wolfram didn't claim to have a 4-line solution to the TSP. You can thank the summary submitter for that one.
If you want to see the merit of a language, you actually have to see something implemented in the language. If all you do is call a library function (especially one whose inclusion in a core set of operations is dubious) then all you get to see of the language is how you call a function. If you want to demonstrate a language, you should pick examples that excercise the core features of the language, not punt to calculateObscureFnOnlyUsedByArcheologistsButItTakesUpSpaceOnYourFlashCardAnyway()
This video was made for the easily impressed. But then, most videos are, which is why they generally tend to not be worth watching.
Someone had to do it.
If you were to write a simple python program that uses say, the Panda package, would you include all the lines of code of that package when line counting your program? No.
Yes, as we all know, Hello World in C is actually thousands of lines long. (shakes head sadly) It's a terrible language.
Stephen Wolfram invented a New Kind of Science, that has unlocked the mysteries of the Universe. What have you done?
I know stuff about tanks.
YOU miss the point.
while the idea of such an "easily usable knowledge repository" is interesting, the issue of who governs this repository is determinant. if open and transparent such a system would be revolutionary. since it is not, it is just another product to avoid like pest. inspirational? sure! anyone?
sadly, i'm afraid (near) future humans will indeed be very dependent on asking such AIs for much of their lives, and that those will not be accountable. but no hurry at all to get to that, seriously.
Perhaps I'm misunderstanding you here, but the Traveling Salesman problem is a closed path - the salesman has to return to his starting point in the end. Your solution is only shorter if the salesman is allowed to settle down in Reykjavik in the end. The red line in the plot is misleading because it does not draw the closing line between Athens and Vienna, but that part is included in the path. As far as I can see, the solution shown in the video is the correct one, and the path drawn is correct except for the lack of a closing line.
A nearly semantic language that can solve problems for the user with the information that they are looking for?
This sounds like Stephen Wolfram is angling for a buyout from an enormous search engine (that has the majority of market share).
Such a search giant busies itself with the trying to stay ahead of a curve that is contantly try to flatten itself. This would be quite the engine for solving that problem...
We should learn what we need to know about issues, before we decide what we need to feel about them.
There is a small bug in the demo: It's using the "draw open path" instead of "draw closed path" command. That leaves a gap (between Athens and Vienna) in what should have been a closed path on the map, since the Traveling Salesman problem is about a salesman going out to sell things, and then returning home in the end. Aside from that, the plot and text output are consistent and correct.
And what is Greece doing in western Europe? And why Albania is not there?
Wow, that's just bizarre. I don't know where you get your misinformation, but it's an elite grade of batshit.
The whole point of Boost is that it maintains a certain amount of abstraction without boxing you into a performance corner. Were it not for those conflicting goals, the devilishness of its internal machinery could not be justified.
Template metaprogramming essentially involves expressions converting themselves to a symbolic representation that doesn't resolve itself into a concrete expression—by means of purely functional transformation at a quasi-syntactic level;—until some final result is demanded, at which point the highest performance code path can be selected based on the actual parameters (more specifically, often exploiting which parameters vary and which parameters are constant or nearly constant).
The problem with Boost is similar to what Knuth said about the problem with literate programming.
Literate programming demands a high proficiency with two different skills: formal reasoning and verbal expression. This shrinks the available pool of adherents and adopters. And worse, there's a terrible opportunity cost, because the people out there who have extremely high proficiency in both of these skills are in extremely high demand to take on central roles in large projects where they don't spend their hours bent over literate code.
The kind of environment where Boost can be best exploited for both its abstraction and its performance is going to be wonk-filled boiler-rooms at high frequency trading companies where the cash, the talent, the commitment, and the project duration mesh together. Importantly, the project specification in these environments is often in continuous, long-term evolution as your firm chases whatever edge it thinks it might have in a chaotic, rapidly-shifting market environment. The month you spend pouring over low-level optimization gets deployed for a whole week. The month you spend automated your Boost framework to achieve nearly the same performance becomes a permanent code asset (and a competitive asset whenever you find yourself needing once again to run that old play).
Boost is in that category where if you have to ask, you can't cut the mustard. The natural Boost programmers already know who they are. Few of these people toil in the public eye. That's not where this elite, double-barrel skillset tends to land.
The Wolfram language is impossible to assess based on this video. If your application depends on Wolfram "knowledge" how do you know it will continue to meet rigorous specifications the day after tomorrow?
Is there a public regression suite on the contained knowledge against which to assess whether your program is erected on firm or porous soil?
What guarantee does one have that it's cleverness or performance characteristics will stay consistent when it matters most?
I suspect the killer application for WooL is prototyping the semantic web. The semantic web has been dragging its feet. Google and Facebook don't wish to become disintermediated. They have one foot on both sides of this fence and their hands cupped over their testicles. Doesn't make for rapid progress.
The Achilles heel of search is that search returns results rather than models. Google is trying to split the difference by having search return interactions. It's an excellent paving stone on the road to a lucrative future purveying OOXML.
If ten minutes of coding within the Wolfram Language embarrasses Google search, we have a winner here of WuLing mammoth proportions.
I liked the demo but it seems shallow to me. He has put a neat UI to connect data to and from well-known algorithms but the language solves problems I already have many solutions for. For example, when I reviewed the wolfram language docs for its support for image processing, I saw functions that are commonly provided in foss image libraries. I didn't see anything that would allow me to write code more quickly, correctly, or briefly but maybe I just missed it.
I have a better language with a one-liner for web browsing:
Firefox<CR>
Yeah yeah, but can it look round corners in photos and respond to vague voice commands?
The way this is setup isn't that that you code everything in natural language, rather it is just a shortcut to look up the correct formal language. Instead of searching/browsing documentation looking up the exact names of the functions you want and how to chain them, you just type what you want in natural language. If it interpreted you correctly, then great it saved you several minutes, and now you know the real syntax to use in the future. If not, well you only lost a couple seconds.
The idea of mixing natural language like this isn't so weird; the first step that most programmers would take in looking up documentation when they don't even know the name of the library the functionality is located in is to perform a natural language search on web browser, and then go from there. This just takes it one step further and streamlines the process, which is perfect for a interactive language.
This will be fantastic for medical applications. Looking at the fine details one could concieve rapid statistical analysis and validation for large medical number sets. It's actually very cool.
I'm sad this didn't work. Perhaps this might be right? I think the graph still needs to be converted to binary. Or something. >.>
.
. hmmm
SEO, Web Based LAMP Editing? I haven't gotten to many requests for Traveling Salesman problems. I did get a request, once, to create a childs soccer banner with various shapes though.
Mathmatica is a great product, and when I apply it to Ma and Pa's eCommerce web site and Ma and Pa have no idea what they're doing, so they manage by a economic system from the 1960's. I would use Mathmatica for what again?
-the programming language seems like plain Mathematica input: nothing new
-i love (and dislike) Mathematica, and one of the things which i dislike is the fact that it is not FOSS and has no FOSS equivalent. I cant find a license for the new language, just that "it may be bindled with the Rasperry pi".
Sparse coding is good, but can become 'obfuscated' code pretty quickly.
Otherwise known as Perl.
I actually have discovered the secret to life the universe and everything. You would be amazed at how close you just came... : )
Below the speed of light Special Relativity is one of the most accurate theories in physics - above the speed of light..
Actually, having lived through it, the C programmer's negative reaction was to C++...
So, do you only write software on open-source operating systems for which you have read the entire source code, and the source code of the compiler used to build the code? If so, wow, impressive, I don't do that. As for me I am just a lowly bit pusher who is comfortable programming against the promises of things like the JVM, even though I've never read the JVM source code.