Java Menghapuskan "public static void main" yang Terkenal Rumit dengan Titik Masuk Baharu yang Dipermudah

Pasukan Komuniti BigGo
Java Menghapuskan "public static void main" yang Terkenal Rumit dengan Titik Masuk Baharu yang Dipermudah

Java akhirnya menangani salah satu aspek yang paling dikritik - titik masuk yang bertele-tele dan mengelirukan yang telah menyusahkan pemula selama beberapa dekad. Dengan pengenalan JEP 445 ( Unnamed Classes and Instance Main Methods ) dalam Java 21 dan JEP 512 dalam Java 25 , pembangun kini boleh menulis program mudah tanpa deklarasi tradisional public static void main(String[] args) yang telah menjadi sumber kekecewaan sejak hari-hari awal bahasa ini.

Perubahan ini mewakili peralihan ketara dalam pendekatan Java terhadap pengaturcaraan yang mesra pemula. Daripada memerlukan pelajar menghafal apa yang dipanggil jampi serapah oleh ramai orang, program Java baharu kini boleh bermula dengan fungsi void main() yang mudah, menghapuskan keperluan untuk memahami kelas, kaedah statik, dan pengubah suai akses sebelum menulis baris kod pertama mereka.

Evolusi Titik Masuk Java

Sintaks Tradisional (Java 1.0-20):

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("What is your name? ");
        String name = scanner.nextLine();
        System.out.println("Hello, " + name);
    }
}

Sintaks Dipermudah Baharu (Java 21+):

void main() {
    var name = IO.readln("What is your name? ");
    IO.println("Hello, " + name);
}

Kesan Terhadap Pendidikan

Komuniti pendidikan pengaturcaraan telah lama bergelut dengan titik masuk Java yang bertele-tele. Ramai pengajar mendapati diri mereka memberitahu pelajar untuk mengabaikan bahagian ini buat masa ini ketika mengajar konsep pengaturcaraan pengenalan. Ini mewujudkan pengalaman pembelajaran yang janggal di mana pelajar terpaksa menerima kod boilerplate misteri tanpa memahami tujuannya.

Sintaks dipermudah baharu ini menangani cabaran pedagogi ini secara langsung. Pelajar kini boleh menumpukan pada konsep pengaturcaraan teras seperti pembolehubah, gelung, dan input/output asas tanpa terharu-biru dengan konsep berorientasikan objek yang mereka belum bersedia untuk memahami. Perubahan ini meletakkan Java lebih sejajar dengan bahasa seperti Python dan Ruby yang secara tradisinya digemari untuk kursus pengaturcaraan pengenalan.

Pelaksanaan Teknikal dan Batasan

Walaupun sintaks dipermudah, Java tidak meninggalkan akar berorientasikan objeknya sepenuhnya. Pendekatan baharu ini menggunakan kelas tanpa nama - pada dasarnya pembungkus kelas tersirat yang dijana oleh pengkompil di belakang tabir. Apabila anda menulis fungsi void main() yang mudah, pengkompil Java masih mencipta struktur kelas tradisional, tetapi menyembunyikan kerumitan ini daripada pembangun.

Walau bagaimanapun, ciri ini datang dengan batasan penting. Sintaks dipermudah hanya berfungsi untuk program fail tunggal dan tidak boleh digunakan dalam aplikasi berbilang kelas yang lebih besar. Selain itu, walaupun anda boleh mentakrifkan fungsi peringkat atas lain bersama main, program ini masih tidak boleh diimport atau dirujuk dari fail Java lain, menjadikan ini terutamanya alat untuk pembelajaran dan skrip mudah berbanding pembangunan produksi.

Cadangan Peningkatan Java (JEPs) Utama

  • JEP 445: Kelas Tanpa Nama dan Kaedah Main Instans ( Java 21 )
  • JEP 512: Deklarasi Import Modul ( Java 25 )
  • JEP 511: Peningkatan tambahan import modul

Had Sintaks Baharu:

  • Hanya berfungsi untuk program fail tunggal
  • Tidak boleh diimport oleh fail Java lain
  • Terutamanya bertujuan untuk pembelajaran dan skrip ringkas
  • Sintaks tradisional masih diperlukan untuk aplikasi berbilang kelas

Sambutan Komuniti dan Implikasi yang Lebih Luas

Respons komuniti pengaturcaraan adalah bercampur-campur tetapi secara amnya positif. Ramai pembangun menyatakan kelegaan akhirnya melihat Java menangani apa yang mereka anggap sebagai halangan yang tidak perlu untuk masuk. Sesetengah melihat perubahan ini sebagai sebahagian daripada evolusi Java yang lebih luas ke arah menjadi lebih mesra pembangun, berikutan penambahan ciri seperti ungkapan lambda, kata kunci var, dan records dalam tahun-tahun kebelakangan ini.

Boilerplate itu agak membantu ketika saya mula belajar... tetapi itu hanya Stockholm Syndrome . Fikirkan tentang ini: sampah gila apa lagi yang boleh anda tambah yang tidak berguna untuk pemula tetapi 'akan masuk akal kemudian'?

Pengkritik berhujah bahawa perubahan ini hanya mewakili penambahbaikan peringkat permukaan dan tidak menangani isu budaya Java yang lebih mendalam mengenai over-engineering dan abstraksi berlebihan. Yang lain bimbang bahawa menyembunyikan struktur kelas mungkin mengelirukan pelajar apabila mereka akhirnya perlu memahami sifat berorientasikan objek Java untuk pembangunan dunia sebenar.

Melihat ke Hadapan

Penyederhanaan ini mencerminkan usaha berterusan Java untuk kekal relevan dalam landskap bahasa pengaturcaraan yang semakin kompetitif. Bahasa seperti Kotlin , Scala , dan juga versi baharu C# telah menawarkan sintaks yang lebih ringkas selama bertahun-tahun, memberikan tekanan kepada Java untuk memodenkan pendekatannya.

Walaupun sintaks tradisional public static void main(String[] args) kekal disokong sepenuhnya untuk keserasian ke belakang, titik masuk dipermudah baharu mewakili peralihan falsafah ke arah menjadikan Java lebih mudah diakses oleh pendatang baharu sambil mengekalkan keupayaan gred perusahaan untuk pembangun berpengalaman.

Perubahan ini mungkin kelihatan kecil, tetapi bagi berjuta-juta pelajar yang akan menghadapi Java sebagai bahasa pengaturcaraan pertama mereka, ia menghilangkan halangan awal yang ketara dan membolehkan mereka menumpukan pada pembelajaran asas pengaturcaraan berbanding menghafal jampi serapah yang samar-samar.

Rujukan: public static void main(String[] args) is dead