|
"Are you talking about breaking modules (like linalg) out of base or changing the semantics and mechanics of modules?" Well, I'd be all for making Base as small as possible since I'm not big on monolithic standard libs and think everything possible should more or less be a package which you can include on a per project level. As for the semantics and mechanics, I'd like to have the ability to have true public/private like rust or go, so that you can have a tightly defined public api and be sure your users only have access to that. Also I'd like to see the whole thing simplified it is way more complex than it needs to be. Just have import act like a function for example it could take a module, a keyword, and a vector like this: import MyModule, :all # import all public defs
import MyModule, [a, b, K] # use as MyModule.a, MyModule.b, MyModule.K
import MyModule, :alias, [a,b,K] # use as a, b, K
compare the above to https://docs.julialang.org/en/stable/manual/modules/ as far as I can tell the functionality is the same. Anyway those were some of the things that I didn't like about it and would have changed. |