LISP ยังคงฝึกฝน / ใช้ในโลกปัจจุบันหรือเป็นภาษาดั้งเดิม
ใช่มันเป็น แต่คุณต้องรู้ว่าจะดู คนที่ใช้ LISP มักจะไม่ตะโกนดังเกินไป แต่มีตัวอย่างจำนวนหนึ่งของ startups ที่มีชื่อเสียงจำนวนมากที่ใช้มันเพื่อผลที่ดีในช่วง 20 ปีที่ผ่านมา นอกจากนี้ยังเป็นที่นิยมใน บริษัท ขนาดเล็กในยุโรป
ภาษาที่ใช้กันมากที่สุดคืออะไร?
นี่เป็นคำถามที่ถูกต้อง แต่ไม่ใช่คำตอบที่ง่าย มันอาจจะไม่ใช่คำตอบที่มีประโยชน์โดยเฉพาะอย่างยิ่ง: การใช้งานจำนวนมากมีการมุ่งเน้นเฉพาะดังนั้นจะเลือกที่ดีที่สุดหากพวกเขาเหมาะสมกับปัญหาเฉพาะของคุณมากกว่าตามการใช้งานอย่างกว้างขวาง ฉันจะบอกคุณเล็กน้อยเกี่ยวกับตัวเลือกของคุณและคุณสามารถตัดสินใจได้ด้วยตัวเอง
LISP เป็นตระกูลของภาษาและแต่ละภาษาเหล่านั้นมีตระกูลของภาษาถิ่นและการใช้งาน ภาษาถิ่นกว้างตกอยู่ในสองค่าย "LISPs" และ "Schemes"
LISP: จนกระทั่งเมื่อไม่นานมานี้ LISP ทั่วไปเป็นราชา มันเป็นความพยายามที่จะรวม LISP ที่ต่างกันทั้งหมดและโดยปราศจากความเมตตาเป็น "C ++" ของ LISP กล่าวคือมันเป็นภาษาที่ยิ่งใหญ่ มันมีทุกอย่าง ในช่วงไม่กี่ปีที่ผ่านมา Clojure ปรากฏตัวขึ้น Clojure เป็น LISP ที่ทำงานบน Java Virtual Machine และพยายามที่จะรูทตัวเองในปรัชญาการเขียนโปรแกรมการทำงาน ตามเนื้อผ้า LISP อื่น ๆ เป็นกระบวนทัศน์หลายอย่างเคร่งครัด Clojure น่าสนใจเพราะมันได้ทั้งดีที่สุดและแย่ที่สุดของ LISP และ JVM ยังคงมีความละเอียดมากมายของภาษาที่ใช้ Java และพวกเขาได้ฟรีและค่อนข้างง่ายด้วยไวยากรณ์เพื่อให้มี knobs และปุ่มมากมายสำหรับสิ่งที่แตกต่างกัน แต่พวกเขามีบางอย่างจริงๆแนวคิดที่น่าสนใจเกี่ยวกับประเภทข้อมูลโดยเฉพาะอย่างยิ่งวิธีการปฏิบัติที่พวกเขาคิดขึ้นมาเพื่อประยุกต์ใช้แนวคิดจากการเขียนโปรแกรมเชิงหน้าที่
แบบแผน: แบบแผนเป็นส่วนย่อยที่เข้มงวดของ LISP Scheme ถูกคิดค้นโดย Steele และ Sussman และในวัยเด็กมีความโดดเด่นในการใช้ใน MIT Computing 101 Lecture Course โครงการถูกกำหนดใน "แก้ไข ^ n รายงานเกี่ยวกับโครงการภาษาอัลกอริทึม (RnRS)" ใช่: พวกเขามีคณิตศาสตร์ตลกอยู่ที่นั่น Scheme เป็นภาษาที่ได้มาตรฐานในแบบที่ LISP อื่นไม่ใช่ สิ่งนี้ช่วยได้อย่างมากกับการพกพาระหว่างการนำไปใช้งาน แต่มันไม่ใช่ bullet เงิน ความพยายามในการสร้างมาตรฐานมีแนวโน้มที่จะอนุรักษ์นิยมและมีนวัตกรรมในการใช้งานโดยเฉพาะอย่างยิ่งสิ่งต่าง ๆ เช่นโมดูลมีแนวโน้มที่จะแตกต่างกัน นอกจากนี้ยังมีชุด SRFIs (Scheme Requests For Implementation) ซึ่งคล้ายกับกระบวนการ RFC ของ IETF ผู้คนใช้มันเพื่อสร้างมาตรฐานของสิ่งเล็ก ๆ น้อย ๆ ตามต้องการ
แบบแผนแตกต่างจาก LISP ที่พวกเขามีชุดของข้อกำหนดที่ยากที่พวกเขาต้องพึงพอใจซึ่งหนึ่งในนั้นคือ "การเพิ่มประสิทธิภาพการโทรหาง" ซึ่งจะช่วยให้การเรียกซ้ำมีประสิทธิภาพ ดังนั้นรูปแบบการเขียนโปรแกรมแบบเรียกซ้ำจึงเป็นที่นิยมใน Scheme มากกว่า LISP โครงการคือยังไม่มีความเมตตาเช่น "C" ของ LISP กล่าวคือเป็นภาษาเล็ก ๆ และคุณควรจะเก็บมันไว้ในหัวของคุณทันที
ปัจจุบันมีครอบครัวโครงการสองครอบครัว: ครอบครัวที่มีพื้นฐานมาจากรุ่นที่ 5 (R5RS) และครอบครัวที่อยู่ในรุ่นที่ 6 (R6RS) ความซับซ้อนของ R6RS นั้นยิ่งใหญ่กว่ารุ่นก่อน ๆ และการใช้งาน R5RS จำนวนมากเลือกที่จะข้ามมันไปหวังว่า R7RS จะคล้ายกับ R5RS มากกว่า R6RS กระบวนการกำหนดมาตรฐาน R7RS กำลังดำเนินการอย่างต่อเนื่องและได้พยายามรวมความต้องการของผู้ใช้งาน R5RS รวมถึงความต้องการของผู้ใช้ R6RS โดยสร้างมาตรฐานภาษาฐานขนาดเล็กในคณะทำงานชุดแรกจากนั้นมอบหมายคณะทำงานชุดที่สอง สิ่งนี้จะช่วยให้ภาษามีการใช้งานที่มีประสิทธิภาพและมีประโยชน์บนฮาร์ดแวร์ฝังตัวเล็ก ๆ รวมทั้งเครื่องจักรที่มีความสามารถมากขึ้น
ตอนนี้ฉันจะเฉพาะเจาะจงมากขึ้น:
PicoLisp เป็น LISP ที่ยอดเยี่ยมจริงๆ มันเล็กมาก! ผู้เขียนเขียนมันเพื่อตัวเองและอย่างที่ฉันเข้าใจเขาก็ทำมาหากินตั้งแต่ปี 1980 หากคุณเคยได้รับโอกาสเข้าร่วมพูดคุยจากเขาคุณควรทำ: เขาน่าสนใจจริงๆและรู้จักสิ่งของของเขามากและคุณจะไม่ได้สูดดมสิ่งที่สำคัญหรือน่าเบื่อแม้แต่น้อยที่สุด
ฉันไม่คุ้นเคยกับการใช้งาน Common LISP ดังนั้นฉันจะไม่แสดงความคิดเห็นเพิ่มเติมกับพวกเขา
Guile เป็นโครงการ GNU อย่างเป็นทางการ
แร็กเก็ตเป็นรูปแบบของ R6RS แต่เมื่อเร็ว ๆ นี้ดูเหมือนว่ามันจะขยายเครือข่ายและพยายามที่จะ "ทำหน้าที่เป็นแพลตฟอร์มสำหรับการสร้างภาษาการออกแบบและการใช้งาน"
ไก่มุ่งมั่นที่จะเป็นโครงการปฏิบัติ มันขึ้นอยู่กับ R5RS และคอมไพล์ลงไปที่ C สิ่งนี้กลายเป็นข้อได้เปรียบที่สำคัญจริงๆและสำคัญมากเพราะมันทำให้การใช้ไลบรารี่ C มีอยู่จริง ๆ ดังนั้น Chicken น่าจะเป็นโครงร่างที่มีประโยชน์ที่สุดสำหรับการแทนที่ Perl, Python, Ruby และอื่น ๆ เป็นภาษาสคริปต์ประจำวันของคุณ มีหลายคนที่ใช้มันเพื่อความต้องการของพวกเขาทั้งหมดเป็นเวลาหลายปี มันมี REPL เชิงโต้ตอบเช่นเดียวกับคอมไพเลอร์ ชุมชน (ทั้งในรายชื่อผู้รับจดหมายและ IRC) มีความรู้เป็นมิตรและเป็นประโยชน์
ค้นหาการนำไปใช้งานด้วยโมดูลจำนวนมาก: นี่แสดงให้เห็นว่าสามารถใช้งานได้อย่างกว้างขวางและหมายความว่ามีแนวโน้มที่จะมีบางอย่างที่ช่วยให้ทำงานได้
ค้นหาการนำไปปฏิบัติด้วยคอมไพเลอร์หรืออย่างน้อยที่สุดสิ่งที่ไม่ได้ใช้ IDE หรือ REPL อย่างเคร่งครัด การใช้งานจำนวนมากที่ออกแบบมาสำหรับการสอนนั้นยากมากที่จะใช้สำหรับการเขียนสคริปต์วัตถุประสงค์ทั่วไป
ฉันขอแนะนำไก่เพราะนั่นคือสิ่งที่ฉันใช้ ฉันใช้มันในโครงการส่วนตัวของฉันและฉันใช้มัน (และกำลังใช้งานอยู่) อย่างมืออาชีพ
ฉันไม่ต้องการลงทุนความพยายามเกินควรในบางสิ่งถ้ามันล้าสมัยไปหมด - ฉันยังคงเรียนรู้ว่ามันเป็น "ความตาย" อย่างมืออาชีพ แต่มีมุมมองทางวิชาการเท่านั้น ...
โครงการไม่ได้ตายอย่างมืออาชีพ แต่คุณอาจต้องใช้ความยาวพอสมควรเพื่อใช้ในบริบทนั้น สิ่งที่คล้ายกับไก่เป็นมากกว่าการแสวงหาความรู้ทางวิชาการและสามารถครอบคลุมพื้นฐานเกือบทั้งหมดของภาษาระดับสูงที่คุณใช้อยู่ในปัจจุบัน