Hacker News new | ask | show | jobs
by dguest 1457 days ago
Targeting the non-engineering crowd also means they are optimizing for a group that cares less about stability. That allows them to deprecate features, change interfaces, etc. An open source language is inevitably going to attract some maintainers who care about (or are paid to care about) keeping legacy code working.

I haven't worked with Mathematica in years, though, so this is mostly speculation: how strictly do they maintain backward compatibility?

2 comments

Extremely strictly. They're fond of saying that most programs from v1 will Just Work in version 13. See https://reference.wolfram.com/language/tutorial/Incompatible... for a list of breaking changes. They even document certain bugfixes this way:

> AbsoluteOptions has been reimplemented to be more accurate, and the form returned for a particular option may be different now.

They deprecate stuff, but almost never remove it:

> ValueQ has been redesigned to test for the presence of a definition regardless of whether the definition is used. Old behavior can be restored by specifying "Legacy" as the method.

They play more fast-and-loose with functions documented as "experimental".

> Targeting the non-engineering crowd also means they are optimizing for a group that cares less about stability.

Looking at how many buzzword bingo boards I could make with JavaScript frameworks de jour and even enterprise platforms like .NET I find this statement exactly backwards in practice.

> An open source language is inevitably going to attract some maintainers who care about (or are paid to care about) keeping legacy code working.

Over 20 years I’ve found this to be quite a mixed bag.