Even if the engine is “free”, I don’t want to build an open source product with it and hope to be granted a “free production license.” If I build something on my own time I don’t want to ask my employer to purchase a “production license” as soon as it becomes useful.
Wolfram believes that mathematics software (or “computational knowledge” or whatever he calls his entire enterprise now) must be proprietary and paid-for in order to exist. Maybe it’s true; all of the successful and wildly popular computer algebra systems are closed source. (wxMaxima is rough to use, Axiom has 3 or 4 different forks, each with fewer than 10 developers, SymPy just isn’t there, Sage is absolutely wonderful but not polished or easy to deploy, ...) But that’s completely at odds with how most software engineers work these days. Most software is grounded in an open source development and deployment tool chain. There is a market for proprietary developer tools, but it had been dwindling since its prime-time in the 90s.
I think Wolfram needs to think quite hard about how he wants to get his technology in the hands of developers while maintaining a business. Not that my opinion matters, but if he can manage to do it by open sourcing Wolfram Language, Wolfram Engine, or something like that, while keeping his business intact, I might again consider him to be the genius he was lauded to be in his 20s.
>But that’s completely at odds with how most software engineers work these days. Most software is grounded in an open source development and deployment tool chain.
Imagine saying this with a straight face. Maybe in web development, but the vast majority of programmers are using closed source tools to produce closed source software.
You're either thinking of a tiny picture vs the whole picture (web devs vs programming in general) or you honestly have zero concept of what programming looks like outside of web apps.
I’m open to being wrong, but my domain is not and has not been web apps. It’s mostly been things like satellite antenna control software, quantum computers, scientific computing, and AI. Each of those domains, in my experience, has been firmly grounded in open source. (It does not mean, of course, that the end product is open source.) I recognize there are some domains that are steeped in closed source solutions with closed source developer tooling with no viable alternatives, but IME—as limited as it may be—it’s uncommon.
What programming language stack do you (and a lot of other developers) use that’s closed source with no realistic open source alternative? It’s not C, Python, Java, Ruby, JavaScript, Lisp, Fortran, C++, PHP, Perl, Go, SQL, Rust, Objective-C, or Swift? (All of these, of course, not only have industrial strength FOSS implementations, but the first or second most popular implementation is the FOSS one.)
Yes, it's a niche (some may even say it's not software, it's hardware, but it is indeed a large code base that requires a software engineering environment/toolchain/practices/etc...). Again, just answering your question for the benefit of the discussion. It would be interesting to hear of others such closed source areas.
Kdb is a very niche product that has open source alternatives that are made use of by the rest of the software industry outside of FinTech. It's not bad, it's just not what the market wants to use because it's a closed box.
Wikipedia has an article on Time series databases and they contain a short list of popular TSDBs [0]. On that list 11 are libre-software to some degree and 4 are commercial. Relational TSDBs are new to the open source space but they're still being built despite there being the existing kdb+. This shows that people will spend considerably more funds to engineer a replacement (and give that replacement away for free) to avoid using a closed source product for this use case.
Unfortunately, there are no open source alternatives to kdb+. Effortlessly handling hundreds of terabytes of data on a single machine, while consisting of only a 300 kB (yes, kilobytes)... Nobody even came close.
Market adoption could be better, but the license costs around $100,000/year (probably the most expensive software per kilobyte). Fintech can afford it, other industries can’t.
You'll also end up spending at least that much on consultants. While KDB is remarkable in many ways -- the first time I saw it I thought the demo was fake, the performance so great -- it is very difficult to develop in.
They have a an SQLish interface, that allows non-specialists to get work done, but anything serious needs to move beyond that.
I haven't used it in a few years, but queries had to be carefully optimized -- swapping the order in a where clause could cause order of magnitude differences in performance. Also it is append-optimized. If you need to update or insert data, it is a nontrivial exercise.
Regarding being append-only — these days, where reactive programming, immutability and FP are all in vogue, this is a feature. As for the rest, yes — K/Q are idiosyncratic, but they are simpler than it looks at first sight (and second.. and fifth). :)
Other TS products like OneTick, RDBMSs for TAQ (esp. if you need non-TS indexes), streambase for UI backends
I even met a programmer who hacked something together in Java using the same columnar kdb layout but, you know, multithreaded, so different basket optimization jobs could run simultaneously on the same store.
kdb is frequently described as an in-memory database, or with great emphasis on how efficiently it utilizes a ton of RAM. I've no idea how much does its performance actually drop when the amount of data goes past, say, 2x the amount of available memory, but I'm pretty sure hardly anyone can afford multiple terabytes of RAM in addition to the software license these days…
You wouldn't happen to be a commentor/author for this Reddit post[0], would you? Your sentiment here seems quite similar. I have no experience at all with hardware design, but it seems like that domain is especially geared towards closed-source for specific reasons.
That is an interesting post. I think there are two other potential ways FPGA tools could become open source:
1) If there are some widely used open hardware devices or open standards. The fact that FPGAs are proprietary designs and can't be copied is a significant barrier. If there was an analogue of ARM in the FPGA world that could open up open source dev tools too.
2) DIY FPGA. This one is almost certainly much further down the road than any of the other options. But if fab and design tools of the chips themselves become a commodity then there will be open source dev tools. It used to be pretty difficult to make a custom PCB, but now with PCB as a service open tools are seeing more use. I think the reason this is so far down the line is because fpga offers cutting edge performance for specialized applications. If you wait several generations or are ok with reduced performance then you can stick with generic CPU/GPU. With Moore's law running down there may be more and more things that aren't possible without fpga. And I don't think it would be until then that open source dev tools follow more diy fpga.
For my comment I was thinking about HDL simulators, which are very expensive/proprietary tools (vendors like Synopsys, Cadence, Mentor Graphics), with a lot of vendor lock-in, but yet are based on standard/open languages: Verilog/System Verilog.
I know there are some open-source simulators that have been around for a while, but they aren't widely used, and the big 3 EDA vendors still seem to have a strangle hold on the HDL simulator market.
Simulation is generally more important for ASIC hardware than FPGA hardware, since you can quickly iterate on an FPGA design with logic/design fixes, whereas with ASICs design iteration can be prohibitively expensive and time consuming.
RISC-V was explicitly created to solve the problem of their being basically no open source architectures, and it's still fairly new, so it really is the exception that proves the rule.
I agree in terms of the equivalent of standard libraries. Ex: if you want a DMA engine, a PCIE interface, Ethernet, etc... you either have to build that from scratch, or buy IP from a vendor, there's not a lot of open source. There is opencores.org, but when a company is investing a lot in their own hardware design, then tend to want higher quality, or more recent/updated designs.
But the IC/hardware toolchain is a separate issue from the design itself. It's largely proprietary, probably due to the niche market and large R&D costs involved in some of the tools.
If you know of any chips taped-out, and shipping in volume, that used any of these as their primary tool, I’d be very interested to know more about that.
I’m aware of chisel used to verify some RISC-V cores that were fabricated, but that’s a research POC, not a volume/production ASIC.
All of SiFive's chips use Chisel, it's our primary design language. We use commercial tools post-Verilog (ie, synthesis and place+route). We use Verilator for some simulation, but also use commercial Verilog simulators.
Those are still mostly scientific domains, and science has been rooted in open source. Most mechanical and civil engineering, on the other hand, is done in Matlab scripts and proprietary simulation frameworks. Matlab is Wolfram’s chief competitor, not Julia, R, or Sage.
Yea, AutoCAD is huge for Civil Engineers and Matlab is also pretty big for many engineering students, academics, and research professionals. I think most of the heavier users in industry used it all through grad school and then brought it over into industry. Most of us engineers that just have a bachelor's degree weren't as firmly rooted in Matlab and just picked up Python as our first post academic language. Both are good. Matlab has some advantages like bundling suitesparse (world class linear algebra subroutines)and handling the license of that so you don't have to get one yourself (assuming you want to sell your product).
I think Python definitely wins as a scripting language lingua franca though. It is free as in beer, open-source, available on any OS I care about, and most of the software I use has a built-in Python API.
Mathematica is big in academic math and physics programs, but I haven't seen it in industry as much as Matlab. Believe it or not, my company had a major accounting application written in Mathematica, so it does pop up in weird places.
An exhaustive list would get tedious pretty quickly, but I'm imagining that using this engine would be roughly equivalent to building around Rogue Wave IMSL libraries or Mapbox Atlas.
It seems like using the SDK in your language of choice would be a reasonable way to leverage the engine where it makes sense.
Even when proprietary software is used in these types of fields, like vworks,the source is available for you to build. I wish more proprietary software would include the source when you purchase a license.
You're either thinking of a tiny picture vs the whole picture (web devs vs programming in general) or you honestly have zero concept of what programming looks like outside of web apps.
To give some more pushback on this assertion... I've been developing software for 21 years now, and the only positions I had where there was negligible open-source software were in the first couple of years (in the automotive firmware space [OnStar], and a brief stint in some defense contracting). For the last 18-ish years--firmware, systems, enterprise, virtualization, demos, security--everything I've worked on has largely been based on open-source software, or the product was open-source itself. What I've never done professionally: Web app development.
Honestly, I think it would be hard to overstate the prevalence and impact of open-source software in the field of programming (and really, the entire tech field).
You could have phrased that in a far less confrontational manner. Claiming someone you don't know has “zero concept” is unnecessarily confrontational, all the more because you're doing that while simultaneously claiming to represent a huge and varied field with absolutely no cited sources for that claim.
> you're doing that while simultaneously claiming to represent a huge and varied field with absolutely no cited sources for that claim
I suspect it was phrased strongly because the GP made the same claim in the opposite direction: "Most software is grounded in an open source development and deployment tool chain".
> you honestly have zero concept of what programming looks like outside of web apps
Are you serious? I don't do web apps. But almost 100% of our stack is based on open source technologies. Python, Twisted, Go, etc. Every single thing we use is open source.
It is ironic that you are accusing someone else of having zero concept of what programming looks like outside of web apps when one could easily think the same thing about you.
You can create closed-source software using open-source software. That’s how Google made so many billions and that’s probably why the AGPL exists.
GCC was so revolutionary because it brought a pro-level (although not at the start) compiler toolchain for free and allowed developers who were so inclined to improve and modify it.
And lots of Python code is for things like machine learning, Go runs lots of DevOps/neo-infrastructure stuff, and I can’t comment on Twisted.
The parent goes too far in one direction and you go too far in an other. I work in embedded linux development and my entire toolchain (kernel, userland, compiler, flashing tools, and desktop environment) are 100% open source. I suspect that people who target Windows or Mac OS might be in a different situation but that's to be expected, when you target a closed proprietary environment you end up having to use closed proprietary tools.
Admittedly I go out of my way to avoid including closed source components in my work but that's not just an ideological decision. As the parent points out, and especially when you're a developer, there's a massive amount of freedom and power to open source tools. Don't like something? You can tweak it any way you like. You don't have to worry about the IP owner pulling the rug from under you without notice. I want to use that code on my MIPS32 target? I can try to port it, I don't have to beg the vendor to release a version just for me.
If anything in my experience the archetypal "modern web dev" crowd (the one that got into programming through Javascript, basically) is the one that benefits the least from this because often they don't dare to patch their window manager or their shell to customize them. These days C is often considered a weird arcane language, something like the Latin of CS (including in this very forum) so people don't feel empowered to modify these applications. The fact that modern DEs like to treat their users like slow children instead of exposing the tools that could help them become "power users" probably doesn't help.
Then of course for people who don't actually try to read or modify the source of the programs they use "open source" is more of a political statement than anything else. There's no real benefit for them.
I'm making generalities of course, I'm not saying that all web devs fit this description.
I hope this trend will change as newer, more "friendly" languages like Go and Rust make forays in the system programming space. Hopefully that'll motivate the new generation to get over their fear of system programming and start embracing and customizing the tools their use.
Using a Mac. Can confirm that almost everything that’s actually built upon by other stuff is open-source. Even much of Apple’s development software is open-source.
"Even much of Apple’s development software is open-source."
Not at the GUI level. Xcode and Instruments make use of open source toolchains underneath, but aren't open source themselves, nor are the Apple frameworks they're built on.
There are many programmers making closed-source software using open source tools. For example, anything that runs on an embedded Linux platform is built using open-source tools (e.g., GNU compilers and open-source libraries) and is usually closed-source. There is also anything that runs on an open-source interpreter (e.g., Python), which includes a lot of things that aren’t web apps.
Without the proprietary and exclusive hardware, something like CUDA would DoA. Wolfram is trying that, as MathCad and Maple did back in the day and still MATHLAB kind of pulled off (Octave is coming though). This is a pretty steep slope they're fighting against because many programmers don't want to give away that sort of control easily. I remember when closed-source SmallTalk was the norm in the 90s, also Fortran systems or EIFFEL. Borland, Delphi, Watcom did okay for some time but they didn't lock you in so hard - it was "something standard with extensions" (a bit like C# which by the way, I avoid on these grounds alone).
Neither is the hardware, nor is Intel’s or the Motherboard’s, etc. Would it be ideal? Sure. Is it possible to have every level be completely open source? Maybe, but you’d struggle.
Look, the point here is to be as open as it is to be practical.
In my lab, we attempt to use as much open source software and parts as is possible without literally spending years waiting for RISC-V to become mainstream along with fully open source GPUs and computing cores, open motherboards, RAMs, etc... this doesn't even include fabrication or other useful software which runs our machines (do you want to have a several-million-dollar photolithography machine running on poorly maintained OSS?). Yes, should that machine be open in a perfect world? Of course, that would be incredible and in the spirit of verifiability. But right now it is not and there is little we can do about it.
It's clearly impossible (or completely and utterly impractical) to pretend that somehow everything can be done in a fully open source way, and it's easy to go down the rabbit hole pretending to be on the high horse of "our stuff is more open." My point is that what can be made with OSS, we almost always attempt to make with OSS, not everything we make is perfectly open and transparent, because it literally cannot be without so much effort as to render the entire thing completely useless.
So, sure we use Mathematica in some things when the OSS alternative is mostly unworkable or unusable, but by and large we attempt to be as open as possible such that people can verify our results without needing to spend thousands of dollars on software whose internals we don't generally know. Do we rely on Intel software and hardware which could have another floating point bug? Sure. But it's hard to be at all productive if you don't at least assume a bare minimum, even if that standard is not completely open.
No, your point is still extremely muddled. Cuda and Wolfram are both compilers/runtimes, they fill exactly the same role of translating high-level code into something that can run on hardware.
But I'm not so sure it would be ideal. There are things which thrive better as closed source. I prefer closed source IDEs, they tend to be better designed with better long term vision. Most open source projects suffer from a lack of long term vision, tight design, and funding. There are some which do well in those, but not the majority... There are quite a few things that thrive better as closed source which would have little chance as open source projects.
Proprietary closed source has a built in mechanism for funding. That's a major plus.
Excel? SAS? Stata? Matlab? All are very popular tools in data science and statistics. You could argue that open source tools have become more popular recently, but I would hardly call open source software the "norm."
A ridiculously large number of people use Matlab as a tool. I can't think of a single engineer that doesn't curse its name regularly but I've yet to encounter any actual applications written in it.
I have seen people doing amazing and complex things with Matlab, including fancy GUIs and stuff. But it is almost exclusively used for internal tools as far as I know.
I think this often happens anytime there is a large amount of legacy software written by folks that had software has a tertiary skill on their tool belt.
The Matlab IDE is not bad though and is a lot like Python's Spyder IDE. Also, a lot of Matlab commands have fully browsable source provided I've been told.
Most programming languages are open source (or have an open source skin). Most frameworks in any language are open source. As are most commonly used libraries.
Really? OpenJDK, .NET Core, gcc, etc. are quite popular outside of web dev. What we really need is an open source implementation of the Wolfram language (a side project idea I've had for a while.)
That is true, to some extent, but the cost of commercial software makes my company think really hard before we go that route. It has to have a clear and obvious value, or we are reluctant to seriously consider it.
I'm not talking about the dollars, that's relatively minor. It's all the things around it, especially with licenses becoming more complex, including core counts, including all these weird provisions related to when and how and what features can be used in dev and staging and production, what versions of other software they can work with, etc...
The software that we can buy and just use without thinking about it is great, but it's really few and far between these days.
We can spend weeks or months analyzing the things surrounding the commercial licensing for a product, and that is spending one of our most valuable resources: attention.
Wolfram Engine is not an IDE, or a photo editor, it is a programming and runtime environment so you can't compare these things. They exist in different worlds. If you want lots of money for people to even use and learn your language, you have to provide a free alternative to get people onboard. You can choose not to, of course, but they you will limit the reach and the importance of the product.
(No, being able to use a sandbox is not sufficient to properly learn any language because that's not how you use languages to build stuff)
And before anyone says how important Wolfram Engine is and that this is the going rate for specialized software: nobody cares. Because you are probably wrong if history is any guide. Lots of software used to be niche software and isn't today. Things change. If it's expensive and only available at a steep price, then only those who need it will buy it. The curious will get their kicks elsewhere.
There used to be a time when database professionals stomped their feet and yelled if you suggested Oracle might consider a Linux port of Oracle. "Impossible! People who use Linux aren't into paying for stuff!". And then it got released and then Linux became its most important platform.
Things change.
In order to get people to include it as an infrastructural component you probably have to ensure that it is free for non-commercial use. I'm not sure if you have to open source it. I use lots of stuff that is free for non commercial use - and then I use it commercially and pay for a license. Occasionally really expensive licenses.
I've looked at Wolfram Engine a few times, but in the end we never used it because it just didn't have a great enough following among programmers. I couldn't just tap into a talent pool when recruiting. It was hard to find experience.
I tend to choose tools based on the _people_ I can find to use them. In fact, usually the people I find choose the tools. That goes for how I choose languages, software, cameras, cars, motorcycles...you name it. No vibrant community means I don't buy in. And sure, there are lots and lots of cameras that are better than mine in that price range. But the cameras are not all that important. The people are. Who I can collaborate with, who I can learn from, who can help me solve problems.
Also, it tended to be a bit on the expensive side for what I wanted to use it for. Sure, I could have contacted Wolfram and said "look, we want to use it for this, but the licensing model doesn't quite fit", but how many developers do this?
(I remember thinking about buying Mathematica several times to tinker with it, get to know it and then perhaps see if I could use it for something. But it was expensive, and I'm not spending that amount of money for something I'll maybe going to play a bit with and then perhaps forget for a year. This too makes Wolfram Engine a bit of "interesting, but I'm not going to invest time in it".
And I can't say I've ever blamed Stephen Wolfram for it. He has a product that makes a bunch of users happy and him rich. Who am I to tell him that he should do things differently? So he exists over there and I exist over here and everyone is happy.
I'm excited about this change. I wish it had happened sooner so it could have had more of an impact. It certainly put Wolfram Engine back on my radar.
I don't care that it's not open source, it's a unique technology. Actual algorithms solving actual problems correctly. None of that fuzzy search that you'd get if you used Google. It's an amazing tool in its domain.
I absolutely don’t contend that it can’t do incredible things, and I think a huge swath of developers would be eager to take advantage of these capabilities were it under more permissive circumstances. I’m also happy for you that you have the latitude and willingness to build software in a programming language toolchain that is not under your control, both technologically and legally. I know at the companies I’ve worked for, including it as a part of the product would not fly with so many departments, most notably legal, exec leadership, and most SW developers.
The reason for its dismissal goes a bit deeper than the simple fact that it’s not open source. We pay for other software (like E&M solvers), why not this? Because its use is not compartmentalized. It’s a programming language with the world’s most expansive standard library. Just as is the case with—say—Python, folks using this have no end to what they would build, including company IP. The code would absolutely not be portable, and your tech stack would be vendor-tied. That’s a danger zone for any serious enterprise.
My problem with it being closed-source is that it doesn't form a stable platform for my work. If they decide to change their product in incompatible ways in the future, I'm sunk. I have no recourse, I cannot fix the problem if it goes deep enough, and there are no other implementations.
I learned this lesson (albeit from a distance) when Microsoft killed off Visual Basic 6 and replaced it with Visual Basic .Net.
I've got no stake in this, but I'll note that from the claims Wolfram has made, they've got a 30 year track record in which notebooks going back to 1.0 still run in the latest version.
I don’t think being forced to upgrade is as much of a concern as receiving incompatible upgrades, or not receiving anything at all. Remember, Wolfram is trying to reach industry here, not just individual software developers.
I agree. Plus, you can't peer into the layers underneath your software – if I'm writing code in Python or R, everything underneath me is there for inspection, if needed.
A closed source solution, where all you have is documentation (potentially flawed), including manually authored change information, just feels archaic at this point.
A lot of people use AWS though, right? It's about trust. Not trust in a "Amazon are good people I trust them" but more like "Amazon incentives are aligned with mine for this project, and I trust that using their platform wont f' me up down the line".
Companies should derive that trust factor from other factors based on their unique circumstances. If you are Amazon's competitor for instance it is probably not wise to use AWS for anything, but if you are a startup it could be very wise to take a bit of lock-in to avoid rolling your own infrastructure. If you are an established company maybe use AWS but in a way that you could move to another provider without too much pain, but balance that against some of the goodies you get by staying locked in.
I guess the same nuanced considerations have to be made to decide to use Wolfram Engine or not. There is no clear answer that suits all end users.
I've been reading as much as I can on RMS's site recently because I want to expand my mind on these sorts of topics. I really want to understand how "free" software can work at a practical level, where you say "here is a piece of software, it's $1000 from me, and you are free to give it to your friends, modify it, and resell it, even to people who would have paid me $1000, but now they wont need to" and how that ties in with making a sustainable business. I think it takes some luck and good imagination to make such a business work by selling some by-product such as consulting services or whatever. But for a lot of companies non-free is required in my opinion to exist as a business. Happy to have my mind changed.
AWS is more of a commodity, right? You use it for compute and storage and networking, but how much of what you write is intrinsically tied to AWS? With what we're talking about here, there's a language and a bunch of libraries where, if the company decides to change things, your code stops working, and there's no way to make your code work again without rewriting some arbitrary amount of that code. Maybe the company decides that a whole kind of activity is now bad, and you can't do it at all on their platform.
With AWS, you can pack up and go to a different cloud provider, and get the same Linux and the same gcc and the same TCP/IP stack. There's probably some other code you'd have to change, but the essential core is non-proprietary and nobody can take it away from you. Abstracting further, if Linux decided to go in a weird direction, you can get a POSIX-conformant Unix-like OS from other groups, like FreeBSD or Illumos. The Linux codebase can be forked as well, providing an even stronger insurance relative to what happens when some company's or business unit's incentives no longer align with yours.
And that part about aligning incentives is powerful. In the closed-source world, it's also fragile: One company being bought out can shift things tectonically for all of the software that company made. It becomes a treadmill, or a movie routine of constantly jumping from platform to platform as each of them dies off or is pulled out from under you as "corporate synergy" realigns strategic chakras feng shuis your old codebase into worthlessness.
> fahre dann mit dem Taxi zu einer Villa am Stadtrand. Ein bedienster steht am Eingang,
If you are "seriously" using AWS: A lot. Value of AWS is not that it offers compute nodes. But a full catalogue of further services and tooling APIs and migrating of that can be a big project.
It's not unique in that there literally exist other computer algebra systems (CAS), sure. But it is unique in two meaningful ways:
1. It is arguably the most sophisticated CAS available. Open source tooling has crept up in performance and completeness in recent years, but Mathematica still dwarfs every open source system in performance and feature availability. Competing proprietary systems like Maple are capable of beating Mathematica in certain specific domains (like PDEs), but that leads me to my second point.
2. Mathematica isn't just a CAS. It also supports sophisticated data analysis and ingestion, visualization, (some) machine learning, natural language processing, speech recognition, signal processing, climatology, meteorology, geography, financial analysis, and limited forms of convex optimization.
Some things that Wolfram Language does that maxima doesn't: machine learning, image processing, audio processing, time series analysis, user interface construction, build-in data, geo computation, natural language processing....
Maxima is just a computer algebra system- one small part of what Wolfram does.
Are Maxima's CAS algorithms comparable to Mathematica's? I have tried to used Sage and other systems in the past, but Mathematica has always been better at finding solutions for what I tried to do. But I have never used Maxima for real.
Computing symbolic derivatives and integrals, simplifying algebraic expressions, arithmetic with arbitrary length integers, solving simple ODE, computing limits and series, things like that.
Maxima is a fine piece of software, and I’m a huge proponent of its development, but doesn’t compete in the breadth or depth of Mathematica (or Maple) at all.
It certainly competes due to the fact of being free software, which is a strong requirement of my workflow. I can try Mathematica and Maple (and love them), but ultimately I have to end using a free software solution.
You seem to have an axe to grind. They have made a very nice ecosystem over the course of 30 years, they are opening it up more. They are proud of "how uniform, elegant and stable a design we’ve been able to maintain across the whole language." It is difficult to get that in an open source project and ecosystem. This has some marvelous qualities that come from its closed source nature. It is special because of that. Having both open source and closed source projects in the world complement each other. Use the best tool for the job. Sometimes the best tool is to be closed source, sometimes open source. There are pros _and_ cons to _both_. I think it is great and applaud them for making such a nice tool, and now making it more widely available. Maybe it wouldn't be so great if it started out open source, or would be similar to open source things and not be distinct enough, so I'm grateful for what it is and what it is not.
No axe to grind. I’d like to think I’m a representative sample of my fellow software engineers. I don’t even want to make statements about open vs closed source generally. But as it pertains to developer tools (compilers, interpreters, debuggers, runtimes, standard libraries), open source has been hugely successful, hugely popular, and both individuals and corporations depend on that fact. You’re right, and I think I fairly painted a picture of Wolfram’s thesis about Mathematica being a commercial closed source product: He has the best general-purpose CAS on the market right now. That’s real value! But it’s not persuasive enough to spend my (or my employer’s) time, energy, and other resources into making it the source language of my (or my employer’s) product, IP, services, open source libraries, etc. Under discussion is a tool to write and run code in Wolfram Language, with a premise that providing the tool free of charge for use in a limited set of legal circumstances is useful. I argue that the legal framework around the usage of the tool is more consequential to its adoption and use than the cost.
With that said, I don’t speak for everyone! If folks find this tool useful, love writing Wolfram code, have no expectations about the portability or maintainability of the code, trust Wolfram and the contract to which they’re agreeing, then by all means! More value for people is better!
"I’m a representative sample of my fellow software engineers"
I'm a bit puzzled about how strongly you seem to be feeling about this topic. Given your comments, you seem to be quite far from the target audience of Mathematica. It's not for software engineers. Most productive work done with Mathematica is not "building software" ...
But given all this hostility, have you downloaded it, and have you tried it? Or is all this just philosophical (i.e. the least interesting) criticism? There seems to be no experience backing your comments.
I do computer mathematics. I’m the author of a computational group theory package [2], and my day job is in quantum mechanics and quantum computation, but in that I’m building packages in a software engineering capacity. The algebra gets pretty gnarly. Check out a recent paper, which includes both a math [0] and SW [1] component. Perhaps because of this I’m unusually representative of the intersection between math and software.
I hope folks aren’t finding my comments hostile. I have used the Mathematica product before in their GUI and at the command line, and some of my colleagues use it for various calculation tasks. I’ve opted to stick to open source alternatives like Sage, wxMaxima, GAP, and Axiom/Fricas.
The engine doesn’t give you a license to Mathematica, so I don’t presume the target audience is the collection of folks who want to do differential equations with plots. The article emphasizes lots of software things (languages, integrations, etc.), so actually I do believe they’re targeting software engineers.
You should note that I have not criticized their features, but rather restrictions on the use of the product in the first place . Maybe that would be interesting to read, but instead I have commented on the leading question in Wolfram’s article. I have not and will not download their Wolfram engine in its current state though for the reasons I’ve outlined. Do recall that using it means I’m bound to a legal contract, and that’s not one I’m willing to engage with.
I think people are confusing your certainty with hostility. I've read all of your follow up responses in this thread, and don't see any kind of hostility. What I am seeing is a lot of ad hominem hostility being directed at you as little prefaces to people's arguments.
As an old Lisp programmer, it makes me feel good seeing CL applications.
I broadly agree with your points in this conversation but I am downloading the Engine right now. I also did a ten day free trial of Mathematica recently. I have a little time to spare to kick the tires.
BTW, in the same way that Keras has functionality to download some standard data sets and cache them locally, I would like to see more CL projects do the same. Julia has a few such packages. Having easy to access data is a selling point for Wolfram Language.
Not sure how the parent comment is hostile. They aren't critiquing the system itself, they are critiquing its method of distribution.
As such, this comment:
>But given all this hostility, have you downloaded it, and have you tried it? Or is all this just philosophical (i.e. the least interesting) criticism? There seems to be no experience backing your comments.
I agree on that point. It definitely wouldn't fit for a lot of people, and licensing is extremely important. Point taken on developer tools as well. But some diversity doesn't hurt there. :)
If they open sourced it, it would be less than a year before you'd start seeing "Azure Wolfram" and "AWS Wolfram" and so on and I can sort of understand why he might not want that to happen.
An Affero GPL (AGPL) license wouldn’t prevent AWS or Azure from competing with Wolfram’s cloud service, it would just require that they publish their changes to the source code. They’d still eat Wolfram’s lunch, which is why it won’t happen.
Exactly. That's a good example what's wrong in our world. As long as this won't change we won't get closer to the FOSS world that every human deserves.
There are ways around this. I quite like what TimescaleDB have done, with most features OSS, and the more advanced features are under an open source license that permits use for those building a product around it, but preventing TimescaleDB as a service.
Agreed, but I think there would be big pushback from OSS proponents - in theory changes like this are diametrically opposed to the "No Discrimination Against Fields of Endeavor" tenent.
The problem of big cloud providers ripping off OSS works is a new one, but it is explicitly allowed by OSS licenses - really not sure what a "good" solution is here, but personally I like the route TimescaleDB has gone down.
I don't think it is a new problem, there have been people offering Apache servers as a service for a long time. Same for PHP, Wordpress and myriad other open source projects.
TimescaleDB's TSL license is not "OSS", but it is open source.
TimescaleDB has a good blog post about why they went this route[0]
I do think that perhaps we need to stop being so snooty about OSS vs open source, and recognise that companies with open source products are allowed to make a profit while preventing the big cloud providers from scalping them.
If Wolfram is correct in how game changing the Wolfram Language, Engine, et al are, then commoditizing it to the point that there is an "Azure Wolfram" stack and an "AWS Wolfram" stack may be vindication. (Maybe not very profitable vindication, but real bonafide "people are using it and happy with it" vindication.)
Azure and AWS already have competing stacks to Wolfram, it is just various and sometimes incompatible hodgepodges of R, Python, Jupyter, and so on and so forth.
There are a lot of poor quality open source packages in use. Some are just chaotic. But people still use them, often just keeping themselves much busier than they need to be. Of course there are a lot of high quality packages in use as well. So popularity does not correlate with quality (in many fields)
If Wolfram open source their stuff and people use it, it won't necessarily be a vindication. At the moment they have people who are willing to part with cash to get what they make. That's a definite vindication for anyone who makes things.
Open source has a clear definition. The kind of license you want is not compatible with that. It would be a valid software license, but not open source.
The community of free and open source software developers.
Really, with the kind of license proliferation that was going on due to every Tom and Harry that wanted to publish their own license, it was difficult to understand which license was really safe to use and which wasn't. FSF and OSI stepped in to bring some sanity to this situation by categorizing all the free and open source licenses by their permissiveness and restrictions. The majority of the open source development community adopted these licenses.
Any license that restricts making money would neither be considered a free license by FSF nor an open source license by OSI. The license could discourage making money without contributing back to the community and the GPL family of licenses do achieve that to some extent but they cannot outright restrict making money.
The OSD has its roots in Debian Free Software Guidelines which for a long time has been the community standard for what guarantees free software must provide. FSF's four freedoms of free software are also similar. OSD adopted Debian's guidelines to create the open source definition.
If a license does not allow us to run a software how we wish we lose freedom 0 to run the software how we wish. We lose the right to use the software for any field of endeavor. You might want to consider it "open source" because you can still see the source but widely accepted terms like "open source" do not get redefined so easily based on how some people feel about the term. The term's meaning still remains intact due to the meaning it holds for the vast majority of open source software developers.
Of course it is naive - his business is built around it. OpenSourcing takes a lot of revenue away from him. Compensating that with support contracts and cloud services won't be easy.
Not to mention the fact that probably he doesn't own all rights for doing that. Software with such a history often contains third party licensed modules.
He won't change because society considers him to be a prodigy (for good reasons, see his early work) and he lives in a cloud of success from where its hard to empathize with how most developers or actual users of his tool work. In essence, he found great success with a business model for software appropriate for his time and has done well enough to not have to change anything.
Although, perhaps this step is kind of a result of stagnating growth, IDK.
> But that’s completely at odds with how most software engineers work these days. Most software is grounded in an open source development and deployment tool chain. There is a market for proprietary developer tools, but it had been dwindling since its prime-time in the 90s.
that is simply not true and a rather insular view. i build large complex systems, and all of it is done with proprietary software. in fact, it is practically impossible to do my job exclusively with open source software. most open source software is completely unreliable and ill-fitted for many domains. and just try getting good support for use cases only found in industrial use from most open source developers. i have tried, and it never works out. the response is usually "you figure it out and let us know".
furthermore, a lot of proprietary software is fairly open source in that you get access to a fair amount of source code. and it isn't dwindling at all.
I’m not saying it doesn’t exist, but I am claiming it’s uncommon to use closed source developer tools (compilers, interpreters, standard libraries, etc.). The mere fact that the most popular programming languages in the world are provided as open source implementations is a testament to that. There are some stragglers. I think K is closed source. Commercial implementations of APL are closed source but somewhat popular.
“Source [partially] available” and “open source” are generally considered distinct concepts these days. See for instance [0] or even look up what Google’s dictionary says about the term.
Writing code in C or C++ does not lock me down in any way. Using the Windows OS APIs does, yes, but there are entirely robust ways of writing C++ on Windows using an open source toolchain that are popular. And as we have seen, Microsoft is increasingly going in a direction of open sourcing more and more of their tooling. Look at everything that has gone on with C#, F#, the .NET stack, etc. So while I agree with you that MSVC is used, and used often, I don’t think that’s a strong argument.
Now if MS had their own language (they did...) that was closed source (it was...), the argument would be more akin to this Wolfram debate. But MS learned that wouldn’t fly, and adopted an OSS strategy.
I have changed 7 jobs in 15 years so far and not once I have done Windows development in Visual Studio. Nor have I seen anyone in my company doing so.
I would say Windows development in Visual Studio is by far uncommon when you compare with technologies like Python, C (with GCC or Clang), Java (OpenJDK), JavaScript, etc.
It's worth noting that the Visual Studio umbrella also involves many OSS technologies. If you're writing C# or F# code targeting .NET Core, the language, compilers, libraries, runtime, build tools, and parts of the IDE tooling are all open source.
I will say that although most of the proprietary software that I use is closed source, one major provider has so little documentation that they're pretty much forced by customers to provide source and that is super nice. I can actually call up a dev, tell them where the problem is located, and how to fix it. This saves a lot of money in bug patching.
This is bullshit. Most of the OSS is done by overbored corporate coders on good salaries, that is paid from the pockets of other successful businesses.
Hopefully this is the first step in a series of steps to get there.
Doing it in one big jump would probably impact revenue so much that it would take too long for them to grow out of it. Hopefully this change will increase their growth rate without much change to revenue, making it faster to grow out of, and prepare the way for further changes.
He should open source the Core language and then license all the extra functionality in paid for libraries. That would at least make it more possible to opt out the paid for functions or if you would like to have it opt in later.
I never know when they talk about "Wolfram" whether they mean the company or the person. And then I think what an egomaniac one must be in order to name an invention/creation after oneself.
1 Fear of losing control (over their vision and centralized design of computation and representation of
the Wolfram language).
This is just false, as they would be in control over their project even if open-sourced.
Forks would be possible but would not influence the original source (if not wanted).
2 Fear of lack of innovation.
I cannot see why this would be true.
3 Fear of ignorance towards hard/boring dev. topics.
I see how that could be a problem. One solution would be funding (s. point below)
to pay devs for the boring stuff.
4 Fear of lack of funding (because dev. costs money... surprise).
Their main point (and probably a big issue of a lot of other companies
thinking about open-sourcing their software) and a very valid one indeed.
So I guess they just have not got a business modell ready involving open-sourcing their software.
Wolfram seems not so much against open-source from a philosophical point of view but they
clearly think they would not be able to fund their dev. efforts without their software revenue.
@Wolfram: The most important assets of Wolfram are the devs. working there, not the software itself.
Given this huge knowledge base around the topics covered by the Wolfram language, the support-business-modell
could very well work! Also from a philosophical point of view: Wolfram claims to unify disparate
fields of all of science which kind of is a scientific achievement on its own. Scientific results
should be available for all people of our society.
That depends on the software development segment. If you are creating 3D games you would expect to build on top of Unity or Unreal because unless you are a major studio building the infrastructure yourself is expensive, slow and not as good. The question is "is computation" such a segment?
I have used Google as my programming language (Go) and a de-facto-standard library (Guava). Of course, in both cases they're open source. And I've found and fixed bugs when I couldn't get Google to do all of it themselves. And if Google ceased to exist both of these could continue with minimal interruption.
WL is essentially just a bunch of useful functions collected into a common platform, and I think we already have the open source equivalent of that - it's called npm, and it's great, but it is very different, and it has some pretty big downsides which are the direct result of it being an open source project rather than a commercial product. I don't know if WL is as elegant or high-quality or deeply functional as Wolfram claims, but if it is, isn't that likely a result of it being built the way it's built?
It might be that there's a middle option - a way to open some core part of the language, while still keeping enough closed to make up a service layer that they can charge for, as you described - but today's announcement is pretty strong evidence that they considered that and rejected it. It seems pretty presumptuous to assume they got it wrong.
There aren’t really any technical computing things done in JavaScript or hosted on npm, are there? A better analogy might be the scientific Python ecosystem.
It’s not open source.
Even if the engine is “free”, I don’t want to build an open source product with it and hope to be granted a “free production license.” If I build something on my own time I don’t want to ask my employer to purchase a “production license” as soon as it becomes useful.
Wolfram believes that mathematics software (or “computational knowledge” or whatever he calls his entire enterprise now) must be proprietary and paid-for in order to exist. Maybe it’s true; all of the successful and wildly popular computer algebra systems are closed source. (wxMaxima is rough to use, Axiom has 3 or 4 different forks, each with fewer than 10 developers, SymPy just isn’t there, Sage is absolutely wonderful but not polished or easy to deploy, ...) But that’s completely at odds with how most software engineers work these days. Most software is grounded in an open source development and deployment tool chain. There is a market for proprietary developer tools, but it had been dwindling since its prime-time in the 90s.
I think Wolfram needs to think quite hard about how he wants to get his technology in the hands of developers while maintaining a business. Not that my opinion matters, but if he can manage to do it by open sourcing Wolfram Language, Wolfram Engine, or something like that, while keeping his business intact, I might again consider him to be the genius he was lauded to be in his 20s.