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.