kevin-wayne / algs4

Algorithms, 4th edition textbook code and libraries
http://algs4.cs.princeton.edu/code/
GNU General Public License v3.0
7.41k stars 2.68k forks source link

Separate .java files into packages according #19

Open nbro opened 7 years ago

nbro commented 7 years ago

Hi!

I was wondering if it wouldn't be better to separate the .java files into packages corresponding to specific topics (like searching, graphs, etc) instead of having all of them into a single folder/package.

kevin-wayne commented 7 years ago

Yes, we did consider organizing by chapter (and, in hindsight, probably should have done that). When it started it out, algs4.jar had only a dozen or os classes, so subpackages seemed like overkill. At this point, changing the structure would break alot of code, so we are hesitant to do so (but maybe it is still worth it).

Best, Kevin

On Jan 1, 2017, at 4:07 PM, Nelson Brochado notifications@github.com wrote:

Hi!

I was wondering if it wouldn't be better to separate the .java files into packages corresponding to specific topics (like searching, graphs, etc) instead of having all of them into a single folder/package.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or mute the thread.

Kevin Wayne Phillip Y. Goldman '86 Senior Lecturer Department of Computer Science Princeton University

marioplumbarius commented 7 years ago

What if we release a new version and use semver to make it possible to the users to choose which version to use?

We could advise new users to choose the latest released version and it would also be compatible with old versions.

asarkar commented 6 years ago

Speaking of semver, perhaps it'd make more sense if the versioning for 4th ed started from 4.0.0, instead of 1.x.y. Doing so would allow repackaging too. Although my suggestion wouldn't break existing code, I don't see a problem even if it did. We are talking about people using the JAR for learning, and the authors have no obligation to maintain backward compatibility.