[ANN] PatModules.jl: a better module system for Julia

I am glad you have made a package that implements a file-module relationship you like.
I, and others, find the seperation of the file from the module, and include from using to be a feature.
“Namespaces are overrated, let’s do less of those”.
And favouring 1 module per package (if it is seperate enough to be put in a submodule, it is seperate enough to go in its own package, and then you have the package manager and semver here to help you with gradual upgrades).
and a bunch of other reasons; that its not really worth going into.
I would be extremely cautious about making claim about “Writing modular, reusable code in Julia is harder than in other languages.”.
I would say that seperating code out into more packages rather than submodules is a much better way to get reusuablity and modularity.
The two biggest ecosystems in julia that I am aware of is (my employer) Invenia’s production system, and DiffEqverse. In both cases we are talking about over 400K lines of code, dozens of seperate contributors and many parallel teams working on different parts and in both cases it is broken up into over 50 packages, with almost no submodules; and with each package generally includeing between 2-12 files.

Anyway, I am please you are making a thing you like.
and this is certainly a cool use of the language, quite the deep dive for your first (?) package.
But I would say you should pitch it more as an alternative that might be more familar to some rather than saying it is better.
Saying it is better is asking for fights.

42 Likes