Live data from Hacker News

Launching Version 13.1 of Wolfram Language and Mathematica

writings.stephenwolfram.com

181–190 of 191 posts

Re: Launching Version 13.1 of Wolfram Language and Mathematica

#181
post #92

Earlier quoted context omitted.

It's free for personal use on Raspberry Pis btw, and also there's some kind of free tier for Wolfram Cloud.

Do you have a link for the free Raspberry api use?

Just run “sudo apt install wolfram-engine” on Raspbian.

Re: Launching Version 13.1 of Wolfram Language and Mathematica

#182
post #178

Earlier quoted context omitted.

Wolfram Language is essentially Lisp with M-expressions instead of S-expressions, coupled with a clone of MIT’s MACSYMA symbolic mathematics system built around term rewriting. Mathematica is the Wolfram Language plus a user interface similar to the Symbolics Dynamic Listener that acted as your command line front end. Jupyter Notebooks are quite similar since the idea of a scientist’s or engineer’s notebook where con…

Though Lisp does not use the kind of a rule-based term rewrite system for computation, like Mathematica.

That depends entirely on your definitions when you’re dealing with a listener, especially a sophisticated one like the Symbolics Dynamic Listener or the CLIM Listener. If you want the forms entered to go through term rewriting before or as part or evaluation, that’s entirely feasible.

Re: Launching Version 13.1 of Wolfram Language and Mathematica

#183
post #178

Earlier quoted context omitted.

Though Lisp does not use the kind of a rule-based term rewrite system for computation, like Mathematica.

That depends entirely on your definitions when you’re dealing with a listener, especially a sophisticated one like the Symbolics Dynamic Listener or the CLIM Listener. If you want the forms entered to go through term rewriting before or as part or evaluation, that’s entirely feasible.

One can develop rule-based term rewriting systems in Lisp (and integrate them) and there are some, but itself is not defined or implemented as such.

That can be seen by the clumsy implementation of lexical scope (renaming vars, etc.) in Mathematica or the limited compilation of the Mathematica language.

Re: Launching Version 13.1 of Wolfram Language and Mathematica

#184
post #90
post #55

Earlier quoted context omitted.

Just look at Python indeed. As you say it's a much worse language than many others that were equally available to anyone. And yet somehow it's at the the core of the last 15 years of data science, machine learning and whatnot. If Mathematica had been open-sourced twenty years ago it wouldn't have taken the place of Python. It probably would be even more niche today - and worse.

> much worse language than many others that were equally available to anyone I've been there during the Python take over and world and it's not my recollection of how it went. Which are those superior languages that you are talking about? An important property of Python is that while it may not excel at many things, it's good or decent at everything. Unlike specialized languages like R for example which sucks at ever…

I think that's a very important point: if you invest time in writing software to solve domain-specific problems, it is a lot better if you can do that in languages that have a hope of making it out of the lab and into software you can run as part of a processing chain or in applications.

A library written in a language usable for implementing whole applications is far more useful than, say, a Matlab project, which you then have to translate into some language before you can actually use it in software.

Python is indeed such a language.

(That being said, Python is a poor language choice from a software engineering point of view because it doesn't have a decent path-of-least-resistance to properly distributing software without burdening the user. I do a fair bit of embedded programming, and it has lead me to the conclusion that Python is a terrible tooling language. I've also had colleagues struggle with what happens when data scientists who are more scientist than software engineer write stuff in Python. It is messy, time consuming and frustrating to actually use the resulting software.

But from a language perspective, yes, Python is a better solution than languages that are narrowly scoped)

Re: Launching Version 13.1 of Wolfram Language and Mathematica

#185

Can anyone offer a concrete summary of what Wolfram Language and Mathematica are, from a technical perspective? The marketing material alone makes it difficult for me to situate them in the landscape of languages. - Is "Wolfram Language" the language used in Mathematica notebooks? Or is Mathematica a separate language, implemented using Wolfram Language? What does Mathematica add to Wolfram Language? - I assume the M…

Ditto, I'd love to hear more of this talk. It feels like Wolfram/Mathematica has its own terminology, but I'd love to hear it interpreted in more mainstream programming language terms. The symbolic evaluation is pretty novel. I assume it's not _just_ an AST. What do those structures look like? What is the scoping? It feels like the emphasis is on global variables everywhere, but is it more subtle than that? Are the d…

