10 ms·
I've enjoyed developing in the language professionally for many years. Truly, few things allow as rapid prototyping with such efficacy for so few lines across s
by n-e-w 5y ago
I've enjoyed developing in the language professionally for many years. Truly, few things allow as rapid prototyping with such efficacy for so few lines across so many domains in a unified interface. There are some brilliantly innovative things across the language and, once you really get into the weeds of how to write efficient functional code, some of the things you can do are incredible.
Two things, though. Firstly, they are very stubborn on condoning a community to coalesce around the language other than through 'official' Wolfram channels. This comes from the big man himself, no doubt. As much as they want to drive adoption by coming up with (what they think are) "cool" sounding initiatives, they will never get devs to break from their core workflows and tools to do things the Wolfram way. There is no first-class support for daily-driver editing (vscode, emacs etc etc) for large-scale projects (other than an ancient eclipse package). Brenton Bostick at Wolfram has done some truly first class work in closing this gap though.
Secondly, this is the first major release that is a bit 'ho-hum' for a while. And it's reflective of the fact that whatever Stephen's pet interests are at a particular point in time will get attention in a release. For example, V11 was huge on Machine Learning and AI...now it barely gets a mention or extra development. Because SW is so focused on his Physics Project, this will likley be the case for a while.
To anyone thinking about using the language -- dive in. It's brilliant and expressive and fun. It's satisfying. You can do cool stuff. It just becomes very difficult when you want to scale it.
Anyone from WRI reading this: please, please, please let the community develop organically and support the toolchain everyone has wanted for so long. Or don't. But you need us more than we need you. Oh, and simplify the product line -- what a nightmare for newcomers to navigate. :-)
- carry_bit 5y agoI've heard they're working on creating an uncurated paclet repository, and the new paclet tools would appear to be the first step of that. Once that is complete we should finally have something similar npm.
- leephillips 5y agoI looked all over their website, but could’t find a link to download the source for the Wolfram Language so I can compile it. Do you have a link?
- the-dude 5y agoAren't you already perfectly aware this is not open source? From your profile I must assume you are.
- leephillips 5y agoWhy do you say that?
- the-dude 5y agoBecause apparently you are writing a book about Julia. I assume people who write books about a language which are also in vogue in the scientific community, they are aware of the eco-system of said community. Mathematica is not exactly a new kid on the block. Why don't you answer the question?
- leephillips 5y agoThe answer is that I did not know, and that’s why I asked. Mathematica is not a big part of the scientific research world as far as I’m aware. I don’t know anyone who uses it in physics research, for example. The last time I played around with Mathematica was in graduate school before Linux existed, when closed source and proprietary solutions were the norm. Back then I don‘t think there was anything like the Wolfram Language independent of the Mathematica product. So when I heard that this language now existed, I wondered if it was open and, therefore, something that might be interesting to use in research. From your tone I suspect that you won’t believe any of this. I’ll leave it up to your fevered imagination to divine how much I care about that.
- carry_bit 5y agoThe "Wolfram Language" name is essentially just a rebranding of Mathematica to highlight the fact that it does way more than just math now.
- trymas 5y ago
- ezequiel-garzon 5y ago“I've enjoyed developing in the language professionally for many years.” And I’ve enjoyed your wonderful post, thank you. HN can be truly amazing. I know, I know, upvotes are for that… ‘Tis the season, or something.
- agambrahma 5y agoI recently got into it and it is exhilarating. There's so much to it that it's easy to get lost. I don't even care for the "deep math" parts of it, it has _so many_ APIs for real-world data that "plain old exploration" is super-fun with it. It'll also be great for anyone looking for "creative coding" (typically Processing.js etc is used for this), since the Graphics abilities are so quick and easy. It has "a different shape" w.r.t. the languages and tools that are commonly used for programming, but it is a beast. Highly recommend to anyone curious. Also, https://www.wolfram.com/language/elementary-introduction/2nd-ed/ https://www.wolfram.com/language/elementary-introduction/2nd... (free to read online, though I read it on paper) was helpful to me, browse through it to get a feel for what it's like to use it.
- 6gvONxR4sf7o 5y agoI haven’t used it in years, but I remember the Manipulate functionality being so great for exploring things. Its weird evaluation model always gave that some warts, but it was very useful nonetheless.
- disentanglement 5y agoPerhaps I can add a counterpoint before anybody gets too excited and spends too much money on a tool they might not enjoy. Having used Mathematica quite a bit for doing symbolic computation, my opinion on it is pretty much opposite to yours. While the extensive standard library is certainly nice, I think that the programming language used to access it is one of the worst programming languages in the world - certainly the worst I have ever used. I have never seen any other programming language where the basic scoping and evaluation rules are so badly designed and error-prone as in Mathematica.
- ModernMech 5y agoCan you elaborate as to what you dislike about scoping and eval rules? Asking as a language designer.
- jjoonathan 5y agoGlobal scope (really global -- even between windows) is the default and the encapsulation tools are not particularly easy or convenient to use and not heavily promoted in the example material. This leads to a dynamic where anyone without the CS background to recognize the foot-gun and the discipline to disarm it winds up with awful spaghetti code and the all-to-familiar consequences: a big blob of unmaintainable mystery code that becomes more and more difficult to modify until all project time is spent merely keeping it working rather than improving upon it. We might laugh about this kind of newbie mistake here on HN, but even extremely intelligent people can't be experts at everything and the sheer number of physicist-hours and mathematician-hours I've seen needlessly flushed down this particular toilet is really quite unfortunate.
- pfortuny 5y agoThanks for this comment. Have the same experience at a Maths Department. Each run of some specific code is “ouch, we must try and see when we have the time to understand how it works and how each error is handled.” Just because it is soooo difficult to properly write a module.
- 5y ago