Apakah LISP masih dipraktekkan / digunakan di dunia saat ini, atau apakah itu bahasa warisan
Ya, memang, tetapi Anda harus tahu ke mana harus mencari. Orang-orang yang menggunakan LISP cenderung tidak berteriak terlalu keras tentang hal itu tetapi ada beberapa contoh dari beberapa startup profil tinggi yang menggunakannya untuk efek besar selama 20 tahun terakhir. Ini juga sangat populer di perusahaan kecil di Eropa.
Apa dialek yang paling banyak digunakan?
Ini adalah pertanyaan yang valid, tetapi tidak mudah dijawab. Mungkin juga bukan jawaban yang sangat berguna untuk dijawab: banyak implementasi yang memiliki fokus khusus sehingga lebih baik dipilih jika cocok dengan masalah khusus Anda daripada didasarkan pada seberapa luas ia digunakan. Sebagai gantinya, saya akan memberi tahu Anda sedikit tentang opsi Anda dan Anda dapat memutuskannya sendiri.
LISP adalah kumpulan bahasa dan masing-masing bahasa tersebut memiliki keluarga dialek dan implementasi. Secara luas dialek jatuh ke dalam dua kubu "LISP" dan "Skema".
LISP: Hingga relatif baru, LISP Umum adalah raja. Itu adalah upaya untuk menyatukan semua LISP yang berbeda dan, tanpa bersikap jahat, adalah "C ++" dari LISP. Dengan kata lain, itu adalah bahasa BESAR . Itu memiliki segalanya. Selama beberapa tahun terakhir, Clojure telah muncul. Clojure adalah LISP yang berjalan pada Java Virtual Machine dan mencoba untuk membasmi dirinya dalam filosofi pemrograman fungsional. Secara tradisional, LISP lain telah benar-benar multi-paradigma. Clojure menarik karena ia mendapatkan yang terbaik dan yang terburuk dari LISP dan JVM. Masih banyak bertele-tele dari bahasa berbasis Java dan mereka sudah cukup gratis dan mudah dengan sintaks sehingga memiliki banyak tombol-tombol dan tombol untuk hal-hal yang berbeda, tapi mereka punya beberapa benar-benaride-ide menarik di sekitar tipe data, terutama beberapa cara praktis yang mereka buat untuk menerapkan ide-ide dari pemrograman fungsional.
Skema: Skema adalah subset ketat dari LISP. Skema ditemukan oleh Steele dan Sussman dan pada awal kehidupannya terkenal karena digunakan dalam Kursus Kuliah Komputasi 101 MIT. Skema didefinisikan dalam "Laporan Revisi Skema Bahasa Algoritmik (RnRS)". Ya: mereka punya lelucon matematika di sana. Skema adalah bahasa yang distandarisasi dengan cara yang tidak dimiliki LISP lain. Ini sangat membantu dengan portabilitas di antara implementasi, tapi itu bukan peluru perak. Upaya standardisasi cenderung konservatif dan inovasi dalam implementasi, terutama seputar hal-hal seperti modul, cenderung berbeda. Ada juga serangkaian SRFI (Skema Permintaan Implementasi) yang mirip dengan proses RFC IETF. Orang menggunakannya untuk membakukan hal-hal kecil sesuai kebutuhan.
Skema berbeda dari LISP bahwa mereka memiliki seperangkat persyaratan keras yang harus mereka penuhi, salah satunya adalah "optimasi panggilan ekor" yang membantu membuat rekursi menjadi efisien. Oleh karena itu, gaya pemrograman rekursif jauh lebih populer di Skema daripada di LISP. Skema itu, juga tanpa menjadi tidak ramah, seperti "C" dari LISP. Dengan kata lain, ini adalah bahasa yang kecil dan Anda seharusnya bisa menyimpan semua itu di kepala Anda sekaligus.
Saat ini ada dua keluarga Skema: Yang didasarkan pada versi ke-5 (R5RS) dan yang berdasarkan pada versi ke-6 (R6RS). Kompleksitas R6RS jauh lebih besar daripada para pendahulunya dan begitu banyak implementasi R5RS telah memilih untuk melewatinya, berharap R7RS akan lebih mirip dengan R5RS daripada R6RS. Proses standardisasi R7RS saat ini sedang berlangsung dan telah mencoba untuk memasukkan baik keinginan pelaksana R5RS maupun orang-orang dari R6RS dengan membakukan bahasa dasar kecil dalam kelompok kerja pertama mereka dan kemudian menugaskan kelompok kerja kedua untuk menstandarisasi fitur yang lebih besar. Ini akan memungkinkan bahasa untuk memiliki implementasi yang efisien dan berguna pada kedua perangkat keras tertanam kecil serta mesin yang lebih mampu.
Sekarang saya akan lebih spesifik:
PicoLisp adalah LISP yang benar-benar keren. Itu kecil! Penulisnya menulis untuk dirinya sendiri dan, seperti yang saya mengerti, dia mencari nafkah sejak 1980-an. Jika Anda pernah mendapat kesempatan untuk menghadiri ceramah olehnya maka Anda harus melakukannya: dia benar-benar menarik dan benar-benar tahu barang-barangnya dan Anda bahkan tidak akan mendapatkan bau terkecil dari apa pun yang mainstream atau membosankan.
Saya tidak terbiasa dengan implementasi Common Lisp jadi saya tidak akan berkomentar lebih jauh tentangnya.
Tipu daya adalah Skema GNU resmi.
Racket adalah skema R6RS tetapi akhir-akhir ini kelihatannya telah memperluas jaringan dan mencoba "untuk melayani sebagai platform untuk penciptaan, desain, dan implementasi bahasa."
Ayam bertujuan untuk menjadi Skema praktis. Ini didasarkan pada R5RS dan dikompilasi ke C. Ini ternyata menjadi keuntungan yang sangat, sangat, penting karena membuatnya sangat sepele untuk menggunakan perpustakaan C yang ada. Oleh karena itu Chicken mungkin merupakan skema yang paling berguna untuk mengganti Perl, Python, Ruby, dll, sebagai bahasa skrip Anda sehari-hari. Ada beberapa orang yang telah menggunakannya secara eksklusif untuk semua kebutuhan mereka selama beberapa tahun. Ini memiliki REPL interaktif serta kompiler. Komunitas (baik di milis dan IRC) berpengetahuan luas, ramah dan membantu.
Cari implementasi dengan banyak modul: ini menunjukkan bahwa itu dapat digunakan secara luas dan berarti kemungkinan memiliki sesuatu yang membantu dengan tugas yang ada.
Cari implementasi dengan kompiler atau, paling tidak, sesuatu yang tidak sepenuhnya berbasis IDE atau REPL. Banyak implementasi yang dirancang untuk pengajaran sangat sulit digunakan untuk penulisan tujuan umum.
Saya akan merekomendasikan Chicken karena itulah yang saya gunakan. Saya telah menggunakannya dalam proyek pribadi saya dan saya telah menggunakannya (dan saat ini menggunakannya) secara profesional.
Saya tidak ingin menginvestasikan upaya yang tidak semestinya dalam sesuatu jika benar-benar usang - saya masih akan mempelajarinya jika itu secara profesional "mati", tetapi hanya dengan perspektif akademis ...
Skema tidak mati secara profesional, tetapi Anda mungkin harus berusaha keras untuk menggunakannya dalam konteks itu. Sesuatu seperti Chicken jauh lebih dari sekedar pengejaran akademis dan dapat dengan mudah mencakup hampir semua basis bahasa tingkat tinggi apa pun yang saat ini Anda gunakan.