WolframScript enables Wolfram Language code to be run from any terminal
wolfram.com
wolfram.com
https://news.ycombinator.com/item?id=22625370
Probably too different to merge the submissions.
SymPy has a built-in converter to/from Mathematica (although it can't convert from Mathematica lists yet), so that's helpful
(Here's the project I used it in for interested people https://github.com/joebentley/simba)
This shows some flexibility on their behalf, but it’s moving in the wrong direction (as far as I’m concerned, at least).
Sounds like the Facebook app.
I think people are okay with gigabyte apps now.
$ du -h -d3 pkg/Wolfram/
3.1M pkg/Wolfram/WolframScript/bin
3.1M pkg/Wolfram/WolframScript
5.0K pkg/Wolfram/man/man1
5.5K pkg/Wolfram/man
13K pkg/Wolfram/doc/wolframscript
14K pkg/Wolfram/doc
40K pkg/Wolfram/WolframEngine/12.0/Executables
30M pkg/Wolfram/WolframEngine/12.0/AddOns
1.6G pkg/Wolfram/WolframEngine/12.0/SystemFiles
10K pkg/Wolfram/WolframEngine/12.0/Configuration
1.6G pkg/Wolfram/WolframEngine/12.0
1.6G pkg/Wolfram/WolframEngine
1.6G pkg/Wolfram/I just realized that this number is after ZFS compression. Here is the apparent size,
$ du -h -A -d3 pkg/Wolfram/
5.0M pkg/Wolfram/WolframScript/bin
5.0M pkg/Wolfram/WolframScript
8.5K pkg/Wolfram/man/man1
9.0K pkg/Wolfram/man
16K pkg/Wolfram/doc/wolframscript
16K pkg/Wolfram/doc
30K pkg/Wolfram/WolframEngine/12.0/Executables
46M pkg/Wolfram/WolframEngine/12.0/AddOns
2.9G pkg/Wolfram/WolframEngine/12.0/SystemFiles
2.0K pkg/Wolfram/WolframEngine/12.0/Configuration
3.0G pkg/Wolfram/WolframEngine/12.0
3.0G pkg/Wolfram/WolframEngine
3.0G pkg/Wolfram/
Actually the downloaded file is a little over 1 GB, $ stat -f "%z %N" Downloads/WolframEngine_12.0.0_LINUX.sh
1177035547 Downloads/WolframEngine_12.0.0_LINUX.sh> Apps should be self-contained in their bundles, and may not read or write data outside the designated container area, nor may they download, install, or execute code which introduces or changes features or functionality of the app, including other apps.
It doesn't rule out something like Pythonista (which is great!) that lets you write/run your own code (which doesn't change the app itself).
Wolframscript makes this hard though for the following two reasons: (i) wolframscript requires users to login before any script can be ran; (ii) only 1 wolframscript REPL can be open at a time.
(i) makes it impossible to export wolframscripts to users who don't know what wolframscript is. For example, if I'm using wolframscript as a build tool for a larger Haskell project, and some user downloads my software, they'll first have to login to Wolfram Cloud before the wolframscript is able to run. There's no way I'm going to force people to do that, so it hinders the growth of the language.
(ii) makes it hard to use wolframscript as a complete terminal replacement. People often use multiple terminals at once, at different locations in the file system. Wolframscript only allows once at a time.
Wolfram Language is insanely good. It should be more popular than Python. I think fixing some of these licensing/login issues could help it grow.
That sounds exciting. Can you explain more?
CloudDeploy[
FormFunction[{"a" -> "Number", "b" -> "Number", "c" -> "Number"},
Plot[#a x^2 + #b x + #c, {x, -10, 10}] &],
Permissions -> "Public"]
will create and deploy a publicly accessible web form that asks for 3 coefficients and plots a parabola. How many lines of code / external libraries would you need to do the same thing in python?https://www.wolframcloud.com/obj/e0b275e6-49a2-4901-a806-e36...
As a tiny anecdote, a colleague of mine recently published a paper in quantum computation and computed a representation of some mathematical object, specifically the exact value of an angle which modulates a particular quantum gate. In the paper was this bizarre continued fraction along with arctans and pi’s that no experimental physicist in their right mind would have derived themselves.
“Where in the world did this come from?” I asked, while reviewing the paper.
“Oh, it’s just what Mathematica gives,” he responded. “I don’t even fully understand it. But I do use it as proof that the angle is an irrational number and thus breaks its inclusion in some known finite group.”
You might call out this otherwise accomplished physicist for what appears to be misusing the tool—taking results at face value without understanding them—but I guarantee scientists and engineers are doing this stuff daily, in more consequential places than abstract quantum physics papers.
Wolfram and his team have built something amazing, and built an incredibly successful business, but I hope he uses his business acumen to find a way to contribute to the “greater good” while he continues to enjoy running a company and making money.
With regards to conditioning the result, it should be as such, but no researcher would ever smear their result like that. Research is cutthroat.
mathematica is built by a company that seems to take a lot of pride in quality. they are also clearly incentivized by keeping the company afloat and thus by addressing major issues.
i hear people barking incessantly about open source software in mathematics and science, but i just don't see what would actually be successful. in most people's daily jobs in engineering and even in large science projects, proprietary code is used everywhere. it's the only way to get things done in many cases. in my experience, getting a bug acknowledged, prioritized, and then fixed in open source software is like pulling teeth. what are you going to do with open source mathematics or scientific software where only like a person or two understand the bug? your story could easily have replaced mathematica with sage, and the story wouldn't be changed at all. okay fine, sage is open source. but what's more likely to be successful: (1) you are going to look through the likely millions of lines of code that makes up sage and find what's happening, or (2) you call up wolfram and ask what's going on since you have support for a product that you paid for?
how is open source software supposedly inherently better for math and science research?
(As a funny story, even Wolfram-the-company can’t run SMP, the predecessor of Mathematica. Why? They can’t decrypt it or unlock it, and can’t figure out how to work around it.)
Every major tech company on earth uses open source software at the heart of their business. So we know something sustainable is possible.
Open source, one-size-fits-all math software is a tough nut to crack. I think most people could get most of their algebra and calculus done with existing open packages like wxMaxima or Sage. Specialized computations, such as those in group theory, already have open source implementations that exceed any closed competitor.
As for the construction of a competing CAS, some organization would have to employ a team. That costs money, and so far no company (that I know!) sees it as either a worthwhile investment or charitable cause. If folks do know of a company, I’d love to know.
why? why is proprietary software less reproducible? aside from cost, i might even argue that proprietary software is more reproducible. open source software often has dependency hell. how are you sure that the dependencies and software installation is the same between two computers?
how are results not able to be reconstructed with proprietary software, aside from cost (which is not your argument)? if someone has a result found in mathematica, then couldn't that same method be reconstructed in other software to compare results? if it can't, then mathematica provides some feature not found in other software.
and plenty of science operates by not being fully reproducible by independent parties due to cost and available equipment. that's often mitigated by people reproducing the experiments or results with different equipment and even methods. and even then, every regular joe still can't reproduce the results due to massive costs.
Proprietary software is less reproducible because the software artifacts literally cannot be reproduced in different environments. That's why I mentioned SMP as an example; even the vendors of the software can't reproduce their own artifact. Moreover, vendors rarely provide access to previously released versions, because "newer is always better". And nobody, except the vendor, is allowed to host or publish old/different versions. The availability of the source code does not also somehow prohibit binaries from being published.
> how are results not able to be reconstructed with proprietary software [...]?
Cost, legal viability, availability, shareability, etc. Cost is just one aspect. I also can't provide my copy of Mathematica along with my code that produces my results to you; I'm contractually obliged to not copy the software, and so even if I wanted to allow you to reproduce my results, I have no power to do so.
> and plenty of science operates by not being fully reproducible [...]
This doesn't mean we should be driving away from reproducibility just because it's lacking in some areas of science.
here's a quote from the NSF: "reproducibility refers to the ability of a researcher to duplicate the results of a prior study using the same materials as were used by the original investigator. That is, a second researcher might use the same raw data to build the same analysis files and implement the same statistical analysis in an attempt to yield the same results…. Reproducibility is a minimum necessary condition for a finding to be believable and informative".
https://stm.sciencemag.org/content/8/341/341ps12.full
let's say someone has some data and a method to process that data. if they implement it in mathematica, then someone else can do the same implementation in mathematica and attempt to reproduce the results. so what if they had to pay for it? that doesn't affect the reproducibility. it's a barrier maybe, and a small one, but it doesn't make it inherently less reproducible. someone else could take the data and method and implement it in something else, say matlab, sage, octave, or whatever, and attempt to reproduce the results. i know of a researcher who does this very thing. he likes mathematica, but his graduate students use a range of software to do their own work and produce results. he takes their methods and investigates and implements them in mathematica to see if they are reproducible. this is good mathematics and good science. just because mathematica is involved doesn't all of the sudden make everything un-reproducible and bad science.
if you're thinking, but oh, if it's open source, i could crawl through and understand everything the code is doing. but nobody does that. it isn't even feasible in anything but the simplest of simple cases.
> This doesn't mean we should be driving away from reproducibility just because it's lacking in some areas of science.
i didn't say we should. but in all the comments sections of big physics announcements, we don't see people whining about reproducibility. i can't go and reproduce the LIGO experiment in my backyard because it takes huge amounts of money, equipment, and engineering expertise. that's why many things don't compete that well with mathematica. it takes a lot of time, money, and expertise to develop such a software package. the opposing model (open source software) just barely drags along and could disappear at any time as maintainers come and go.
The visual version is quite reasonable an IDE now.
https://en.wikipedia.org/wiki/A_New_Kind_of_Science
"A Rare Blend of Monster Raving Egomania and Utter Batshit Insanity"
Python isn't called "the van Rossum Language". C isn't called "the Ritchie Language" (or "the Bell language", for that matter). Lisp isn't called the "the McCarthy language". We should judge Wolfram Research's products in spite of their unfortunate names, but denying that they're the result of Wolfram's narcissism is silly at this point.
Somebody naming something after themself seems a little tacky to me, but I don't think it's anything to get bent out of shape about.
To be fair, the denominator in this equation is fairly large, too :-)
Is there anything actually wrong with NKS aside from the tone?
> "As the saying goes, there is much here that is new and true, but what is true is not new, and what is new is not true; and some of it is even old and false, or at least utterly unsupported."
The author seems fairly knowledgeable on the subject of cellular automata.
EDIT: I see this has been posted elsewhere in the comments
[0] http://shell.cas.usf.edu/~wclark/ANKOS_humor.html 3rd from the top
https://hn.algolia.com/?dateRange=all&page=0&prefix=true&que...
Few of those people seem like they'll be advocates for buying expensive seat licenses if they become PIs down the line or join industry 5-10 years from now.
Mathematica seems a little different because I don't believe there's currently a viable alternative, let alone a commonly used one.
I've never seen a workplace use R or Julia or list them on a job posting outside data science or academia. Julia in particular is missing major components that make it useable, particularly in signal processing.
MATLAB also has the advantage of being useful as a CLI calculator for linear algebra, which is how a lot of engineers use it in their day to day. The REPL's of python and Julia are far too slow for that kind of work, frankly. Especially Julia. the JIT takes forever to warm up. It really doesn't fit into my workflow at all, and I've tried to force it.
Also, Simulink.
And while I agree that the Julia's JIT is pretty slow to come up, if I'm doing a lot of linear algebra work, I've typically just left a dedicated terminal open for it. I also haven't had much of a real speed issue with using a REPL or notebook, unless the data sets are unreasonably large. I think I disagree with your take on Python's most common uses, as well as the implication that it is just now "coming into vogue." I'm by nobody's measure a Pythonista, but my experience has been that it gets pulled in almost anywhere it can, from scripting to app development to scientific computing.
I am curious about your experience with signal processing, though--how have you seen MATLAB used where Python wasn't or couldn't? I haven't done much in that area since undergrad/internships, and there I would have said that LabView was much more prevalent as a tool, or even Labwindows. At least for many of the common functions like FFT, I don't recall MATLAB being any more common than any other language for that sort of thing (although as I said, my experience there might not be representative).
There's a lot of internal tooling around MATLAB that would take a lot of work to replace with Python. Like for example, I know a company that has a verilog compiler for their matlab models. That's not going to be rewritten for python.
MATLAB toolchains are also easy to maintain, since they're so damn expensive and locked down. Compared to python, which... isn't always straightforward.
And like I said before, MATLAB is just a fancy and expensive calculator. It's number crunch first, script second, and language third. Julia and python have a different balance, at least to me.
If I'm doing something quick and dirty, reaching for MATLAB is the absolute fastest way for me to do it, and the easiest to record. With python that's not true at all.
PS: I don't think I've ever seen someone use Labview to write and debug a DSP algorithm, so we've probably experienced totally different industries.
Much like Excel, it's easier to get people to program if you can convince them it's not programming.
I remember reporting this to my tutor. He looked at me with a steely gaze and said “That is a very serious allegation to make, young man. Are you willing stand by it?”