Scoping: Symbols belong to "contexts" (namespaces). You get lexical scope using With and Module, and dynamic scope with Block. The variables in Module are replaced with a uniquely named temporary symbol (removed when all references go away), so they can be returned from the Module expression and acted upon (though they'll appear ugly).

Data structures: you have special syntax for lists and "associations" (dictionaries/maps/hashtables). Those are immutable objects, but in at least some cases the implementation has an optimization where it'll directly mutate the object if there is only one reference to it. There are other data structures with no special syntax in the language, for example numeric and sparse arrays. A number of mutable data structures have also been recently introduced: https://reference.wolfram.com/language/guide/DataStructures....

One thing that you might expect to be a special data structure but actually isn't are "pure functions" (anonymous functions). There are actually just the unevaluated expression, so you could programmatically inspect the body if you so wanted to.

Deferred values: You can apply the HoldFirst/HoldRest/HoldAll/HoldAllComplete attributes so during evaluation they receive the corresponding arguments unevaluated. You might think this would make metaprogramming be easy, but it's actually tricky because of the "infinite evaluation" (it keeps evaluating until a fixed point is reached) of the language.

Derivatives: It's a term rewriting language, so you just provide the rewrite rules like you would with any other user function. f /: D[f[x_]] := x^2 will define the derivative of f(x) to be x^2, and associates that definition with f so that rule won't have to be checked for all usages of D (this also saves you from having to unprotect D to add the rule).

Re: Launching Version 13.1 of Wolfram Language and Mathematica

#186

Earlier quoted context omitted.

I agree wholeheartedly with this. In fact, if Mathematica were open source, I feel it may even encroach upon machine learning applications. Since finishing up in university, I have sorely missed my free access to a fast and ergonomic symbolic equation solver. Sympy is an unsatisfactory substitute.

Have you tried Maxima as a symbolic equation solver?

Sage/maxima/etc are significantly worse than mathematica at symbolic operations. Check out these benchmarks:

https://www.12000.org/my_notes/CAS_integration_tests/reports...

Re: Launching Version 13.1 of Wolfram Language and Mathematica

#187
post #179

Earlier quoted context omitted.

That's kind of the problem: $188/y is almost twice as much as it costs to distribute an iOS app. It's two times the cost of a hobby dyno from Heroku for a year. What can you do with a hobby license from Wolfram? Use the software. You can't really distribute it, put it in production, or anything else besides serve your own compute needs. They forbid you from using the Home versions for any non-personal use: you can't…

Who does pay for this license? Someone who wants to use Mathematica, I guess. You can get a 15-day trial, by the way. Why would anyone pay $100+ for a couple of games? Or for Photoshop? Or for a pair ski goggles? Or for a bottle of wine? Or for a ticket to a show? Or for a radial saw?

The things you listed either are what that type of thing costs, or have free alternatives that you can develop interest and skill with. Adobe doesn't tell you what you can do with the pictures you make or edit.

The difference with Mathematica is that if you don't know you like and need it already, there are numerous free and less expensive tools that do a great job, and they (usually) don't have restrictions on what you can do with them. I can make a Python notebook and start a business with it. I can use my hobby Julia code for academic research.

Re: Launching Version 13.1 of Wolfram Language and Mathematica

#188
post #6

Rather than just bashing Stephen's personality and rehashing Cosma Shalizi's driveby on NKOS, can we try and focus on the technical accomplishment that Mathematica represents? It really is an astounding system. If you enjoy functional programming, the language is super expressive and productive. The integrated libraries are fantastic -- especially if you want to chain together different knowledge domains through a co…

> I love Wolfram stuff. I'm with you 100% here, but I'm also 100% with sibling jiggawatts. To me, Mathematica is a computation environment that conveys a Lisp Machine feeling of "the machine and I are working on this problem". You know, that "assembling things live in the sky" Lisp feeling (Yegge's phrase, not mine). The only other computation environment that is right there en par in flexibility and conveyance of th…

>You know, that "assembling things live in the sky" Lisp feeling (Yegge's phrase, not mine).

Got a source on that? It sounds intriguing.

Re: Launching Version 13.1 of Wolfram Language and Mathematica

#189
post #179

Earlier quoted context omitted.

Who does pay for this license? Someone who wants to use Mathematica, I guess. You can get a 15-day trial, by the way. Why would anyone pay $100+ for a couple of games? Or for Photoshop? Or for a pair ski goggles? Or for a bottle of wine? Or for a ticket to a show? Or for a radial saw?

The things you listed either are what that type of thing costs, or have free alternatives that you can develop interest and skill with. Adobe doesn't tell you what you can do with the pictures you make or edit. The difference with Mathematica is that if you don't know you like and need it already, there are numerous free and less expensive tools that do a great job, and they (usually) don't have restrictions on what…

Depending on what you are trying to do saying that Python or Julia are great alternatives to Mathematica is like saying that Java is a great alternative to Python and Julia.

Some people find enough value in Mathematica, Matlab, Tableau, JMP or commercial IDEs, compilers, libraries, etc. to prefer them to the free unrestricted alternatives available.

Some people like iPhones and Macs, some people say that there are numerous less expensive devices that do a great job and don't have restrictions on what you can do with them.

Re: Launching Version 13.1 of Wolfram Language and Mathematica

#190

I think it’s fair to say that the documentation system of Mathematica is the best documentation for any software language anywhere in the world at any time. Not exaggerating one bit. There are not only practical example snippets for every language function but also tutorials and technical deep dives on related topic areas such as signal processing, video analysis, partial differential equations such as the heat equat…

How would you stack Matlab against Mathematica? I’ve always found Matlab’s docs share a lot of the same qualities as your see in Mathematica. Interesting that both are commercial languages.

Matlab is focused on a) Matrix manipulation but builds a lot on top of that such as Signal Processing, differential equations etc. and b) But at the end of the day it is a numeric evaluation language. Whereas in Mathematica everything is an expression and so it does most of its work doing symbolic manipulation until at the end you may or may not choose to evaluate an expression numerically. This allows it to have a whole other capability doing Symbolic Integration and Differentiation of very complicated expressions, Mathematical Logic, Abstract Algebra and IIRC Category Theory and such like. Don’t mean to be a hater but the MATLAB language and default environment feels clunky in comparison. An analogy I use often is that Python, MATLAB and Mathematica are respectively like Linux, Windows and the Mac, aesthetically and functionally. I have used MATLAB as well and their docs are good no question. But the native notebook interface and the “built in everything” environment means you can explore rapidly and run the example code without having to know which other packages you need to buy. So I would put the development experience with Mathematica a couple of notches above that of MATLAB. BUT in the engineering domain especially at Univs MATLAB is king. This is a flaw of Wolfram marketing and pricing not of the underlying product.
Post reply on HN