Scheme หรือ LISP ที่ดีที่สุดสำหรับ OS X คืออะไร?


87

ฉันกำลังมองหาเวอร์ชันของ Scheme หรือแม้แต่ LISP ที่ฉันสามารถใช้เพื่อกู้คืนทักษะการพัฒนา Lisp ที่หายไป ความสามารถของเว็บบางอย่างจะดี แต่ไม่จำเป็น

ฉันได้ดูโครงการ Plt และ MIT แล้วในขณะที่ทั้งคู่ดูดี แต่ Plt ดูเหมือนจะมีคุณสมบัติที่หลากหลายกว่า ฉันได้ดูการใช้งาน Lisp ด้วย แต่ดูเหมือนว่าทั้งหมดจะค่อนข้างแพง

ฉันชอบการใช้งานฟรี / ราคาไม่แพงเพราะนี่เป็นเพียงการเขียนโปรแกรมงานอดิเรกเป็นครั้งคราว คุณมีคำแนะนำอะไรบ้าง?


7
โปรดทราบว่า PLT Scheme เปลี่ยนชื่อเป็น Racket
— soegaard

คำถามที่เกี่ยวข้องอย่างยิ่ง: stackoverflow.com/questions/2485859
— pnkfelix

2
ทำไมคำถามนี้ยังไม่ถูกปิดและคำถามอื่น ๆ เกือบทั้งหมดมีเช่นนี้
— Erik Kaplun

คำตอบ:


71

ฉันจะไปกับแร็กเก็ต อาจไม่เร็วเท่า SBCL แต่มีไลบรารีและเอกสารที่ยอดเยี่ยมรวมถึงสภาพแวดล้อมแบบบูรณาการที่ออกแบบมาเพื่อให้คุณพัฒนาและใช้งานโปรแกรม Scheme ได้ทันที สิ่งที่ฉันชอบเกี่ยวกับ IDE ของแร็กเก็ต DrRacket คือสิ่งที่คุณไม่ต้องทำ - คุณไม่จำเป็นต้องเรียนรู้ Emacs คุณไม่ต้องเรียน SLIME คุณไม่ต้องกังวลกับการล่าสัตว์ที่สาม ห้องสมุดบุคคลที่เป็นจริงห้องสมุดทุกความหมายสำหรับไม้สามารถพบได้ในแพคเกจ สรุปแล้วมันช่วยลดช่วงการเรียนรู้และช่วยให้คุณมุ่งเน้นไปที่งานจริงในมือนั่นคือการเขียนโค้ดที่ยอดเยี่ยม

นอกจากนี้ยังมาพร้อมกับเว็บเซิร์ฟเวอร์หากคุณต้องการสร้างเว็บไซต์ที่ขับเคลื่อนด้วยแร็กเก็ต (ซึ่งฉันกำลังตรวจสอบอยู่)


1
ฉันเลือก PLT แบบสุ่มเมื่อไม่กี่สัปดาห์ก่อนและจนถึงตอนนี้ฉันพอใจกับตัวเลือกของฉันมาก ดังที่คุณได้กล่าวไปห้องสมุดและเอกสารมากมายเครื่องมือที่มีประโยชน์บางอย่าง
— Slartibartfast

ขอบคุณอืมไม่มีใคร ฉันมุ่งเน้นไปที่เครื่องมือและเอกสารมากกว่าความเร็วดังนั้นฉันจึงใช้ PLT
— Mark Brittingham

1
แน่นอน DrScheme สร้างขึ้นโดยคำนึงถึงการศึกษาซึ่งมีข้อดีบางประการ (ใช้งานง่ายและมีเอกสาร) แต่ก็มีข้อเสียบางประการเช่นกัน เว้นแต่คุณจะใช้ HtDP ( htdp.org ) ควรละเว้นภาษาที่ใช้ในการสอนและใช้ Module สำหรับทุกสิ่ง
— Kyle Cronin

