Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Programming

Is Wolfram the Smartest Programming Language In the Room? (wolfram.com) 113

theodp writes: Out of the box, does your programming language support Chemical Formulas & Chemical Reactions? Making Videos from Images & Videos? Integrals? Real Numbers? Graph Trees? Leap Seconds? Bio Sequences? Flight Data? Vector Displacement Plots? Lighting? Machine Learning? Tracking Robots? Notebooks? Creating, Deploying and Grading Quizzes? Analysis of Email Threads? Access to 2,249 User-Defined Functions? NFTs?

These are just some of the feature upgrades Stephen Wolfram touched upon as announced the launch of Version 13 of Wolfram Language and Mathematica in a Dec. 13th blog post (for more, see What's New in Mathematica 13). Sign up for free access to Wolfram Cloud Basic here, kids! So, is Wolfram the "smartest programming language in the room"?

This discussion has been archived. No new comments can be posted.

Is Wolfram the Smartest Programming Language In the Room?

Comments Filter:
  • by Entrope ( 68843 ) on Sunday December 19, 2021 @10:38AM (#62096957) Homepage

    The answer is "No".

    Wolfram is a shameless self-promoter, which means this piece fits in quite well in the le nouveau regime here.

    • He lost me at "2,249 User-Defined Functions".

      By definition: User-Defined Functions are not supplied by the language.

      (or does he mean users are limited to adding 2,249 functions to it?)

      • by Entrope ( 68843 )

        I think it means the implementation (and there's only one, because the language is proprietary) ships with 2249 functions in its standard library.

        I guess they were too lazy to find one more function to implement so it could be a nice round number.

        • Re: (Score:2, Interesting)

          A short search returns this (may not be fully correct, but...)

          Python 3 has 68 built-in functions
          Perl has about 230 or so if I'm counting them right
          PHP has over 700 functions
          Excel has about 500 functions (this doesn't really count, does it?)

          I tried searching for the number of functions in Rust, C, C++, Lisp, javascript, and several others but no clear answers. Maybe someone else can shed some light on this. How many functions do typical languages have?

          But 2249 functions? That seems like crazy overkill to me,

          • by HiThere ( 15173 )

            They're quite useful if you can't add external libraries. And insufficient even so.

            OTOH, due to the license I didn't look deeply into this, so perhaps you can add external libraries.

          • Modern languages are not really structured around "build in functions".
            Even C has none at all. C comes with some standard libraries like std-lib and math. And: those do not provide build in functions. They are obviously functions from a library.

            Java has no single build in function but a gazilion methods/functions in it's standard libraries, like "Math".

            Stuff like that you won't find with google, as google is bad in mapping from "function" to "method".

            You could ask how many build in functions Lisp has, you p

          • C has zero built-in functions. You need to include a library for everything. That's not a bad thing. I believe Java is the same way.

            • I believe Java is the same way.

              Yes, but no, but yes. You don't have to explicitly import java.lang classes. So it can feel like they are built-ins. But they are indeed in a package (even if it's a built-in package), so you win.

          • "The Wolfram Language has nearly 6,000 built-in functions." Find this at https://www.wolfram.com/langua... [wolfram.com].

            If you think this is overkill then you have never used Mathematica which is probably true of most of the people commenting here. And you don't have any clue about how Mathematica is used or why anyone would choose to use it over Python, Perl, PHP, or Excel. Mathematica stands in a league of its own.

        • Here's one to make it a round 2250:

          String FindSmartestPersonInRoom()
          {
            return "Stephen Wolfram";
          }

    • Off topic: "the" and "le" are the same word, so if you wanted to say "the new regime" you can drop one of them. e.g. "quite well in le nouveau regime here",

  • Out of the box, does your programming language support Chemical Formulas & Chemical Reactions? Making Videos from Images & Videos? Integrals? Real Numbers? Graph Trees? Leap Seconds? Bio Sequences? Flight Data? Vector Displacement Plots? Lighting? Machine Learning? Tracking Robots? Notebooks? Creating, Deploying and Grading Quizzes? Analysis of Email Threads? Access to 2,249 User-Defined Functions? NFTs?

    Yes, the programming languages I use support all that out of the box, apart from NFTs because I only use serious programming languages.

    • Sure these days every major language has every possible toolkit library. But making these all play nice with each other and keeping the hacks you need to glue them up to date as libraries deprecate or use incompatible data representations or require adjustments for multiprocessing or gpu can become a full time effort. So out-of-the-box becomes attractive.

      I've always thought of wolfram as more of an IDE for logic and analysis than a programming language just as say Igor pro and Sigma and R and. Matlab are i

      • When I was younger I avoided becoming an expert in it because I thought it would never last and didn't want to commit to trusting things I didn't right myself and might become unsupported . But it turned out I was wrong and I kinda with I had used it more .

        You would have to reimplement stuff due to changes in the language. Many of my old notebooks do not run anymore (even after "migration" by the newer versions) and I would need to change the implementation somewhat to account for language changes. Sometimes the changes are actually simplifications, things I had to do in the past (specifically load a library that no longer exists to get a function that is now standard) but even then the new form is not quite like the old one.

        I use it because it is the fastest

      • I concur with what you are saying.

        I am going through an exercise of getting a good QR matrix decomposition going in Java. You think that there would be comprehensive linear algebra libraries with C and Java source code by now, but there is an element of (excuse the pun) "some assembly required."

        What appears to be a starting point for a number of Java linear algebra libraries is NIST's Jama package, but this gives a different numerical output than Matlab's built-in QR decomposition. For a rectangular

        • What appears to be a starting point for a number of Java linear algebra libraries is NIST's Jama package, but this gives a different numerical output than Matlab's built-in QR decomposition. For a rectangular matrix with columns greater than or equal to the number of rows, the Jama algorithm gives a sign difference in the matrix factors from what Matlab gives.

          QR factorisation isn't unique. If M = QR, then you can complicate it as, M = Q D D^-1 R, assuming D is invertible.

          If D is diagonal, and has entries o

          • That is what I am seeing. The signs of the last column of Q are flipped as are the last row of R, an effect that cancels out when recovering matrix A from the product Q R.

            That gratuitous sign flip results from applying (in this algorithm) a Householder reflection to a column that does not require any of its rows to be zeroed. I suppose one could verify that all this unneeded, degenerate reflection does is flip the signs in those places (what is it doing? reflecting across a zero-length vector?), but t

    • by fermion ( 181285 )
      Math is hard. And NFT will find it place. Like security, any random person who knows PHP can say they wrote a math library. But is it built for accuracy. Are the errors known. It is defensible.

      I recall when I started using excel for analysis, my professor was quite unhappy because I did not justify or validate the result. It was just magic. And believe we wrote some software back them that was lead to spurious results. Even when we used the proper libraries, like IMSL.

      Wolfram writes scientific software

  • .. but it has failed to change the world in terms of market dominance, where I clearly see Matlab, Pyhton taking the big chunk.

    So if you define "smartest" in sense of, if the Language is it even smart engough (marketed/designed) to gain market dominance?

    The answer is: "No:", it's as dumb as the rest is shit.

    But nevertheless Mathematic is a great Application with a cool language for a specific domain.

  • by fleeped ( 1945926 ) on Sunday December 19, 2021 @10:47AM (#62096985)
    Anything to stay relevant and "hip". Way to go Stevie boy, shows what you're made of!
  • by gweihir ( 88907 ) on Sunday December 19, 2021 @10:53AM (#62096997)

    All this stuff belong into libraries. Otherwise you overload the syntax and semantics of the language and that is a very bad idea.

    • In the olden times of 640k computers the size of the code mattered. These days memory and caches have made it so we work with data sizes and data fluxes that make the size of tfe code irrelevant . Unused code will be pushed to virtual memory . Sure for lean production systems you could get bye with a gigabyte less memory but a gigabyte stick is irrelevant in cost for anything that uses a user interface. It costs less than an hour of a scientists total salary compensation. To bloated code is not somethin

      • by gweihir ( 88907 )

        Read my statement again. I am not talking about memory footprint.

      • by ceoyoyo ( 59147 ) on Sunday December 19, 2021 @11:37AM (#62097095)

        Ah, we found the guy who develops the 10 GB to do apps and 500 MB web pages.

        Next time you're downloading that multi-gigabyte patch remember, it's this attitude you have to thank.

      • That's not really true for performance intensive apps. On die cache sizes are still only a few MB and main men memory lookups cost a hundred or so clock cycles.
      • by Larsen E Whipsnade ( 4686581 ) on Sunday December 19, 2021 @12:26PM (#62097175)
        Bloat means complexity, which is why we can't have secure and reliable software.
        • by gweihir ( 88907 )

          Bloat means complexity, which is why we can't have secure and reliable software.

          Pretty much.

      • In the olden times of 640k computers the size of the code mattered.

        640K? I can remember 16K was standard and 64K was considered a luxury. You actually had to think about design and how to minimize lines of code.

        • Hell, my first computer had but a couple of hundred BYTEs of RAM and a sub-1MHz clock speed. Kid today! (sighs). :-)

        • Actually you hadn't.

          At that time no one had problems in his imagination that needed 100ds of kilobytes or megabytes or even gigabytes.

          The problems we solve grew with the machines we have available.

          I programmed a loton Apple ]['s etc. The main problem never was lack of memory but the odd layout of the memory with a screen buffer for text somewhere in the middle and 2 buffers for graphics somewhere else. Ofc. Basic and Pascal abstracted that away.

          This stupid idea of "people had to take care of memory usage" i

          • by ls671 ( 1122017 )

            Actually, there was no limit to the size of your code in pascal on a 640KB memory computer. You just couldn't load it all at once in memory. You would load part of it, use it, then load another part of the code into memory use it, etc. etc.

            In Borlan turbo-pascal, it was called memory overlays. With it, you could write programs that would have used tens of MB of memory if it would have been loaded all at once into memory.

            • UCSD Pascal did the same.
              Funnily there even was a few MB hard disk for Apple ]['s once.
              No idea if the UCSD runtime system could cope with one, but I guess it would.

              Floppies unfortunately topped out around 140kB.

          • A lot depended on what problem you were trying to solve. Pattern recognition, solving aerodynamic / aircraft performance problems, benefited from careful design. Not everyone was writing Basic Snake games.
    • by crunchygranola ( 1954152 ) on Sunday December 19, 2021 @11:48AM (#62097109)

      All this stuff belong into libraries. Otherwise you overload the syntax and semantics of the language and that is a very bad idea.

      And all this stuff is in libraries (even if automatically loaded). The core language syntax of the Wolfram Lisp-like language has been stable for decades now. As with Python or Spark (or Java for that matter) there are libraries of functions that get invoked to perform operations. We used to have to load a lot of Mathematica libraries explicitly, but mostly (thanks to more capable hardware) we only need to do that for the more specialized or advanced operations (most ML for example).

      TFA is really off-base (or at least its billing, I didn't read) in that Mathematica/Wolfram is a computational system (Mathematica) written in a language (wolfram) but they are not separable in anyway, they are a single product. So it can't be compared to "languages" directly as it is apples and pears.

    • Depends. One could argue that Matlab and its various open source clones and lookalikes such as octave and scilab are also bloated and overloaded because you can do anything from integer arithmetic to complex-valued multidimensional numerical quadrature and symbolic manipulation with syntax that's almost, if not exactly, identical.

      But then again, a lot of the history of formal mathematics has been about taking "abuse of notation" and turning it into new theorems and ways of thinking about the structure of nu

  • Why focus on that? Many languages have modules for these things. How the language is packaged is a silly focus.

  • by Anonymous Coward

    Yeah, I remember the hype around that book. I'm sure we all thought humanity was on the cusp of dominating the universe.

    Let's take a look around, shall we?

  • by QuietLagoon ( 813062 ) on Sunday December 19, 2021 @11:15AM (#62097047)
    If a programming does a lot of things, very few of which I actually need, I would not say that is "smart" I would say it is bloated.
  • My language of choice is happily optimized for the industrial control domain it works in. And I see no reason why end user applications such as a crane designed to lift 100 tons needs to deploy quizzes or analyze email chains etc.

    • by splutty ( 43475 )

      This language is happily optimized for the domain it's for :) Namely mathematics.

      So you're 100% correct!

  • It's not a programming language, it's a client for a third party math service.

    • by ffkom ( 3519199 )
      To be fair, Mathematica runs well offline, even on a Raspberry Pi 4. Of course you then do not get functionality like "get me the current trade price of IBM on the New York stock exchange", but that is to be expected.

      But I too have an issue calling "Mathematica" a programming language. In my view, it is a huge math application that happens to be programmable. It is not the right tool for most programming tasks that are not mostly about scientific/math stuff. And it is way to expensive to tell people "oh w
      • Perhaps you want to check what you earn per month and what a one month license of "insert your software here" costs.

  • by BobC ( 101861 ) on Sunday December 19, 2021 @11:42AM (#62097103)

    While I do appreciate and use Wolfram Alpha, I'm also aware of its limitations. For me, the greatest Alpha limitation is that I have to do things "The Alpha Way".

    In Python, I'm free to bash my code together with libraries, to use them in creative ways that present some powerful advantages. I've done some horribly wonderful mashups of, say, Pandas and PyTorch with real-time signal processing and control loops.

    Both Python and Alpha have "cognitive load" and "technical debt" associated with them, but it's presented very differently. In Python I have access to several linear algebra packages, and while learning each can be a pain, being able to switch between them lets me get my job done better. In Alpha, unless you dig deep into the underlying system, your math will be solved using whatever package Alpha picks for you, which may be a great choice, but it is still done behind the scenes.

    Alpha also has trouble working outside the Alpha environment, say, to construct and deploy a robotic control system. Mathematica has code export capabilities, but there are gaps moving from Alpha to Mathematica to C++, and the process is rather frustrating. Python lets me go from MicroPython all the way up to supercomputers, though not seamlessly, there is a delightful level of commonality.

    Which, for me, means I use Alpha more like a really big and powerful calculator, where I just want a useful answer more than I care about the code used to generate it. Alpha is also a wonderful playground to use to gain mathematical and data science proficiency in an interactive and intuitive way. But that's high-level proficiency, not something you can directly ship in a product. Alpha is more amenable to basic research when you don't know what the solution path looks like. If you do have a clue, then Python (especially in Jupyter Notebooks) can get you there in multiple ways.

    • by dublin ( 31215 )

      *Every* time I have tried to get Wolfram Alpha to answer or analyze in a non-trivial way, I have failed. It may be possible to figure out how to structure a query in such a way that it can actually provide the answer I'm looking for, but it hasn't happened yet, and I'm pretty good at unambiguously defining a problem in English. That's a pretty bad failure rate for a service that's supposed to be able to answer natural language queries.

      I really can't figure out who Alpha is for - the Mathematica people don

      • It's for people with lapsed Mathematica licenses, imo!
      • by BobC ( 101861 )

        I was delighted, charmed actually, by the Alpha port created for and shipped with the Raspberry Pi. It is surprisingly capable and performant. I want every middle schooler to have one of their own, as a STEM Gateway Device that would encourage them stretch themselves through high school.

        Python, too, certainly. But the whole on the RasPi is greater than the sum of its parts.

      • My latest query: triangular number 42. Boom, instant response. I love alpha for that kind of stuff.
  • There's no 'Programming language to rule them all!' It's not a religious movement. There's languages that are better at doing specific patterns than others, and each should be selected when meant to implement solutions that model those patterns. Shouldn't fall into that trap where we are looking for the only real solution in search of many problems. It's perfectly reasonable to assume that Wolfram is a wonderful solution to someone who happens to find it works for them 'out of the box' to do whatever it i
    • Is has been a religious movement ever since someone wrote a payroll program in FORTRAN instead of COBOL.

    • by dublin ( 31215 )

      Agreed. And I'd be far more likely to consider Alpha/Wolfram if it (like nearly all other modern data platforms except SAS and Matlab), was open source and allowed me to deploy it in the field on whatever hardware and OS I choose, with no cloud dependencies.

      There are some interesting ideas in the Wolfram language, but there's a non-trivial learning curve, and at the end of the day it's still a proprietary environment. Sometimes that makes sense, like Oracle can sometimes make sense, but in general, the he

  • by rbrander ( 73222 ) on Sunday December 19, 2021 @01:40PM (#62097381) Homepage

    For over a decade, I was captured by FORTH, for reasons comparable to Paul Graham's article about LISP in "Hackers and Painters". Both are very simple, and low-level, but can swiftly build up large functions quickly, in amazingly terse code; and Graham identifies the frightening power of self-modifying code (also easy in FORTH) as the secret superpower.

    The discussion didn't involve *any* built-in functions, just the ability to create complex logics.

    But in my career, darn near nothing was actually best-solved by FORTH; I was rarely striking out to invent whole new computing concepts, handing people their own development tools (Graham's riches started with the first web application that let you design your own online "store", and 25% of the code was self-modifying). Mostly I was solving already-solved engineering problems, just with a computer, automated.

    A big pile of pre-written tools, and basic programmability, was the need 100x as often - for me, and I think most programmers outside of university postgrad-level. For us, Wolfram would be better than LISP.

    Alas, the competitor there is "Excel":
    1) Two kinds of "basic programmability" - the functional programming that is a spreadsheet, the closest to FORTH/LISP-like programming most of us will do. Functional programming is awesome if you use it fully. And, where you just have to go procedural, there's VBA. People hate VBA, but 99% of procedural needs can be met with it.

    2) Also the giant toolbox, not just of math functions, but Excel spreadsheets can also embed photos and videos (and control them with VBA), can do all kinds of network communications, talk to commonly-used databases. (Excel is a "good enough" database server client that half the little-database needs don't need Access, not really.)

    If you can meet most of your number-grinding needs with the software already installed - and installed by everybody in the office, to whom you can send your spreadsheet file, assured they can open it and manipulate it - it takes a pretty major lack in Excel for you to jump to a whole new proprietary environment.

    All techies have some "Tim the Toolman" in us, we want the Binford 9000 Microwave that can cook a bull elephant, we want the M1 tank - just in case. But few of us actually need them.

    • by phantomfive ( 622387 ) on Sunday December 19, 2021 @04:04PM (#62097843) Journal

      Languages like FORTH and LISP are still worth learning, because they teach you a new way of thinking about programming, which you will carry over to your work in other languages.

      In most cases when we choose a language, it's not because of the language, it's because of the libraries.

    • For over a decade, I was captured by FORTH, for reasons comparable to Paul Graham's article about LISP in "Hackers and Painters". Both are very simple, and low-level, but can swiftly build up large functions quickly, in amazingly terse code; and Graham identifies the frightening power of self-modifying code (also easy in FORTH) as the secret superpower.

      This was always my favourite way of trolling smug lisp weenies. Whenever they brought up the self modifying code thing I'd frown deeply like I was thinking b

  • I'm sure Wolfram thinks Wolfram is the smartest language.
  • The real question is how does it perform. Because coming with a bunch of things out of box is not as important as pure raw performance. Otherwise you can just implement the same Primitives with the more performance language and win in the end.

    How smart is that?

  • So no need to install some nutty thing from a nutjob who thinks he's god.

  • If you're the smartest in a room, you're in the wrong room.

  • I'm curious about the number of programming languages that don't support real numbers.
    • There are no programming languages that support real numbers. All actual number representations (in hardware, or written down) are in effect rational numbers, that approximate real numbers. Floating point numbers have an integer multiplier, that has finite precision. It is physically impossible to represent a real number such as Pi or sqrt(2), because that would require an infinite number of digits.

      Having said that, you can do maths with symbols that stand for real numbers, without actually representing the

  • by jd ( 1658 )

    We don't need the C++ committee to add all of those to the next standard!

    Seriously, though, most of that should be supported by libraries not the language itself. Languages should be lightweight but flexible so that new libraries feel more like an extension to the language. Heavy languages tend to be problematic and murder on optimisers.

  • Maple is betterâ¦
  • It's a niche language who's real difference is that it excels at symbolic math (it's original purpose if memory serves).

    Everything else that it does can be done as well or better by freely available tools.

A good supervisor can step on your toes without messing up your shine.

Working...