Saya telah memprogram selama bertahun-tahun sekarang, bekerja melalui berbagai iterasi dari Blub (BASIC, Assembler, C, C ++, Visual Basic, Java, Ruby tanpa urutan tertentu "Blub-ness") dan saya ingin belajar Pelat. Namun, saya memiliki banyak intertia apa dengan waktu terbatas (keluarga, pekerjaan penuh waktu dll) dan kebahagiaan yang nyaman dengan Blub saya saat ini (Jawa).
Jadi pertanyaan saya adalah ini, mengingat bahwa saya seseorang yang benar-benar ingin belajar Lisp, apa langkah awal untuk mendapatkan hasil yang baik yang menunjukkan keunggulan Lisp dalam pengembangan web ? Mungkin saya tidak mengerti intinya, tapi itulah awalnya saya melihat aplikasi pengetahuan Lisp saya.
Saya berpikir "gunakan dialek A, gunakan IDE B, ikuti instruksi di halaman C, tanyakan kewarasan Anda setelah monad menggunakan konselor D". Saya hanya ingin tahu apa yang orang-orang di sini anggap sebagai seperangkat nilai optimal untuk A, B, C dan mungkin D. Juga beberapa diskusi tentang manfaat relatif dari belajar bahasa yang begitu kuat yang bertentangan dengan, katakanlah, menjadi Rails ahli.
Hanya untuk menambahkan lebih banyak detail, saya akan mengembangkan pada MacOS (atau VM Linux) - tidak ada pendekatan berbasis Windows yang diperlukan, terima kasih.
Catatan untuk mereka yang hanya menjelajah dengan
Saya akan membiarkan pertanyaan ini terbuka untuk sementara waktu sehingga saya dapat memberikan umpan balik pada saran setelah saya dapat menjelajahinya. Jika Anda sedang menjelajah dan merasa ada sesuatu yang ingin ditambahkan, silakan lakukan. Saya akan sangat menyambut umpan balik Anda.
Tautan menarik
Dengan asumsi Anda datang di Lisp dari latar belakang Java, rangkaian tautan ini akan membantu Anda memulai dengan cepat.
- Menggunakan plugin Intellij's La Clojure untuk mengintegrasikan Lisp ( videocast )
- Gangguan untuk Web
- Versi online dari Common Common Lisp (c / o Frank Shearar)
- Tanah Lisp sebuah
(+ (+ very quirky) game based)
cara tapi membuat semua jadi mudah - Instal Clojure dan Sublime 2 pada MacOS sebuah sangat baik panduan memulai
- Lihatlah buku Clojure in Action . Bekerja untukku.
sumber
Jawaban:
Ini mungkin bertentangan dengan rekomendasi kebanyakan orang, tetapi menghindari Emacs untuk memulai, kecuali Anda sudah mengetahuinya. Terutama jika Anda terbiasa dengan IDE / editor modern.
Saya berbicara dari pengalaman; Saya mencoba memulai dengan Emacs, tetapi harus mempelajari bahasa DAN editor pada saat yang sama benar-benar membuat saya frustasi (terutama karena Emacs sangat berbeda dari alat lain). Saya akhirnya membuangnya, memulai dengan Skema PLT (sekarang Racket) yang dilengkapi dengan IDE lintas-platform yang relatif sederhana, repositori paket terpusat dan dokumen yang luar biasa (termasuk tutorial perantara yang khusus ditujukan untuk pengembangan web ). Setelah saya mendapat pegangan bersih pada Lisp, saya akhirnya kembali ke Emacs, mengambil EL / CL dengan cara Praktis Common Lisp dan Panduan Xah Elisp. Pada dasarnya, seperti yang saya lihat, Anda perlu tahu Lisp sebelum Anda dapat menggunakan Emacs secara efektif, dan Anda perlu tahu Emacs agar sangat efektif dengan CL / Elisp. Ini berarti Anda dapat mengambil Skema, atau mempelajari Common Lisp melalui beberapa editor lain terlebih dahulu (mungkin LispWorks pribadi).
Jika Anda sudah tahu Emacs, maka ya Elisp adalah langkah alami (meskipun bagaimana Anda akan menikmati penggunaan Emacs tanpa mengetahui Elisp pertama adalah di luar saya).
YMMV tentu saja, ini hanya membantu saya menemukan.
Karena blub Anda saat ini adalah Jawa, Anda mungkin bisa mendapatkan jarak tempuh yang jauh dari Clojure , Armed Bear, atau Kawa . Saya belum mencoba salah satu dari mereka sendiri, bukan menjadi orang Jawa, tetapi Clojure secara khusus sangat direkomendasikan dari Lispers lain yang saya tahu. Sepertinya kemampuan untuk menjaga VM dan IDE Anda saat ini dapat membantu proses pembelajaran.
sumber
C-x C-c
). Saya suka Emacs mati, dan cukup banyak hidup di dalamnya sekarang, tapi menyadari bahwa pada awalnya, Anda sedang berjuang tahun memori otot memberitahu AndaC-s
adalahSave
, tidakSearch
dan ituUndo
adalahC-z
. Saya tidak akan merekomendasikan frustrasi semacam itu kepada seseorang yang niatnya belajar Lisp. Pelajari bahasa terlebih dahulu, sadarilah bahwa Anda menyukainya, lalu mulailah bertarung dengan tujuan yang jelas.Nah, Anda dapat menabrak dua burung dengan membaca SICP ; Salah satunya adalah belajar LISP (maksud saya skema adalah dialek Lisp) dan yang lainnya adalah wawasan hebat tentang cara memprogram.
sumber
Conrad Barski memiliki tutorial hebat bernama Casting SPELs in Lisp (SPEL adalah akronimnya untuk makro). Ini melibatkan pembuatan game tipe Petualangan sederhana, dan melompat langsung ke Lisp macro. Dia juga telah mengerjakan buku pengantar yang sekarang tersedia di:
Belajarlah memprogram Lisp, satu pertandingan sekaligus .
Dan, dari Daftar Isi:
Saya tidak tahu apa artinya ini untuk pengembangan web (seperti pada halaman HTML) menggunakan Lisp, namun. :)
Pembaruan - Saya melihat seseorang menyebutkan buku "Struktur dan Interpretasi Program Komputer", yang mengingatkan saya bahwa MIT telah online, seluruh Kuliah Video SICP oleh Hal Abelson dan Gerald Jay Sussman . Anda mungkin menemukan buku itu kering, tetapi ceramahnya sangat bagus. Meskipun mereka berbasis Skema, mereka masih dapat melintasi konsep dasar juga di Lisp, dengan sangat baik. Layak diunduh dan ditonton.
sumber
Untuk mendapatkan pengantar dasar yang baik untuk bahasa ini, baca Praktik Umum Lisp Peter Seibel . Buku itu bagus sekali.
Menyiapkan emacs dan SLIME bisa rumit untuk pemula, di mana "rumit" besarnya bervariasi tergantung pada OS Anda. Seperti biasa, Windows mendapatkan akhir yang singkat, tetapi orang telah melakukan bagian yang sulit dan menuliskannya (SBCL, Emacs, SLIME).
Setelah itu keluar dari jalan, Planet Lisp mereferensikan sebuah artikel yang baru - baru ini menggambarkan cara mengatur Hunchentoot dan nginx.
Pengeditan khusus OS: MCLIDE mungkin tempat yang bagus untuk memulai. Saya menginstalnya, tetapi belum memiliki kesempatan untuk benar-benar menggunakannya, jadi saya tidak bisa mengatakan sesuatu yang berguna tentangnya. Jelas terlihat menarik!
Sunting: Eclipse juga memiliki plugin Cusp .
sumber
Sudah banyak jawaban bagus, tetapi dengan asumsi Anda ingin terjun lebih dulu ke pengembangan web dengan Lisp, saya punya beberapa ide lagi.
Clojure adalah Lisp pertama yang saya lihat memiliki kerangka kerja full-stack web yang sangat bagus yang siap untuk prime-time.
Jika Anda tidak menyadarinya, saya baru saja membahas seluruh tumpukan web dan semuanya ditulis dalam Clojure.
Saya menemukan Clojure sedikit lebih mudah untuk memulai dengan Common Lisp, dengan fitur set / dukungan perpustakaan yang jauh lebih baik daripada Skema.
Jika Anda berasal dari latar belakang Java sama sekali, itu memiliki manfaat tambahan untuk menjalankan JVM, yang memberi Anda akses ke seluruh stdlib Java saat Anda membutuhkannya.
Dokumentasi yang tersedia sedang dalam proses, seperti halnya kerangka kerja itu sendiri. Tapi ada tutorial yang cukup bagus di sini.
Sejauh editor pergi ... jika Anda merasa nyaman dengan vim, Anda dapat menggunakan vim dengan SLIMV. Jika Anda suka emacs, emacs / SLIME tidak apa-apa. Ada dukungan Eclipse dan NetBeans yang cukup bagus untuk Clojure (atau begitulah yang saya katakan), tetapi saya biasanya menggunakan TextMate (meskipun Sublime Text 2 dengan cepat menjadi editor pilihan saya). Saya tahu saya kehilangan sedikit sihir Lisp tidak menggunakan lingkungan yang lebih terintegrasi, tapi saya senang menekan ⌘-Tab untuk bertukar antara editor saya dan REPL; jarak tempuh Anda dapat bervariasi.
Jika Anda ingin buku memulai Anda, saya sarankan Programming Clojure oleh Stuart Halloway dan Aaron Bedra. Edisi ke-2 baru saja keluar dari PragProg , jadi ini yang terbaru.
Selamat berdandan!
sumber
Komentator lain, Inaimathi , merekomendasikan buku ini beberapa hari yang lalu: The Little Schemer
Saya menerimanya hari ini dan saya dapat mengatakan sebagai seseorang yang memiliki perpustakaan yang sangat besar dari buku-buku pemrograman yang diperoleh selama bertahun-tahun, bahwa saya mungkin hanya membaca satu bab, tetapi saya pasti akan memerlukan versi bersampul dari ini. Bunyinya seperti Tao Te Ching, banyak potongan kecil kebijaksanaan ilahi mengenai bahasa tersebut. Itu mungkin mengatakan Skema, tetapi pada awalnya disebut "The Little LISPer", bahasa pada tingkat yang dibahasnya cukup mirip untuk diajarkan sebagai satu.
Ini bukan teks yang canggih, tetapi memiliki misi untuk menanamkan prinsip-prinsip bahasa dan untuk apa sebenarnya, bagaimana berpikir seperti itu. Saya percaya ini akan menjadi permulaan yang bagus untuk LISP.
NB. Matriks Kompetensi Programmer sebenarnya menyebutkan buku ini di tingkat atas kompetensi hal-hal yang harus dicari. (lihat bagian Buku)
sumber
Tempat yang sangat bagus untuk mulai menggunakan Lisp ada di dalam editor Emacs, tempat itu dapat digunakan untuk mendefinisikan ulang apa saja. Anda ingin kunci 'e' untuk memasukkan waktu tanggal, cukup tulis cuplikan Lisp kecil untuk menghasilkan string dan ikat ke kunci e. Selesai.
Ini juga akan memungkinkan Anda untuk MENGGUNAKAN apa yang Anda pelajari dalam pengaturan harian, jika Anda menggunakan editor biasa di siang hari.
sumber
Jika Anda akan mengembangkan pada Mac, Anda mungkin ingin mencoba Clozure CL . Muncul dengan IDE yang memiliki penekanan tombol yang kompatibel dengan Emacs, dan ada jembatan ke Objective C sehingga Anda dapat menulis aplikasi Cocoa.
Juga, saya sudah membaca Praktis Common Lisp, tetapi menemukan Lisp Sukses juga bisa membantu.
Akhirnya, kesabaran dari pihak Anda akan dihargai. Produktivitas dan kemenangan kecil akan datang dengan cepat, tetapi kemenangan besar mungkin memakan waktu cukup lama.
sumber
Saya memiliki salinan ANSI Common Lisp di sini dekat meja saya. Saya mengambilnya setiap beberapa tahun dan menyelesaikan beberapa bab, kemudian terjebak pada beberapa latihan dan itu menyelinap daftar prioritas. Itu mungkin memberi tahu Anda lebih banyak tentang saya daripada buku itu. Buku ini tampaknya sepenuhnya kompeten ...
sumber