นอกเหนือจากการใช้ชื่อว่า Racket แล้วตอนนี้ยังมีระบบแพ็คเกจใหม่และแคตตาล็อกแพ็คเกจซึ่งตอนนี้เป็นที่ต้องการมากกว่า Planet สำหรับกรณีการใช้งานส่วนใหญ่
— แจ็ค

22

ฉันได้ทดลองกับสิ่งนี้ไม่น้อย

Clozure Common Lisp (née Open MCL) นั้นเร็วที่สุด เร็วกว่าคู่แข่งรายต่อไป 25-30 เปอร์เซ็นต์บน Intel Mac Mini ของฉัน

MIT Schemeทำงานได้ดีบน Mac ฉันคิดว่าในที่สุดฉันก็รวบรวมมันด้วยตัวเอง แต่มีไบนารีอยู่ที่ไซต์นั้น PLT Scheme ก็ดีและอาจรวมเข้ากับโลก Mac ได้ดีขึ้นเล็กน้อย (PLT Scheme ตอนนี้รู้จักกันในชื่อRacketแต่ฉันยังไม่ได้ทดลองหลังจากการเปลี่ยนแปลง)


2
เกือบทุกอย่างที่ฉันลองใช้; โดยทั่วไปแล้วสิ่งเหล่านี้มีการจัดการรายการที่หนักหน่วงและการใช้loopมาโครอย่างหนัก
— Charlie Martin

1
อาจต้องการทราบว่า CCL ดูเหมือนจะไม่ทำงานบน Intel 32 บิตดังนั้น Mac Mini ของฉันจึงเก่าไปหน่อย
— David Thornley

16

ฉันเป็นแฟนตัวยงของ Clojure, SBCL และ Clozure CL พวกเขาทั้งหมดยอดเยี่ยม แต่พวกเขาก็เกินความจำเป็นหากคุณต้องการทำเพียงแค่รีเฟรชสับ Lisping ของคุณ พวกเขาทั้งหมดต้องการการล่าหาข้อมูลที่ไร้เหตุผลการค้นหารายชื่อผู้รับจดหมายการติดตั้งแพ็คเกจการซุ่มซ่อน ฯลฯ

Dr Scheme เพียงแค่ติดตั้งและเรียกใช้ ฉันจบ 3 บทแรกของ SICP เมื่อสี่ปีครึ่งที่แล้วโดยใช้ Dr Scheme ไม่มีอะไรลึกซึ้งไปกว่าการกำหนดผู้ประเมินโครงการในตัวเอง เมื่อคุณเข้าใจแล้วคุณจะมีความอดทนมากขึ้นสำหรับพี่น้องอุตสาหกรรมที่แข็งแกร่ง


3
อันที่จริงฉันไม่ต้องการสิ่งอื่นใดสำหรับการตั้งค่า Ubuntu-SBCL-SLIME-stumpwm ของฉัน สำหรับผู้เริ่มใช้งาน Practical Common Lisp และ CLHS คือสิ่งที่คุณต้องการและนั่นจะนำคุณไปไกล
— Svante

15

สำหรับ Scheme DrRacketนั้นยอดเยี่ยมมาก (รวมอยู่ในRacket )

สำหรับ Common Lisp Ready Lispนั้นยอดเยี่ยมมาก dmg เดียวกับ SBCL, Aquamacs และ Slime ที่ทำงานนอกกรอบ

จากเว็บไซต์:

Ready Lisp เป็นการรวมแพ็คเกจ Common Lisp ที่เป็นที่นิยมหลายอย่างโดยเฉพาะสำหรับ Mac OS X ได้แก่ Aquamacs, SBCL และ SLIME เมื่อดาวน์โหลดแล้วคุณจะมีชุดแอปพลิเคชันเดียวซึ่งคุณสามารถดับเบิลคลิกและพบว่าตัวเองอยู่ใน Common Lisp REPL ที่กำหนดค่าไว้อย่างสมบูรณ์

