I pacchetti sulla JVM hanno un compito molto importante: fornire uno spazio dei nomi unico a livello globale per tutte le tue classi. Non importa se scrivi il tuo codice con Scala o Java o Clojure; alla fine tutti vengono compilati in .class
file o archivi JAR. Notare che Scala non è l'Anti-Java, ma l'interoperabilità con Java era un obiettivo di progettazione primario.
Quindi la convenzione di denominazione dei pacchetti si applica non solo a Java ma essenzialmente a qualsiasi cosa che gira su JVM e vuole interoperare con Java. L'utilizzo del Domain Name System come base per i nomi dei pacchetti ti consente di registrare facilmente uno spazio dei nomi unico a livello globale per il tuo codice.
Ho scritto codice in un numero sufficiente di lingue che non presentano convenzioni analoghe e il nome scontro che invariabilmente si presenta è dannatamente noioso. Chi avrebbe mai immaginato che due progetti avrebbero pubblicato il sistema One And Only template
? Chiaramente nessun altro potrebbe scrivere un migliore http
client. In particolare, le convenzioni in C ++, Python, Perl e NodeJS non sono soddisfacenti, mentre Java sorprendentemente ottiene questo diritto.