When you are working on an "wide" project, like a language is, you have to limit your scope somehow. One self-imposed limit for Rye < 1.0 was, that I will not think about modules. Go compiler is known to produce single statically linked binaries. That means that a single file just works , no need for additional installations of any other Go runtime dependencies. This is very nice for distribution. Rye interpreter is also such single binary, and although Go, from version 1.5 supports use of shared libraries, I don't plan to make Rye's bindings dynamic for now. This is a limitation. If you have one global Rye, it has to be compiled in with all the bindings you need on your system. Tags to the go compiler define the modules, so defining them is not hard, but not something you want a Rye programmer to think about. Solving limitations often offers new avenues for innovation. Having a global programming language and global modules is problematic also in dynamic/shared s