Slashdot Mirror


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!"

51 of 216 comments (clear)

  1. mathematica? by goombah99 · · Score: 3, Insightful

    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.
    1. Re:mathematica? by MightyYar · · Score: 4, Informative

      It looks like Mathematica because Mathematica implements this language and is where it comes from. Historically the language developed ad hoc and now they have made an effort to standardize it into a "language".

      --
      W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
    2. Re:mathematica? by goombah99 · · Score: 5, Informative

      I first looked at the examples given in the article and said "harrumph this is mathematica". But then I watched his demo and I see what he's getting at. You could say this is just a really nice library but it's way more than the sum of it's parts. I think he's using the term Language not in the sense of "programming language", but rather in the sense that every real world speaking language like english, spanish contains an intrinsic model of the world itself and every part of a spoken language can be coupled to every other part. That is speaking has no incompatible interface between ideas does it? That question would never occur to you, but of course we have that problem with every programming library API.

      SO he's talking about a Language for programming as much as a programming language. His accomplishment is to make a language of programming a programming language.

      One of the great tricks he accomplishes is to combine symbolic programming and functional programming. I was somewhat surprised to notice that reactive programming actually falls out of that by accident. There's been a lot of spamvertising articles on Slashdot lately about the dogs dinner versions of Reactive programming for databases. Those are toys. Wolfram gets it right by not making it just fall out accidentally of two greater programming principles.

      Decades ago I toyed with mathematica. The problem I had with is it was that the symbolics were nice but they let you easily create problems with permutations so large that it became incomprehensibly slow as your problem scaled. This if course was the users fault. I'm just saying that the power of the language gave me the power to be stupid. In a similar way APL with it's outerproducts instead of loops could easily use up all your computer memory in one command line without you even appreciating what had just happened. With procedural languages you had to think about how your algorithm was going to manage its own complexity and thus oddly worked better for scaling to complex problems.

      It looks like what has happened is that mathematica --- now wolfram language--- has a lot more speed and wisdom about how to manage complexity and choose more wise approaches. SO perhaps that problem is solved more. But it's hard to say from the demo.

      In any case that was a staggering demo.

      --
      Some drink at the fountain of knowledge. Others just gargle.
    3. Re:mathematica? by Joce640k · · Score: 5, Interesting

      Am I supposed to be impressed by "a 4-line solution to a traveling salesman tour" when that 4 line solution calls a library function called "FindShortestTour()"?

      That might be useful if your name is Martin Gardner, but...

      --
      No sig today...
    4. Re:mathematica? by goombah99 · · Score: 4, Informative

      You should watch the demo. At one point he enters a natural language expression "Show a blue dodecahedron and two red spheres" which pops up a shaded 3D image model of just that.

      --
      Some drink at the fountain of knowledge. Others just gargle.
    5. Re:mathematica? by fuzzyfuzzyfungus · · Score: 4, Insightful

      Honestly, seeing that much power in a demo makes the hair on the back of my neck rise (and in the 'something vile beyond comprehension this way comes' sort of way, not the 'awe at technology indistinguishable from magic' kind of way).

      If you can do extremely complex and powerful things with very, very, short commands, that suggests that all those commands have a lot of internal magic baked in, quite possibly including some might-as-well-be-nondeterministic guessing to paper over any ambiguity in commands, or in output from one command moving to be input for another.

      In the context of a demo, where you can carefully test, and confine yourself to some highlights from the set of programs that are both cool and well behaved, fantastic. In the context of taking the language out into the wild, that sounds like every nightmare interaction with an unpredictable and opaque 3rd-party library that you'll never expunge from your nightmares....

    6. Re:mathematica? by fuzzyfuzzyfungus · · Score: 2

      I'm sure that the 'parse natural language expression and then do some 3d rendering' library is epic fun to debug if it behaves unexpectedly...

    7. Re:mathematica? by i+kan+reed · · Score: 3, Informative

      But that's not your job. You're not developing the language. You're just asking it to do things. Submit a bug report and move on.

    8. Re:mathematica? by ColdWetDog · · Score: 4, Funny

      Ah, so it's like Lotus Notes, then.

      --
      Faster! Faster! Faster would be better!
    9. Re:mathematica? by flargleblarg · · Score: 4, Funny

      "Show a pink cylinder with a purple sphere at the end with two pink spheres."

    10. Re:mathematica? by Anonymous Coward · · Score: 4, Insightful

      But that's not your job. You're not developing the language. You're just asking it to do things. Submit a bug report and pray to god that they fix it before you need to finish the project that you stupidly designed around this nondeterministic, amorphous pile of somewhat awesome but perhaps totally useless functions.

      ftfy

      captcha: formulas

    11. Re:mathematica? by goombah99 · · Score: 3, Funny

      "Find an image on the web resembling a torus being stretched by two hands"

      --
      Some drink at the fountain of knowledge. Others just gargle.
    12. Re:mathematica? by aminorex · · Score: 2

      No, he reimplemented Common Lisp with a Mathematica syntax reader.

      --
      -I like my women like I like my tea: green-
    13. Re:mathematica? by aminorex · · Score: 2

      For these particular demos he implemented a "solvemyproblem" function elsewhere. Not, however, for an infinite variety of closely related problems of similar practical import.

      --
      -I like my women like I like my tea: green-
  2. A picture is worth a thousand words... by jeffb+(2.718) · · Score: 5, Insightful

    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.

    1. Re:A picture is worth a thousand words... by kruach+aum · · Score: 3, Informative
    2. Re:A picture is worth a thousand words... by smjames · · Score: 3, Insightful

      If you look at the output of the capitals[tour] command, then compare it to the red lines on the map, they are not the same. Somebody fudged this demo a bit.

    3. Re:A picture is worth a thousand words... by polar+red · · Score: 2

      Right, the travelling salesman needs to return to origin!

      --
      Yes, I'm left. You have a problem with that?
    4. Re:A picture is worth a thousand words... by Anonymous Coward · · Score: 3, Interesting

      I wonder how often you can set out to do an amazing thing and end up with a few lines of Wolfram.

      Try doing Project Euler in Mathematica. It's so easy, I jokingly refer to it as Mathematica One-Liners.

  3. A traveling salesman built-in is cool I guess... by spinninggears · · Score: 5, Insightful

    So we don't count the lines of code behind the "FindShortestTour" function?

  4. Re:A traveling salesman built-in is cool I guess.. by Anonymous Coward · · Score: 4, Funny

    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.

  5. Cramming 20 commands into one line ... by Qbertino · · Score: 2, Insightful

    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
    1. Re:Cramming 20 commands into one line ... by goombah99 · · Score: 5, Interesting

      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.

      No you miss the point. It shows that two things have been accomplished

      first every command has an almost universal API for input and output letting you pipeline everything you do. try that with almost any normal library. it fails. now imagine achieving that across a language that is staggeringl comprehensive, deep and wide. it's a tour de force.

      then imagine someone told you that, by the way, that API was also symbolic.

      and wait it's also a functional programing

      and reactive.

      --
      Some drink at the fountain of knowledge. Others just gargle.
    2. Re:Cramming 20 commands into one line ... by Anonymous Coward · · Score: 5, Funny

      and webscale ?

    3. Re:Cramming 20 commands into one line ... by pepty · · Score: 2

      first every command has an almost universal API for input and output letting you pipeline everything you do.

      achieving that across a language that is staggeringly comprehensive, deep and wide.

      Are we sure about that yet? Are the limitations due to dependencies going to be revealed as people attempt to write longer pipelines? Wolfram makes great tools, but they aren't going to be great tools for every problem.

    4. Re:Cramming 20 commands into one line ... by Half-pint+HAL · · Score: 2

      The issue is more than merely about number of lines, it's about modes of thought. In most languages, coding is an exercise that basically involves a lot of mundane data shuffling that is easily expressed, but each individual line achieves nothing of consequence. When it comes to code maintenance, reading the lines is easy, but reconstructing the program logic is very difficult indeed. Wolfram's goal appears to be to strip away all the housekeeping in order to spotlight the code logic, which strikes me as the right way around.

      Your use of the term "mathematician" is interesting too, because it does suggest that you don't feel mathematicians should be interfering in programming. Well, I'm of the opposite opinion. Imperative programming is the result of non enough mathematics in computer programming. It took me a long time to get my head round my maths lecturers at university telling me a matrix was "a computer", but they were right. Imperative programming is inefficient because it doesn't allow us to take f(x) and g(x) and create g(f(x)) for all x, so we have to evaluate every step. But a matrix encodes a linear transform, and multiplying two transformation matrices gives you exactly that -- g(f(x)) for all vectors x. Typically, using matrices for a single step is less efficient than just running the normal code, but when you're going to carry out the same calculation j(i(h(g(f(x))))) on hundreds or thousands of xs, calculating a single matrix and using that every time is the most efficient way.

      This thinking doesn't start and end at matrices though.. most computation can be conceptualised as a data transform.

      --
      Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
    5. Re:Cramming 20 commands into one line ... by Megol · · Score: 2

      The issue is more than merely about number of lines, it's about modes of thought. In most languages, coding is an exercise that basically involves a lot of mundane data shuffling that is easily expressed, but each individual line achieves nothing of consequence. When it comes to code maintenance, reading the lines is easy, but reconstructing the program logic is very difficult indeed. Wolfram's goal appears to be to strip away all the housekeeping in order to spotlight the code logic, which strikes me as the right way around.

      Your use of the term "mathematician" is interesting too, because it does suggest that you don't feel mathematicians should be interfering in programming. Well, I'm of the opposite opinion. Imperative programming is the result of non enough mathematics in computer programming.

      Actually imperative programming is a mathematic concept too. The difference between imperative and functional programming is a matter of abstraction level as both of those can be translated to the other model.

      It took me a long time to get my head round my maths lecturers at university telling me a matrix was "a computer", but they were right. Imperative programming is inefficient because it doesn't allow us to take f(x) and g(x) and create g(f(x)) for all x, so we have to evaluate every step.

      Not necessarily, imperative programming can have such transformations and in fact most modern ones do. Also most compilers translate the imperative code into an internal functional abstraction to simplify optimizations (often in the form of SSA or single static assignment form) and then translate that into the imperative form required by most computers.

      But a matrix encodes a linear transform, and multiplying two transformation matrices gives you exactly that -- g(f(x)) for all vectors x. Typically, using matrices for a single step is less efficient than just running the normal code, but when you're going to carry out the same calculation j(i(h(g(f(x))))) on hundreds or thousands of xs, calculating a single matrix and using that every time is the most efficient way.

      This thinking doesn't start and end at matrices though.. most computation can be conceptualised as a data transform.

      Indeed. Or more correct as a series of data transforms combined with internal state AKA a finite state machine.

    6. Re:Cramming 20 commands into one line ... by Half-pint+HAL · · Score: 2

      Actually imperative programming is a mathematic concept too. The difference between imperative and functional programming is a matter of abstraction level as both of those can be translated to the other model.

      Yes, but the problem is that imperative coding abstracts the mathematics to the point where the programmer isn't thinking mathematically any more.

      It took me a long time to get my head round my maths lecturers at university telling me a matrix was "a computer", but they were right. Imperative programming is inefficient because it doesn't allow us to take f(x) and g(x) and create g(f(x)) for all x, so we have to evaluate every step.

      Not necessarily, imperative programming can have such transformations and in fact most modern ones do.

      Ok, but most coders won't use such features, because they don't understand them.

      Also most compilers translate the imperative code into an internal functional abstraction to simplify optimizations (often in the form of SSA or single static assignment form) and then translate that into the imperative form required by most computers.

      Which calls into question the whole point of imperative programming. Why should I spend so much time telling the computer exactly what to do in what order if it's only going to attempt to extract the task logic and refactor everything anyway? Surely it's more efficient to just describe the problem and let the computer fix it?

      most computation can be conceptualised as a data transform.

      Indeed. Or more correct as a series of data transforms combined with internal state AKA a finite state machine.

      Not "more correct", just "more computation". I'm not a functional programming hardliner, but I do see where they're coming from on stateless code. Why should determinism only apply at the system level? Do we not conceptualise procedures and functions as programs within programs? Determinism helps guarantee correctness.

      We learned Standard ML in university, and my main complaint about it wasn't the weirdness of it or the impurity of the functional model, it was the fact that we were asked to do the complete task within the language. I never understood why they expected a full interactive program in FP, when instead they could have had a lightweight application layer in non-functional code that called stateless functions as required in order to manipulate and update its stateful data. Since the early days of computing, the ideal of programming was to be able to just tie prewritten blocks together to perform arbitrary functions, and every generation someone touts this idea as the next big thing, coming this year, but it never takes off. One of the reasons libraries can be such a pain to work with is because the internal stateful processing is unpredictable. Ban state, and the problem goes away, no?

      --
      Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
    7. Re:Cramming 20 commands into one line ... by lucien86 · · Score: 2

      We learned Standard ML in university, and my main complaint about it wasn't the weirdness of it or the impurity of the functional model, it was the fact that we were asked to do the complete task within the language. I never understood why they expected a full interactive program in FP, when instead they could have had a lightweight application layer in non-functional code that called stateless functions as required in order to manipulate and update its stateful data. Since the early days of computing, the ideal of programming was to be able to just tie prewritten blocks together to perform arbitrary functions, and every generation someone touts this idea as the next big thing, coming this year, but it never takes off. One of the reasons libraries can be such a pain to work with is because the internal stateful processing is unpredictable. Ban state, and the problem goes away, no?

      I understand what you are talking about here, libraries create hidden functional layers that can create errors that can be difficult or next to impossible to track down or correct - after all the error isn't in your code, maybe not even in the library directly. In reality though getting rid of state is virtually impossible, at the end of the day state is how computers work.

      This Wofram thing is interesting but from the demo is not really that much further towards a true AI. - The real problem is in creating a dynamic operator that can articulate all the functions needed and remain stable - and is reliable enough to run for years without crashing. It has exactly the same problem that libraries and other components do things that the programmer cannot predict or control. In many or most cases for Strong AI the underlying nasty is the Heap management system or sometimes the CPU stack - it is code at the lowest level that causes the biggest problems.
      In the end with the project I am working on the solution was to go even below machine code level to a custom hardware base - so my programming language is Verilog. These days its sometimes almost easier to design a custom hardware solution than a software one. Performance can be an issue but the solution then is to buy a faster chip. If you head towards the top of the range though things do get very expensive - the most expensive FPGA's on the market cost more than $10,000 - per chip!

      --
      Below the speed of light Special Relativity is one of the most accurate theories in physics - above the speed of light..
  6. It looks like a very nice library by lisaparratt · · Score: 5, Insightful

    It looks like a very nice library.

    Doesn't really say very much about the power of the language at all, though.

    1. Re:It looks like a very nice library by Impy+the+Impiuos+Imp · · Score: 3, Interesting

      A programming language with primitives like:

      "Compile a list of all European Capitals"

      and

      "Joe, my graduate student, find the shortest path between them"

      sounds like a damned powerful anguage to me.

      The ultimate is an AI, "Go Do X", where X Is an arbitrarily complicated and fuzzy problem, described in natural language.

      For example, "AI, go assemble a list of all known pictures of Cara Delevigne and Michelle Rodriguez, sorted with most romantic or intimate at the top."

      Do you deny that would be an awesome and powerful and beautiful language capable of analyzing the deepest and most important issues known to Mankind?

      --
      (-1: Post disagrees with my already-settled worldview) is not a valid mod option.
  7. Does calling a method really count as 2 lines? by js3 · · Score: 3, Insightful

    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?
    1. Re:Does calling a method really count as 2 lines? by dmgxmichael · · Score: 3, Insightful

      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.

      Do you count the code that drives the compiler or interpreter as part of your program? What about the code that drives your database?? If it's abstracted away into the language then it's not "actual meat" as far as the programmer doing the work is concerned. It is two lines. And unless you're writing all your code in machine language you have no right to claim otherwise.

    2. Re:Does calling a method really count as 2 lines? by PPH · · Score: 3, Insightful

      But that's an important distinction to make. These solutions are demonstrating good library support. Not the syntax of the basic language itself. Are those libs even written in Wolfram?

      I can solve a traveling salesman problem using Perl with not too many lines.

      --
      Have gnu, will travel.
  8. Not so sure about the language... by lucag · · Score: 4, Insightful

    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).

    1. Re:Not so sure about the language... by MightyYar · · Score: 2

      The power of the language can be measured in how easily it can be extended or non trivial algorithms can be implemented

      True, but the usefulness of a language largely depends on how quickly you can get a result - and while hard to tell from this little demonstration - I certainly see some impressive capability from the standard library.

      --
      W..w..W - Willy Waterloo washes Warren Wiggins who is washing Waldo Woo.
    2. Re:Not so sure about the language... by dmgxmichael · · Score: 4, Insightful

      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).

      Hello. My name is PHP. I'm the most ugly hideous language known to man, but man do I have thousands of functions to get work done. And that's why I rule the server side processing world :D

      Function libraries and ability to get stuff done quickly counts for a lot.

    3. Re:Not so sure about the language... by lucag · · Score: 3, Interesting

      Indeed, and it appears that this is actually the goal of the project, per the original announcement
        http://blog.stephenwolfram.com...
      The scary bit, is that many of the "novelties" there announced (i.e. homogeneous treatment of input, output and data, etc.) are actually quite old ideas in the arena of functional programming (lisp or scheme are built upon these foundations)... sometimes they work nicely; often you risk ending up with academic exercises.
      I am myself not too keen on "revolutionary technologies" which should rather be considered "evolutionary developments" (even when the evolution actually provides something new and useful)!

      What is new here should be the integration with a massive database of `facts' and the possibility of performing elaborate queries, relying on `ready-made' algorithms.
      This is very convenient and potentially useful but
        a) it has little to do with `programming' per se; it is a programmatic interface to a knowledge-based system (where the knowledge itself includes also the algorithms being requested)
        b) it is opaque, in the sense that there is little control on what code is doing what data: many of the functions act actually as black boxes and it is not straightforward to see how to actually get in control of the system and/or understand what is actually being done in order to provide an answer.

      A further remark: (b) is most of the time not required at all (we just want to get a rough picture of something), but it is essential e.g. for scientific applications.

    4. Re:Not so sure about the language... by dmgxmichael · · Score: 3, Interesting

      Hi. I'm a 15 year old script kiddie. I just love those thousands of hideous functions because deep inside a significant fraction of them lies an exploit so obvious that three of my friends figured a half dozen of them out in a two hour Redbull and Cheetos hacking session (which consisted mostly of Googling pictures of naked 16 year olds and occasionally looking for PHP vulnerabilities).

      That hardly debunks my point. Rather, it reinforces it - people choose languages on the basis of work getting done quickly - all other concerns go out the window pretty quickly.

  9. RE: A traveling salesman built-in is cool I guess. by Anonymous Coward · · Score: 3, Insightful

    Yes. Just like we don't count the lines of machine code that a perl 'one liner' gets transformed into before execution.

  10. Perl by Areyoukiddingme · · Score: 3, Insightful

    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.

    1. Re:Perl by abies · · Score: 2

      I dare you. Let's start with travelling salesman example. 4 lines of perl. It has to include the map with graph as an output displayed on the screen. You are free to import any CPAN module, but no utilities of your own written specifically for this purpose.

      I do not expect post of excuses and example of things you can do in perl in 4 lines instead of this problem - I expect 4 lines long perl code.

  11. Concise? by DdJ · · Score: 2

    Don't make me laugh -- I used to be an APL programmer.

  12. A little too much for human consumption by cowwoc2001 · · Score: 2

    Impressive but overwhelming. I don't look forward to learning, reading or maintaining such code. So as usual: functionality is inversely proportional to usability :)

  13. New Kind of Language? by oldhack · · Score: 2

    If ego can feed you, Wolfram would be, like, really fat.

    --
    Fuck systemd. Fuck Redhat. Fuck Soylent, too. Wait, scratch the last one.
  14. Not a 4 line solution - I call BS by frnic · · Score: 4, Insightful

    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.

    1. Re:Not a 4 line solution - I call BS by abies · · Score: 3, Insightful

      You wish... you forgot about 100 extra commands you need to set up proper nvidia drivers afterwards...

      And I think you misunderstood the premise. It is not a language to write salesman algos in. It is language to data mine, connect facts, process and visualize them. And it looks pretty impressive from this point of view.

  15. Re:A traveling salesman built-in is cool I guess.. by Half-pint+HAL · · Score: 2

    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'
  16. Re:shortest path? by amaurea · · Score: 2

    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.

  17. when search returns models by epine · · Score: 2

    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.

    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.

  18. You don't have to by pavon · · Score: 4, Insightful

    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.