News for hackers. Stuff that matters.
Re:How Much of a Genius-Level Move Was Using Binary Space Pa... by CrimsonCape on Thursday June 13, 2024 @01:27PM (#40672274)
My theory is that open-source projects are a reflection of the language and all languages have the same flaw. Languages make it impossible to create simple objects with simple logic that can then evolve to more complex ability without modifying the simple object.

This results in new contributors being overwhelmed with the complexity of the classes and totally pushing aside the prior work in favor of starting at the basic level.

The module systems of common languages (like C# and Rust) tend to represent a "bag" of structs and traits, whereas a more advanced "evolutionary" language would represent source files or modules in a hierarchy of simple to advanced behavior.

Re:How Much of a Genius-Level Move Was Using Binary Space Pa... by sterlind on Thursday June 13, 2024 @03:39PM (#40673702)
Julia bucks the trend with its static duck typing; it's one of few languages where composition really works well. If your type defines + and * you can make matrices of them and multiply them together, then do linear algebra with them or format them as spreadsheets. Numpy, despite Python's duck typing, fails here because it's a thin wrapper over C, so the types are merely proxies and not extensible. Julia's compiled and heavily optimized, so it lives up to the promise. Also, unlike most static languages, the type system looks at the body of functions to infer what types they'll support - everything is maximally generic by default.

Julia has many flaws, but they're a different kind of flaws. Mostly caused by choosing function overloads based on vibes, and reckoning with the pandemonium caused by modules being glued together in unanticipated ways.

Re:How Much of a Genius-Level Move Was Using Binary Space Pa... by CrimsonCape on Thursday June 13, 2024 @06:44PM (#40675694)
will look into this, thanks.