Java 9 akan memiliki modul selain paket. Biasanya bahasa memiliki satu atau yang lain. Dan sebagian besar programmer menganggap dua istilah sebagai sinonim. Modul dibangun di atas paket, memperlakukannya sebagai primitif. Pola komposit menyarankan untuk memperlakukan primitif dan komposit secara seragam. Kalau tidak, hal-hal buruk akan terjadi. Misalnya, lihat proyek Valhalla, di mana mereka mencoba untuk menyesuaikan jenis umum untuk tipe primitif (nilai) dan referensi.
Apakah modul dan paket mewakili gagasan yang terpisah secara semantik? Berarti masuk akal memiliki keduanya untuk bahasa apa pun (pemisahan kekhawatiran). Atau Java harus memiliki keduanya sebagai penghargaan untuk kompatibilitas?
Mengapa memperkenalkan konsep baru alih-alih menambah yang sudah ada?
JSR 376 : "sistem modul platform Java" diimplementasikan dalam Jigsaw proyek .
Menurut SOTMS
Modul adalah kumpulan kode dan data yang diberi nama dan menggambarkan dirinya sendiri. Kodenya diatur sebagai seperangkat paket yang berisi tipe, yaitu kelas dan antarmuka Java; datanya mencakup sumber daya dan jenis informasi statis lainnya.
JLS dengan hati-hati menghindari mendefinisikan apa itu paket . Dari Wikipedia :
Paket Java adalah teknik untuk mengatur kelas Java ke dalam ruang nama yang mirip dengan modul Modula, menyediakan pemrograman modular di Jawa.
Saya tahu bahwa mengutip Wikipedia adalah praktik yang buruk, tetapi mencerminkan pemahaman bersama. Dari entri pada pemrograman modular:
Paket istilah kadang-kadang digunakan sebagai ganti modul (seperti di Dart, Go, atau Java). Dalam implementasi lain, ini adalah konsep yang berbeda; dalam Python paket adalah kumpulan modul, sementara di Java 9 yang akan datang diperkenalkan konsep modul baru (kumpulan paket dengan kontrol akses yang ditingkatkan) direncanakan.
package
/ tidak / berarti, juga tidak akan berubah menjadi (mari kita hadapi itu, cukup mengerikan) sistem classpath di JRE. Pertanyaan # 2 Saya merasa terutama berorientasi pada pendapat (itu bisa dijawab , tetapi jawaban saya dan orang lain mungkin berbeda dan kita berdua tidak akan salah).
jigsaw
modul-gaya hanya peningkatan teknis atas paket? 3) (jika bukan 1 dan jika 2), Java sederhana (atau tampaknya) menjaga kedua konsep untuk kompatibilitas mundur. Beberapa dari pertanyaan ini dapat dijawab, beberapa di antaranya berorientasi pada pendapat. Saya pikir suntingan yang menyederhanakan klarifikasi yang dicari ada di sini.