Perl adalah bahasa pemrograman dinamis tingkat tinggi, bertujuan umum, multi-paradigma, ditafsirkan. Java adalah bahasa pemrograman tingkat tinggi, bertujuan umum, sebagian besar paradigma tunggal, tipe statis.
Jadi, keduanya tingkat tinggi :
Bahasa pemrograman tingkat tinggi adalah bahasa pemrograman dengan abstraksi yang kuat dari perincian komputer.
dan tujuan umum :
Dalam perangkat lunak komputer, bahasa pemrograman tujuan umum (GPL) adalah bahasa pemrograman yang dirancang untuk digunakan untuk menulis perangkat lunak di berbagai domain aplikasi.
Pada dasarnya ini berarti bahwa semua yang dapat Anda lakukan dengan Perl, Anda juga dapat melakukannya dengan Java. Dan seperti @KyleHodgson menyebutkan , kedua sintaks mereka berasal dari C dan C ++ dan sintaks untuk hal-hal sederhana seperti for
loop dan if
pernyataan pada dasarnya sama - dan seperti catatan @DipanMehta , keduanya dikumpulkan dari sampah . Dan tentu saja keduanya sangat populer dan memiliki komunitas yang hidup.
Tapi di situlah kesamaan berhenti. Perl adalah multi-paradigma, mendukung berbagai paradigma pemrograman:
Perl tidak mendorong satu paradigma tunggal, mereka pada dasarnya sama dan Anda bebas memilih mana yang menurut Anda paling sesuai dengan apa pun yang Anda bangun, tanpa tentu saja membatasi Anda pada satu paradigma tunggal, Anda dapat mencampur dan mencocokkan. Di sisi lain, Java sebagian besar bahasa berorientasi objek berbasis kelas. Ada dukungan untuk pemrograman generik, tetapi sebagai pemula, Anda harus menganggap Java sebagai bahasa berorientasi objek berbasis kelas.
Jadi Perl memungkinkan lebih dari satu cara untuk menyusun kode 1 Anda , sedangkan Java hanya satu. Itu bukan hal yang buruk (atau hal yang baik), hanya saja berbeda. Jika Anda belum menulis kode Perl yang berorientasi objek, Java mungkin tampak agak asing pada awalnya. Jangan berkecil hati, orientasi objek adalah sesuatu yang pada akhirnya harus Anda pelajari, jika Anda mempertimbangkan karier dalam pengembangan perangkat lunak, dan belajar Java adalah cara yang baik untuk mempelajari konsep dasar orientasi objek - bukan cara yang sempurna, tetapi pasti cara yang bagus.
Dan seperti yang Anda tahu, Perl ditafsirkan, sedangkan Java adalah ... yah ... binatang yang sama sekali berbeda . Di Jawa, Anda menulis kode seperti di Perl, lalu mengompilasinya . Hasilnya bukan executable, tetapi bytecode Java . Format perantara ini dijalankan (akhirnya!) Di Java Virtual Machine , yang agak analog dengan penerjemah Perl. JVM harus diinstal terlebih dahulu agar program Java dapat berjalan, secara bersamaan tentang bagaimana Anda perlu menginstal penerjemah Perl untuk menjalankan skrip Perl 2 .
Berasal dari latar belakang Perl, hal yang paling penting untuk diingat adalah kompilasi ke langkah bytecode: Setiap kali Anda membuat perubahan ke file sumber Java Anda perlu mengkompilasi ulang. Mungkin terdengar gila pada awalnya, tetapi kompilasi memiliki konsekuensi yang sangat bagus: Kode Anda diperiksa untuk berbagai kesalahan pada tahap ini, dan kompiler menolak untuk menyelesaikan proses jika ada, dan kadang-kadang akan membantu Anda menentukan kesalahan dengan pesan yang membantu (Selalu ada pesan, tetapi hanya kadang-kadang mereka membantu).
Yang membawa kita ke perbedaan besar terakhir:
Perl dinamis 3 :
Bahasa pemrograman dinamis adalah istilah yang digunakan secara luas dalam ilmu komputer untuk menggambarkan kelas bahasa pemrograman tingkat tinggi yang mengeksekusi pada runtime banyak perilaku umum yang mungkin dilakukan oleh bahasa lain selama kompilasi, jika sama sekali. Perilaku ini dapat mencakup ekstensi program, dengan menambahkan kode baru, dengan memperluas objek dan definisi, atau dengan memodifikasi sistem tipe, semua selama eksekusi program.
dan secara dinamis mengetik 4 :
Bahasa pemrograman dikatakan diketik secara dinamis ketika mayoritas pemeriksaan tipenya dilakukan pada saat run-time sebagai lawan pada saat kompilasi.
dan Java diketik secara statis :
Bahasa pemrograman dikatakan menggunakan pengetikan statis ketika pengecekan tipe dilakukan selama waktu kompilasi dan bukan waktu berjalan.
Yang, untuk membuatnya sesederhana mungkin, berarti di Jawa Anda harus mendeklarasikan jenis variabel dan metode Anda sebelum menggunakannya. Ada perbedaan lain, tetapi saya tidak ingin merusak kesenangan menemukan mereka sendiri :)
Dan, akhirnya, ada satu perbedaan yang sangat penting: Jawa adalah bahasa yang manis bagi akademisi 5 dan dunia usaha, sementara Anda jarang bertemu Perl dalam lingkungan akademis lagi (tempat saya pertama kali bertemu dengannya), dan perspektif kariernya menyusut. (masih beberapa pekerjaan, tapi tidak ada yang dekat dengan Java, .Net bahasa atau PHP). Saya tidak akan mengomentari alasannya, saya hanya menyatakan fakta (sedih). Karena Anda masih sangat muda, dengan mempelajari Java Anda akan sedikit lebih siap untuk gelar Ilmu Komputer, jika Anda memilih untuk mengikuti jalan itu.
Jangan menyerah pada Perl, tentu saja, tetapi menjelajahi Jawa. Fakta bahwa mereka lebih berbeda daripada yang serupa juga berarti bahwa Anda akan mempelajari pendekatan dan mentalitas pemrograman yang sangat berbeda, itu adalah jalan yang sulit tetapi yang pada akhirnya akan menjadikan Anda seorang programmer yang lebih baik.
1 "Tim Toady"
2 Komunitas Perl secara aktif menjelajahi kemungkinan mesin virtual Perl, melalui Parrot .
3 Dinamis tidak selalu berarti diketik secara dinamis.
4 Perl secara dinamis diketik untuk tipe yang ditentukan pengguna, diketik secara statis berkenaan dengan array yang membedakan, hash, skalar, dan subrutin, dan sangat diketik melalui use strict
, jadi pada dasarnya ini adalah bahasa sistem tipe variabel, tetapi untuk menjaga kewarasan, sebut saja secara dinamis sebut saja secara dinamis diketik.
5 Sampai pada titik pelecehan, seperti yang ditulis Joel Spolsky di The Perils of JavaSchools .