เหมาะอย่างยิ่งสำหรับผู้ใช้ OS X ที่ต้องการลองใช้ความสวยงามของ Common Lisp โดยไม่ต้องยุ่งยาก นอกจากนี้ครูยังสามารถใช้เพื่อให้นักเรียน Mac ได้รับสภาพแวดล้อม Common Lisp ที่สมบูรณ์แบบฟรีเพื่อนำกลับบ้านไปด้วย ข้อกำหนด

Ready Lisp เวอร์ชันปัจจุบันคือ 20090127 และต้องใช้ Mac OS X 10.5 (Leopard)

ประกอบด้วยซอฟต์แวร์คอมโพเนนต์เวอร์ชันต่อไปนี้:

Aquamacs  1.6
SBCL    1.0.24
SLIME   2009-01-23
CL-FAD  0.6.2
CL-PPCRE    2.0.1
LOCAL-TIME  0.9.3
SERIES  2.2.10
CL HyperSpec    7.0
paredit.el  20
redshank.el     1
cldoc.el    1.16


5

Clojureอาจพอดีกับใบเรียกเก็บเงินทั้งนี้ขึ้นอยู่กับว่าคุณกำหนด "Lisp" อย่างไร ทำงานบน OS X ได้ดี (ทำงานได้ทุกที่ที่ JVM ทำงาน) มีความสามารถทางเว็บและฟรี

นอกจากนี้ยังมีประโยชน์ในการใช้งานใหม่และสดใหม่และสนุก อาจเหมาะสำหรับการเขียนโปรแกรมงานอดิเรก การเขียนเว็บแอปหรือแอป GUI เป็นเรื่องง่าย (โดยใช้ Swing ของ Java หรือแม้แต่ Qt)


4

ฉันไม่ได้ใช้มันด้วยตัวเอง แต่Steel Bank Common Lispได้รับความนิยมที่ reddit เป็นโอเพนซอร์สและฟรีดังนั้นราคาจึงเหมาะสมสำหรับการเขียนโปรแกรมงานอดิเรก

ในอดีตฉันเคยมีGNU Common Lispทำงานบน macbook pro



4

ฉันขอแนะนำ Racket ให้กับผู้มาใหม่เนื่องจากเป็นหนึ่งใน IDE ที่ดีที่สุดสำหรับผู้เริ่มต้น Scheme (หรือผู้เริ่มต้นเขียนโปรแกรมที่ใช้ Scheme หรือดีกว่าก็ยังทำงานผ่าน HtDP)

http://racket-lang.org/

อีกทางเลือกหนึ่งสำหรับผู้ที่สนใจระบบ Scheme ขนาดเล็กเพื่อแก้ไขด้วยตนเองหรืออ่านซอร์สโค้ดคือ Larceny Scheme ซึ่งเป็นที่สนใจอย่างมากเนื่องจากคอมไพเลอร์ JIT ของ Twobit นั้นถูกนำไปใช้ทั้งหมดใน Scheme

http://www.larcenists.org/


อัปเดต: นอกจากนี้ Chez Scheme เพิ่งเปิดให้มา:

https://github.com/cisco/ChezScheme

(อาจไม่ "เล็ก" เท่า Larceny แต่มีคอมไพเลอร์การเพิ่มประสิทธิภาพที่ก้าวร้าวมาก)


ในเว็บไซต์พวกเขาดูเหมือนจะกล่าวถึงเฉพาะคอมไพเลอร์เนทีฟคอมไพเลอร์ to-C และการใช้งาน CLR เท่านั้น JIT อยู่ที่ไหน
— Erik Kaplun

คอมไพเลอร์ดั้งเดิมคือ JIT
— pnkfelix

(นั่นคือมันรวบรวมนิพจน์ Scheme ทุกรายการที่คุณป้อนผ่าน 'load' หรือ REPL เป็นรหัสเครื่อง x86 แบบไดนามิก JIT ที่นี่มีไว้สำหรับ "ทันเวลา" ซึ่งไม่เกี่ยวข้องกับ Java และ JVM ในกรณีที่เป็นสิ่งที่คุณ คิดว่าฉันหมายถึง JIT)
— pnkfelix

