5 ms·
> Packages and modules should never be reliant under an assumption about the underlying file system, as it tend to lock languages to certain platforms. And it
by chrismonsanto 12y ago
> Packages and modules should never be reliant under an assumption about the underlying file system, as it tend to lock languages to certain platforms.
And it gives you an escape hatch from Java-style module nonsense: of COURSE I want to traverse 7 singleton directories to get to the source code!
- richardwhiuk 12y agoThat would be a simple fix to be honest - and one that Java 8 could make without backward compatibility issues. Simply allow the hierarchy to be short cutted if a directory contains the a dot separated name e.g instead of com/foobar/bar/module/a/b allow com.foobar.bar.module/a/b
- pjmlp 12y agoWhich happens to be shared by other languages as well.
- levosmetalo 12y agoJava allows you to put all your source files in one directory and javac *.java will happily compile them. Package-directory structure applies only for compiled classes and internal content of a jar file. For Java sources, that is just a convention. But of COURSE, it is so modern to blame Java for everything these days.
- taf2 12y agoBlaming java is nothing new.
- MichaelGG 12y agoI had no idea. Why do so many projects setup these crazy directory trees for source then?
- levosmetalo 12y agoBecause it allows you to have your User.java class in both com.comp.ldap and com.comp.db packages.
- lobster_johnson 12y agoI believe Java will behave sanely with regard to source directories. If you have a file Foo.java declaring itself as "package x.y.z", then it can happily live as "src/Foo.java". It's only when you try to run the thing that the JVM will complain (with the rather unhelpful error message "wrong name: x/y/z/Foo"). So if your build process builds the correct folders and stores the .class files there, it's going to work. (Not that it's very useful; after all, your build system would have to know where to put everything.)
- rem7 12y agoThe fact that we are comparing all of this with java makes me so sad.