Hallo,
Nun die Frage: Was ist der Unterschied zwischen einem Package und einem Namespace?
Das hängt letztendlich immer von der Programmiersprache, deren Eigenheiten und letztendlich vom Sprachgebrauch ab. Weitere Bezeichnungen für solche Gruppierungsmechanismen sind auch noch Unit, Modul und eben Bibliothek – es gibt da keine globale einheitliche Abgrenzung. Ein Paket stellt einen eigenen Namensraum zur Kapselung dar, ein Namensraum ist wie ein Paket. Man kann also bei JS, in dem das Konzept explizit nachgebildet werden muss, nicht wirklich etwas falsch machen. Alles, was man Dir anbieten kann, ist eine Bauchmeinung, die auf vergangener Erfahrung bei anderen Programmiersprachen beruht.
In Java heißt es package, in C# heißt es namespace.
In JavaScript ist package ein reserviertes Wort, was nahelegt, dass der Begriff package für JS angebrachter sei.
Ich würde für Deinen JS-Variante aber trotzdem Paket vor Namensraum vorziehen. Warum?
Zum einen, weil Namensraum in Sprachen, die derzeit dieses Konzept benutzen doch einen kleinen Unterschied zum reinen Gruppierungen haben: Man kann gleichzeitig über verschiedene Namen in verschiedenen Namensräumen reden, ohne sie explizit zu qualifizieren. Qualifizierung durch hinzufügen der Namensraum/Paket-Angabe ist erst notwendig, wenn es Konflikte geben könnte. Bei Paketen muss man immer qualifizieren. Ein Paket ist also eher eine Box, in der sich Dinge drin befinden, ein Namensraum ist eher ein zusätzliches Etikett an den Dingen. So ist das bei XML (minus Pakete, natürlich), so bei C# (minus Pakete), es ist ähnlich bei Haskell ...
... und zweites, es wird vielleicht in ECMAScript 4 / JavaScript 2.0 so sein. Denn – mal abgesehen von der Frage, ob sich das wirklich mal im Open Web finden wird – dieses kennt Packages, Units und eben auch Namespaces, die man nicht zwangsläufig immer direkt qualifizieren muss. (<http://www.ecmascript.org/es4/spec/overview.pdf@title?PDF zum Querlesen>) Im Sinne von ES4 ist Dein Kapselungsmechanismus eher Paket. Ich fände es nett, wenn die Terminologie ähnlich würde, wenn es denn mal kommt.
Tim