ฉันไม่คิดว่ามันเกี่ยวข้องกับ Java เพียงแค่ว่าโฮมเพจระบุว่า"คอมไพล์โดยตรงกับโค้ดเครื่องเนทีฟ"และนั่นไม่ใช่วิธีที่อธิบายโดยทั่วไปแล้ว
— Erik Kaplun

1
ในการตอบคำถามของคุณคุณไม่สามารถรับไบนารีแบบสแตนด์อโลนจาก Larceny ได้ในขณะนี้ คุณสามารถโหลดซอร์ส Scheme ของคุณจากนั้นจัดลำดับฮีพ (ด้วยโค้ดที่คอมไพล์) ไปยังฮีพอิมเมจ แต่ถึงอย่างนั้นคุณก็ยังต้องแจกจ่ายไฟล์ฮีปและไบนารีรันไทม์อีกครั้งเป็นไฟล์แยกกัน ฉันได้พิจารณาแล้วว่าจะพยายามทำให้ง่ายขึ้นในการรวมทั้งสองเป็นภาพไบนารีเดียว แต่ไม่เคยกระโดดเลย
— pnkfelix


2

หากคุณเป็นเพียงการเขียนโปรแกรมงานอดิเรก LispWorks มีเวอร์ชันส่วนตัวฟรีซึ่งค่อนข้างทรงพลังและซับซ้อน ปัญหาใหญ่ที่สุดคือการ จำกัด เวลาการทำงานหลายชั่วโมง ดังนั้นคุณจะไม่ต้องเขียนเซิร์ฟเวอร์ที่ใช้งานได้ยาวนาน แต่ไม่ได้หมายความว่ามันไม่ใช่เครื่องมือที่มีประโยชน์

CLISP ทำงานได้เกือบทุกอย่างและค่อนข้างดีจริง ๆ แล้วมันไม่ได้ทำเธรด (สิ่งสำคัญหากคุณต้องการเขียนเซิร์ฟเวอร์จริง แต่ตามที่ PHP และ Perl ได้แสดงให้เราเห็นแล้ว Apache + [insert language] เป็นแพลตฟอร์มที่ทำงานได้ดีมาก)



2

ฉันพบว่าChickenทำงานได้ดีสำหรับ Scheme และมีให้บริการผ่าน homebrew

brew install chicken

โค้ดส่วนใหญ่จาก SICP ทำงานร่วมกับการแก้ไขเล็กน้อย


1

เมื่อเร็ว ๆ นี้ฉันถามตัวเองด้วยคำถามเดียวกัน หลังจากใช้ DrScheme บน OS X มันจะเป็นตัวเลือกแรกของฉันในการแจกจ่าย Scheme สำหรับทุกแพลตฟอร์ม IDE ที่ดีมากคุณสมบัติการดีบักและชุดไลบรารี / เฟรมเวิร์กที่ดี (รวมถึงชุดเครื่องมือ GUI ที่ดีมากที่ 'ใช้งานได้ ... แม้บน Mac' ;-))

อย่างไรก็ตามตอนนี้ฉันกำลังมองหาสภาพแวดล้อมที่สะดวกสบายเหมือนกันสำหรับ Common Lisp มันลงมาที่ CCL (OpenMCL) เทียบกับ SBCL SBCL ดูเหมือนจะเป็นตัวเลือกยอดนิยม แต่ฉันอ่านว่าบน OS X ไม่รองรับเธรด (นี่เป็นปัญหาจริงๆหรือ?) ในทางกลับกัน Clozure CL มีการสนับสนุนที่ดีสำหรับเธรดเนทีฟสะพาน obcj ฯลฯ ...

ฉันพบว่า CCL ค่อนข้างแปลก แต่ฉันจะยึดติดกับมันสักพัก - ดูเหมือนว่าตัวเลือกเชิงตรรกะสำหรับการผสานรวม

ฉันใช้ Emacs 23 (สร้างจากแหล่งที่มาโดยใช้ - กับ -ns) และ Slime เป็นสภาพแวดล้อมและสิ่งนี้ใช้ได้ดีสำหรับฉัน :-)


โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.