Wolfram Language and Mathematica Free on Every Raspberry Pi
wolfram.com
wolfram.com
Both are commercial software, have a low barrier to entry, are powerful enough to run the software for a nuclear power plant, have enough footguns to make this a terrible idea, and are so overused that it might be happening anyway.
But I do not think we will get rid of it any time soon.
I say it's good for high level experimentation because basically every function/transform/operation/solver you could ever need is present in the standard library [1] and stuff "just works". IMHO it's not really something you'd want in production but it lets you get an MVP for a given problem/solution working faster than any other tool I've used and all while rarely needing to even consider a 3rd party library. You can then focus on just mapping that MVP to whatever language/library/ecosystem you are actually working in.
But if I have an actually nasty equation to solve, like a system of differential equations with erf functions or something, I do actually go to wolfram alpha for help. It happens more often than I'd like, it's especially nice that no matter how nasty the equations you can still use units.
https://danuker.go.ro/programming-languages.html#non-math-ma...
So, it can express an average Rosetta Code non-math task in ~180 bytes, compared to Python, ~270, or Java, ~420. I guess this is because of its vast libraries of "batteries included".
Where it all falls apart is sharing. Nobody can run my creation, and even Mathematica Home Cloud is $194/year, which I find pretty steep, being used to free & libre software.
Monetizing is a whole different story, with commercial licenses starting at $1620/yr, which I could only justify if I already had a team wanting to learn the language and a large-ish profitable business service whose source code I wanted to convert to a locked-in solution for some reason.
They also run regular sales on all their products. Pi day is coming up.
> ImageInstanceQ[x,"caprine animal",RecognitionThreshold->i/100]
I think it's less misleading to say it has a generic image recognition function that supports goats, among many other recognition targets.
More importantly there are lots of possibilities for disaster caused by the lack of typing, and complex Mathematica code quickly becomes impenetrable. Oh and version control systems are all but useless for the main ".nb" file format. Again, just like Excel.
I mean footguns in "Multiplication with multi-dimensional arrays"? That's a problem with Mathematica as opposed to what? Implementing it yourself? Using a third party library for that (that you have to also find and assess it's doing the right thing - which apparently numpy also doesn't as you say). Another specialized tool (and wouldn't that just have it's own footguns)?
If you just said "it has its set of caveats that you need to be careful about" that would be understandable.
But your wording/tone implies that Mathematica is somehow worse, and using it is (your words) "a terrible idea". So, what are those wonderful alternatives that don't have the same and much worse issues?
Neither of you have to be wrong, but insisting that Wolfram isn't liable for the situation isn't right. They built the moat, now they have to deal with people falling in on both sides.
You try it once, realize it's doing things element-wise, and then go lookup the proper product symbol (@ in numpy).
I don't know the motivation of the decision, but "ElementwiseProduct" is harder to type, and still has a lot of use cases.
myfunc[x_] := {2*x, 3*x};
myfnuc[5][[1]]
Without the 'fnuc' typo, this would create the list {10, 15} and take the first part, giving 10. With the typo, it returns 5 without warning. Why? myfnuc[5] is now treated symbolically, and the first part/argument is 5.A similar problem comes from functions like Integrate, which become symbolic when Mathematica doesn‘t find a solution. So instead of a number, you might randomly get a symbolic expression. If you were trying to do a complicated computation with the result, this might now produce a symbolic result which is too big to fit your memory, filling up all RAM before the Mathematica kernel crashes.
If you want examples of a walled garden, look at MacOS/iOS, Android (kind of), and arguably even the Linuxes (question of practicality).
It seems to be as easy as installing a driver and then... installing the apps in the distro. That makes it even easier than Wine IMO.
To me, it seemed perfectly reasonable to call it the Windows equivalent to Wine but :shrug:
The only thing walled off is the source code but nobody is referring to that.
I think people are associating walled garden with closed source. This is not a consistent association because there is one operating system that is, in actuality, a true walled garden where the term fits:
iOS is a walled garden.
The characterization of the term here is entirely different from windows or Linux.
Thus the parent is also correct about his point. If you use a Linux distro exclusively with a package manager. It is effectively as if you are in a walled garden. It is just like using the app store on macos exclusively.
[1] https://kolbi.cz/blog/2017/10/25/setuserfta-userchoice-hash-...
So putting protections in place to try and prevent that is ultimately a boon for most users.
By contrast, on Windows you can install, run, upgrade, and downgrade whatever you want whenever you want however you want without sacrificing practicality.
A regular user wouldn’t even understand the things you just said let alone how to do them.
Disabling telemetry also seems like a wildly different problem that I’m not even sure regular users would care about.
I always giggle when someone says "regular" users use a GNU/Linux-Distro ;)
lxd init # choose defaults except use "dir" for disk
lxc launch ubuntu:22.04 my-ubuntu # or any other distro
lxc exec my-ubuntu -- bash
Clean, lightweight, full virtual machine every time that's much less heavy than Virtualbox. You can mess around in there as much as you want without creating the quagmire you speak of on your main installation, because it's a full, completely clean VM isolated away. Also lots of distros to choose from. Personally I find Windows to be super unstable once you've installed/uninstalled a bunch of stuff. Obviously, there's also Docker but sometimes you want a full VM to get a bunch of stuff working together.Speaking of insane mind acrobatics, it’s like you’re arguing a parody of windows you read on slashdot twenty years ago and have never encountered it at all.
Linux is far less of a walled garden in principle. And it seems a lot of people are assuming "walled garden" is a statement from developers perspective (no cost license or difficulty in developing for platform).
I think what you're saying though is that your choices and options are far easier and wider with windows as a regular user, than with Linux, and if so I see your point. I've been working with Unix at work happily for 25 years now, day in and out in the cli, yet I've always bounced trying Linux on desktop. It feels like a limited, difficult, thorny garden for most regular windows users :)
A walled garden isn't just about developer lock-in driven by financial incentives. As far as the end-user goes, if the choices provided outside of the garden are wholly impractical it might as well be walled in practice even if it's not in theory/principle.
Let's imagine for a minute that using Open Source or FOSS also implies feeding back into the ecosystem. "Normal users" should be feeding back into the ecosystem somehow which then implies some form of understanding of that ecosystem. It can be bug reports (which requires understanding enough to post a coherent bug report), bug fixes (which requires knowing a little more), project leadership (which requires a different skillset and perhaps technical knowledge), monetary contributions (which makes the software less "free")
My argument is, "Open Source doesn't get you past tanstaafl." The work to use it still needs to be done by someone. If you want to be a user of it and the thing you want to do isn't on the already-paved/easy-path then you need to get someone to pave that path for you or you need to understand how to do it yourself. That's the nature of the beast and has nothing to do with being a "walled garden."
Calling the inherent difficulty of things a “walled garden” removes any meaning from the term. I’m bad at picking up human languages, I don’t know lots of programming languages, I don’t know anything about overland navigation, I’m bad on MacOS and I’ve never used an Amiga, so is most of the world a walled garden?
Maybe we have been working with different packages or distros?
make && make install?
For all but the most trivial of software this step is likely to fail, and often fail big and cryptically. Then you get to figure out what packages to install from your distro's repos to fix all these errors. It's even more fun when that dependency was never packaged for your distro, because then you get to install that dependency from source and repeat this entire process.
Oh, and I hope there's never a security update for any software you install from outside of the repos, because you'll never remember to update it until you need a newer version for some other reason.
In my experience, the vast majority of the time the installation instructions list the necessary packages for at least Debian-style and Redhat-style distros. Build instructions for Windows tend to be much worse. though if the software supports Windows at all, you are slightly more likely to have an installer or at least precompiled binary because build tooling availability and build experience is so much worse on Windows.
Kind of like old zen parable about how to control cows, give them a wide comfortable pasture and then they behave, and never question the fence in the distance.
That’s not my experience with using third party repos and building third-party software from source on Linux. Heck, much of the time that I use Linux is fit software where I need to do the latter and it isn’t practical on Windows.
Your argument would be equivalent to me claiming that the closed source nature of the average Windows software makes the software itself a walled garden. Except in the case of a Linux distro you are entirely free to modify it in any way you want.
The fact that more things work out of the box without much effort and with a GUI on Windows does not make Linux distros walled gardens.
And pretending that Windows allows you to install and uninstall things at will without any side effects is just naive and makes me wonder if you've ever actually used Windows that much. I've had more problems with broken windows installations due to incompatibilities between different versions of Microsoft development tools and frameworks than I have ever had dealing with issues with building and installing software on Linux distributions.
Windows and Linux are just forests or farms, or however you want to expand the analogy. That somebody hasn’t cut a path for you doesn’t make them a walled garden. Different paths have been cut for each operating system, and people familiar with the particular paths on those systems will have an easier time navigating the terrain. But nobody has constructed a wall. A forest is “functionally” walled off only to the extent to which the person doesn’t know how to navigate. This is not a property of the system but the user.
Windows is also not a walled garden but to a lesser degree than Linux. It is far harder to get a "standard" build environment up for windows simply because Microsoft refuses to distribute the UCRT (or VSRedist) build libraries in a form that doesn't require manually digging through installer internals or setting up Visual Studio. It can be done for free & legally but it's a significant pain in the ass. Regardless of how annoying it is, there is no financial/legal barrier to building software for windows and you can trivially install 3rd party software or even execute it without installing.
Android I somewhat agree is a walled garden in practice (certain features are limited to gApp/play store apps only and setting up 3rd party play stores or apps is annoying) but by the simple fact that you can build apps for android or install them without any financial or legal barriers, it can't realistically be called a walled garden (maybe a hedge maze might be more accurate).
MacOS isn't entirely a walled garden despite getting pretty close (kinda like a worse dev/install experience from windows + *nix).
iOS however is 100% a walled garden.
Point being that out of every OS you mentioned, exactly 1 of them qualifies and the rest do not (despite having anti-user/anti-competitive practices)
Ooof. HN never ceases to amaze me.
My understanding is that Mathematica is truly free on Pi; Raspberry doesn’t pay Wolfram and it does not increase end user price.
I would consider this a great way to promote genuine Raspberry Pi over the clones but as long as Raspberry Pi demand exceeds the offer anyway this doesn't make much sense.
They had a tiny fraction of an RPi's compute. Maybe because interesting mathematics is more the product of interested mathematicians rather than hardware.
With Mathematica around for 35 years, there's evidence that it has a sustainable model with regard to popularity.
Doing it with Pi 4s would be interesting, but if I had to set up a sub-EUR 1000 cluster I'd go and grab 2-3 Celeron N5105 mini PCs, which would _in total_ have less than 90W consumption (although physically powering them would be a hassle - I was able to power all the Pi2s from a single Anker charger, which was great).
https://ark.intel.com/content/www/us/en/ark/products/231806/...
https://doc.sagemath.org/html/en/reference/interfaces/sage/i...
If you're more interested in learning programming, the underlying python libraries like sympy are of more value for algebraic solving, plus numpy and matplotlib for evaluating and visualizing.
Raspberry Pi Foundation gets another high profile and very desirable piece of educational software to include in their OS so it's a big win for them (and some of their users).
Wolfram gets a bunch of potential paying users when the children/college students/hobbyists get into the workforce and decide to use Mathematica in a commercial setting or pay for licenses of their own to use on their own more powerful workstations at home.
Looks like a win-win for everyone. I'm not really understanding all the negativity here. If it's because Mathematica is closed source, the Raspberry Pi OS image already includes closed source software like Minecraft education edition.
E.g. say you make an educational video that contains a portion of using Mathematica on RPI, and you could get ads income, is that indirect or direct commercial use?
What if you use it to compute dimensions of some woodworking art piece that you sell later?
What if you make a scientific or mathematical discovery thanks to it that you later use in some way to make money?
The first boundary is "what Wolfram is willing to enforce".
The second boundary is "what a judge is willing to enforce".
Likely the 0th boundary will kick in before the other two. If too many people misuse this, Wolfram may decide it was a bad idea and end the program.
In practical terms, an overwhelming percentage of revenue comes from large institutions. Who have no incentive to steal the software.
Permitted Uses and Installations:
Subject to the terms of this Agreement and Your acceptance thereof, WRI grants You a non-exclusive license to use the Product solely for personal or educational purposes on a Model A or Model B Raspberry Pi computer. You are also authorized to:
- maintain one archival copy of the Software on storage media; and
- author and distribute Computable Document Format™ (CDF) files consistent with any associated licensing terms.
Prohibited Uses:
All uses of the Software and other elements of the Product not specifically stated in the Permitted Uses and Installations section of this Agreement or otherwise set forth in alternative or supplemental license agreements or terms of use are prohibited, including, without limitation:
- directly or indirectly using the Product for commercial purposes;
- decompiling, disassembling or reverse engineering the Software;
- modifying the Software in any manner, except those portions written in the Wolfram Language and included as examples;
- distributing, publishing, transferring, sublicensing, lending, leasing, renting or otherwise making available the Product or any portion of the Software, including collections of data, except as permitted at https://www.wolfram.com/components for distributing Wolfram Language code;
- copying or allowing copying of the Product or any elements of the Product, except as permitted for the maintenance of an archival copy of the Software as allowed by the Permitted Uses and Installations section of this Agreement;
- allowing access to the Product by any user other than Licensee;
- removing any copyright, trademark or other proprietary notices from the Product;
- installing separate components of each Controlling Process or Computation Process on separate computers, with the exception that the front end of a Controlling Process can be on a separate computer from the associated kernel;
- using the Software for any illegal purpose or to create malicious programs, including but not limited to creating computer viruses and malware or denying computer bandwidth to WRI and its affiliates and users; and
- using a password, activation key or other means of accessing the Software other than as specifically authorized by WRI.
https://www.wolfram.com/legal/agreements/wolfram-mathematica...
Almost all the rest is about slightly different topics (I'm specifically wondering about using it for its mathematical purpose, not about all those other things that don't give math results like modifying, decompiling, distributing, archival copies, ...)
If it still ships with 64-bit Raspbian it might be worth another try, but I would not be at all surprised if it's somehow tied to the Pi.
Perhaps I’m taking the “News” part of this site’s name too literally.
I wonder if anyone knows when the 64-bit version is coming? From Wolfram's point of view, keeping the binaries restricted to armhf might perhaps be taking the place of more onerous copy-protection or licensing features.
Selecting previously unselected package wolfram-engine:armhf.
Preparing to unpack .../80-wolfram-engine_13.1.0+20220824413_armhf.deb ...
wolfram-eula license has already been accepted
Is there a way through the Activation Key, Activate Online prompt? I think I tried what was possible and never got through.Because he knows full well
Today's innocent young faces
Are tomorrow's clientele
did it improve, btw ?
https://blog.agchapman.com/using-qemu-to-emulate-a-raspberry...