Java 9 avrà moduli oltre ai pacchetti. Di solito le lingue hanno l'una o l'altra. E la maggior parte dei programmatori percepisce due termini come sinonimi. I moduli sono costruiti sopra i pacchetti, trattandoli come primitivi. Il modello composito suggerisce di trattare in modo uniforme primitivi e compositi. Altrimenti succederanno cose brutte. Ad esempio, guarda il progetto Valhalla, in cui cercano di aggiornare il supertipo comune per i tipi primitivi (valore) e di riferimento.
I moduli e i pacchetti rappresentano nozioni semanticamente separate? Significa che è ragionevole avere entrambi per qualsiasi lingua (separazione delle preoccupazioni). O Java deve avere entrambi come omaggio alla retrocompatibilità?
Perché introdurre un nuovo concetto invece di aumentare quello esistente?
JSR 376 : "Sistema modulo piattaforma Java" implementato all'interno del progetto Jigsaw .
Secondo SOTMS
Un modulo è una raccolta denominata e auto-descrittiva di codice e dati. Il suo codice è organizzato come un insieme di pacchetti contenenti tipi, ovvero classi e interfacce Java; i suoi dati includono risorse e altri tipi di informazioni statiche.
JLS evita accuratamente di definire cosa sia un pacchetto . Da Wikipedia :
Un pacchetto Java è una tecnica per organizzare le classi Java in spazi dei nomi simili ai moduli di Modula, fornendo una programmazione modulare in Java.
So che citare Wikipedia è una cattiva pratica, ma riflette una comprensione comune. Dalla voce sulla programmazione modulare:
Il termine pacchetto viene talvolta utilizzato al posto del modulo (come in Dart, Go o Java). In altre implementazioni, questo è un concetto distinto; in Python un pacchetto è una raccolta di moduli, mentre nell'imminente Java 9 è prevista l'introduzione del nuovo concetto di modulo (una raccolta di pacchetti con controllo di accesso avanzato).
package
è / fa / significa, né cambierà (diciamocelo, piuttosto orribile) i sistemi di percorsi di classe in JRE. Domanda n. 2 Penso che sia principalmente orientato all'opinione (è responsabile , ma la mia risposta e quella di qualcun altro potrebbero essere diverse e nessuno di noi avrebbe necessariamente torto).
jigsaw
moduli in stile sono solo un miglioramento tecnico rispetto ai pacchetti? 3) (se non 1 e se 2), Java semplicemente (o apparentemente) mantiene entrambi i concetti per la retrocompatibilità. Alcune di queste domande sono rispondenti, altre sono principalmente orientate all'opinione pubblica. Penso che una modifica che semplifichi i chiarimenti richiesti sia qui.