2 ms·
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 obje
by CrimsonCape 2y ago
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.
- sterlind 2y agoJulia 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.
- CrimsonCape 2y agowill look into this, thanks.