ฉันรู้สึกว่าควรเรียนรู้Lispจริงๆและมีแหล่งข้อมูลดีๆมากมายที่จะช่วยฉันทำ
ฉันไม่ได้ท้อถอยด้วยไวยากรณ์ที่ซับซ้อน แต่ใน "การเขียนโปรแกรมเชิงพาณิชย์แบบเดิม" ฉันจะหาสถานที่ที่เหมาะสมที่จะใช้แทนภาษาขั้นตอน
มีแอพนักฆ่าเชิงพาณิชย์ที่เขียนด้วย Lisp หรือไม่?
ฉันรู้สึกว่าควรเรียนรู้Lispจริงๆและมีแหล่งข้อมูลดีๆมากมายที่จะช่วยฉันทำ
ฉันไม่ได้ท้อถอยด้วยไวยากรณ์ที่ซับซ้อน แต่ใน "การเขียนโปรแกรมเชิงพาณิชย์แบบเดิม" ฉันจะหาสถานที่ที่เหมาะสมที่จะใช้แทนภาษาขั้นตอน
มีแอพนักฆ่าเชิงพาณิชย์ที่เขียนด้วย Lisp หรือไม่?
คำตอบ:
การใช้ Lisp หลักอย่างหนึ่งคือในปัญญาประดิษฐ์ เพื่อนของฉันที่วิทยาลัยเรียนหลักสูตร AI ระดับบัณฑิตศึกษาและสำหรับโครงการหลักของเขาเขาเขียนโปรแกรมแก้ปัญหา" Lights Out " ใน Lisp โปรแกรมหลายเวอร์ชันของเขาใช้รูทีน AI ที่แตกต่างกันเล็กน้อยและการทดสอบบนคอมพิวเตอร์ 40 เครื่องก็ให้ผลลัพธ์ที่ค่อนข้างเรียบร้อย (ฉันหวังว่ามันจะออนไลน์ที่ไหนสักแห่งสำหรับฉันที่จะเชื่อมโยง แต่ฉันไม่คิดว่ามันเป็น)
สองภาคการศึกษาที่ผ่านมาฉันใช้ Scheme (ภาษาที่มีพื้นฐานจาก Lisp) เพื่อเขียนโปรแกรมแบบโต้ตอบที่จำลองกิจวัตร "Who's on First" ของ Abbott และ Costello ข้อมูลที่ป้อนจากผู้ใช้จับคู่กับโครงสร้างข้อมูลที่ค่อนข้างซับซ้อน (คล้ายกับแผนที่ในภาษาอื่น ๆ แต่ยืดหยุ่นกว่ามาก) เพื่อเลือกสิ่งที่จะตอบสนองที่เหมาะสม ฉันยังเขียนกิจวัตรในการไขปริศนาสไลด์ 3x3 (อัลกอริทึมที่สามารถขยายไปยังปริศนาสไลด์ขนาดใหญ่ได้อย่างง่ายดาย)
โดยสรุปการเรียนรู้ Lisp (หรือ Scheme) อาจไม่ได้นำไปใช้งานจริงมากมายนอกเหนือจาก AI แต่เป็นประสบการณ์การเรียนรู้ที่มีคุณค่าอย่างยิ่งอย่างที่คนอื่น ๆ กล่าวไว้ การเขียนโปรแกรมด้วยภาษาที่ใช้งานได้เช่น Lisp จะช่วยให้คุณคิดวนซ้ำได้ด้วย (หากคุณมีปัญหากับการเรียกซ้ำในภาษาอื่นนี่อาจช่วยได้มาก)
Lisp เป็นภาษาที่มีขนาดใหญ่และซับซ้อนพร้อมด้วยรันไทม์ขนาดใหญ่และซับซ้อนเพื่อรองรับ ด้วยเหตุนี้ Lisp จึงเหมาะที่สุดสำหรับปัญหาที่มีขนาดใหญ่และซับซ้อน
ตอนนี้ที่ซับซ้อนปัญหาไม่ได้เช่นเดียวกับที่มีความซับซ้อนอย่างใดอย่างหนึ่ง ซับซ้อนปัญหาเป็นหนึ่งที่มีจำนวนมากของรายละเอียดเล็ก ๆ แต่ที่ไม่ยาก การเขียนระบบการจองสายการบินเป็นธุรกิจที่ซับซ้อน แต่การมีเงินเพียงพอและโปรแกรมเมอร์ก็ไม่ใช่เรื่องยาก ได้รับความแตกต่าง?
ปัญหาที่ซับซ้อนคือปัญหาที่ซับซ้อนซึ่งปัญหาหนึ่งที่การแบ่งแยกและการพิชิตแบบดั้งเดิมไม่ได้ผล การควบคุมหุ่นยนต์หรือการทำงานกับข้อมูลที่ไม่ใช่ตาราง (เช่นภาษา) หรือสถานการณ์ที่มีพลวัตสูง
เสียงกระเพื่อมเหมาะกับปัญหาที่วิธีแก้ปัญหาต้องขยายได้ ตัวอย่างคลาสสิกคือโปรแกรมแก้ไขข้อความ emacs สามารถตั้งโปรแกรมได้อย่างสมบูรณ์ดังนั้นสภาพแวดล้อมการเขียนโปรแกรมจึงเป็นสิทธิ์ของตัวเอง
ในหนังสือPAIP ที่มีชื่อเสียงของเขาNorvig กล่าวว่า Lisp เหมาะสำหรับการเขียนโปรแกรมเชิงสำรวจ นั่นคือการเขียนโปรแกรมวิธีแก้ปัญหาที่ยังไม่เข้าใจ (ตรงข้ามกับระบบการจองออนไลน์) กล่าวอีกนัยหนึ่ง: ปัญหาที่ซับซ้อน
นอกจากนี้การเรียนรู้ Lisp จะทำให้คุณนึกถึงบางสิ่งพื้นฐานที่ลืมไปแล้วนั่นคือความแตกต่างระหว่าง Von Neumann และ Turing อย่างที่เราทราบกันดีว่าแบบจำลองการคำนวณของทัวริงเป็นแบบจำลองทางทฤษฎีที่น่าสนใจ แต่ไม่มีประโยชน์ในการใช้เป็นแบบจำลองสำหรับการออกแบบคอมพิวเตอร์ ในทางกลับกัน Von Neumann ได้ออกแบบแบบจำลองของวิธีที่คอมพิวเตอร์และการคำนวณดำเนินการ: แบบจำลอง Von Neumann ศูนย์กลางของโมเดลฟอนนอยมันน์คือคุณมีเพียงหน่วยความจำเดียวและเก็บทั้งรหัสและข้อมูลของคุณไว้ที่นั่น สังเกตให้ดีว่าโปรแกรม Java (หรือ C # หรืออะไรก็ได้ที่คุณต้องการ) คือการแสดงโมเดลทัวริง คุณตั้งโปรแกรมของคุณอย่างเป็นรูปธรรมครั้งแล้วครั้งเล่า จากนั้นคุณหวังว่าคุณจะสามารถจัดการกับข้อมูลทั้งหมดที่ถูกโยนทิ้งไปได้
Lisp รักษาแบบจำลอง Von Neuman; ไม่มีเส้นขอบที่คมชัดและกำหนดไว้ล่วงหน้าระหว่างรหัสและข้อมูล การเขียนโปรแกรมใน Lisp เปิดใจให้คุณรับรู้ถึงพลังของโมเดลฟอนนอยมันน์ การเขียนโปรแกรมด้วยเสียงกระเพื่อมทำให้คุณเห็นแนวคิดเก่า ๆ ในแง่มุมใหม่
ในที่สุดการโต้ตอบคุณจะได้เรียนรู้ที่จะโต้ตอบกับโปรแกรมของคุณในขณะที่คุณพัฒนา (ซึ่งต่างจากการคอมไพล์และรัน) นอกจากนี้ยังเปลี่ยนวิธีการเขียนโปรแกรมและวิธีการดูโปรแกรมด้วย
ด้วยบทนำนี้ในที่สุดฉันก็สามารถตอบคำถามของคุณได้: คุณจะพบสถานที่ที่มีความหมายเหนือภาษา "ดั้งเดิม" หรือไม่
หากคุณเป็นโปรแกรมเมอร์ขั้นสูงคุณต้องมีเครื่องมือขั้นสูง และไม่มีเครื่องมือใดที่ล้ำหน้าไปกว่า Lisp อีกแล้ว หรือกล่าวอีกนัยหนึ่ง: คำตอบคือใช่ถ้าปัญหาของคุณยาก ไม่มีอย่างอื่น
ตอบกลับ@lassevk :
ไวยากรณ์ซับซ้อน ??
ไวยากรณ์ของเสียงกระเพื่อมนั้นง่ายมาก
app นักฆ่าที่เขียนในเสียงกระเพื่อม: emacs Lisp จะช่วยให้คุณสามารถขยาย emac ได้ตามต้องการเพื่อทำเกือบทุกอย่างที่คุณคิดว่าตัวแก้ไขอาจทำได้
แต่คุณควรเรียนรู้เสียงกระเพื่อมถ้าคุณต้องการและคุณอาจไม่เคยใช้ในที่ทำงานเลย แต่ก็ยังยอดเยี่ยม
นอกจากนี้ฉันต้องการเพิ่ม: แม้ว่าคุณจะพบสถานที่ที่เสียงกระเพื่อมจะสมเหตุสมผล แต่คุณก็ไม่อาจโน้มน้าวคนอื่นได้ว่าควรใช้กับ java, c ++, c #, python, Ruby และอื่น ๆ
ฉันไม่สามารถตอบจากประสบการณ์มือแรก แต่คุณควรอ่านสิ่งที่พอลเกรแฮมเขียนในเสียงกระเพื่อม สำหรับ "นักฆ่าแอป" ส่วนหนึ่งอ่านตีค่าเฉลี่ย
ฉันตั้งโปรแกรมใน Lisp อย่างมืออาชีพเป็นเวลาประมาณหนึ่งปีและมันก็คุ้มค่าที่จะเรียนรู้ คุณจะมีโอกาสที่ไม่มีใครเทียบได้ในการลบความซ้ำซ้อนออกจากโค้ดของคุณโดยสามารถแทนที่โค้ดสำเร็จรูปทั้งหมดด้วยฟังก์ชันหากเป็นไปได้และมาโครที่ไม่สามารถทำได้ นอกจากนี้คุณยังสามารถเข้าถึงความยืดหยุ่นที่เหนือชั้นที่รันไทม์แปลระหว่างโค้ดและข้อมูลได้อย่างอิสระ ดังนั้นสถานการณ์ที่การกระทำของผู้ใช้สามารถกระตุ้นให้เกิดความจำเป็นในการสร้างโครงสร้างที่ซับซ้อนแบบไดนามิกจึงเป็นจุดที่ Lisp เปล่งประกายอย่างแท้จริง ตารางเที่ยวบินของสายการบินยอดนิยมเขียนด้วยภาษาลิสป์และยังมี CAD / CAM จำนวนมากใน Lisp
หากคุณชอบการเขียนโปรแกรมคุณควรเรียนรู้ Lisp เพื่อความสุขที่แท้จริงของมัน XKCDแสดงออกถึงการรู้แจ้งทางปัญญาที่เกิดขึ้นอย่างสมบูรณ์แบบ การเรียนรู้ Lisp มีไว้สำหรับโปรแกรมเมอร์ว่าการทำสมาธิเป็นอย่างไรสำหรับพระในพระพุทธศาสนา (และฉันหมายถึงสิ่งนี้โดยไม่มีความหมายแฝงเชิงลบหลู่)
Lisp มีประโยชน์มากสำหรับการสร้าง DSL เล็ก ๆ น้อย ๆ ฉันมีสำเนาของ Lisp ในกล่องที่ทำงานอยู่และฉันได้เขียน DSL เล็กน้อยเพื่อซักถามฐานข้อมูลเซิร์ฟเวอร์ SQL และสร้างชั้นข้อมูล ฯลฯ ใน C # ตอนนี้รหัสแผ่นหม้อไอน้ำทั้งหมดของฉันถูกเขียนด้วยมาโคร lisp ที่ส่งออกไปยัง C # ฉันสร้าง HTML, XML ทุกอย่างด้วยมัน ในขณะที่ฉันหวังว่าฉันจะใช้ Lisp ในการเขียนโค้ดในชีวิตประจำวันได้ แต่ Lisp สามารถนำมาใช้ประโยชน์ได้จริง
ภาษาใด ๆ จะดูยากขึ้นมากเมื่อไม่ใช้รูปแบบการเยื้องทั่วไปของภาษา เมื่อมีคนติดตามพวกเขาของ Lisp เราจะเห็นว่ามันแสดงออกถึงโครงสร้างของโครงสร้างไวยากรณ์ได้อย่างไร (โปรดทราบว่าสิ่งนี้ไม่ถูกต้องนักเพราะการแสดงตัวอย่างอยู่เพียงเล็กน้อย r ควรสอดคล้องกับ fns ในอาร์กิวเมนต์ Quicksort แบบเรียกซ้ำ):
(defun quicksort (lis)
(if (null lis)
nil
(let* ((x (car lis))
(r (cdr lis))
(fn (lambda (a)
(< a x))))
(append (quicksort (remove-if-not fn
r))
(list x)
(quicksort (remove-if fn
r))))))
let
และใช้ a defun
ที่จุดเริ่มต้นของฟังก์ชันเพื่อกำหนดfn
ตามที่มันไม่เปลี่ยนแปลง
ฉันพบว่าการเรียนรู้ภาษาใหม่มีผลต่อรูปแบบการเขียนโปรแกรมของคุณในภาษาที่คุณรู้จักอยู่แล้วเสมอ สำหรับฉันมันทำให้ฉันคิดวิธีต่างๆในการแก้ปัญหาในภาษาหลักของฉันอยู่เสมอซึ่งก็คือ Java ฉันคิดว่าโดยทั่วไปแล้วมันจะทำให้ขอบฟ้าของคุณกว้างขึ้นในแง่ของการเขียนโปรแกรม
ถ้าคุณต้องถามตัวเองว่าคุณควรเรียนรู้เสียงกระเพื่อมคุณคงไม่จำเป็นต้องทำ
ฉันเรียน "คลาสเสียงกระเพื่อม" ในวิทยาลัยในช่วงทศวรรษที่แปดสิบ แม้จะมี grokking แนวคิดที่นำเสนอในระดับที่ฉันถูกทิ้งไว้โดยไม่ต้องใด ๆขอบคุณสำหรับสิ่งที่ทำให้ดีกระเพื่อม ฉันกลัวว่าผู้คนจำนวนมากมองว่าเสียงกระเพื่อมเป็นเพียงภาษาโปรแกรมอื่นซึ่งเป็นสิ่งที่หลักสูตรในวิทยาลัยทำกับฉันเมื่อหลายปีก่อน หากคุณเห็นใครบางคนบ่นเกี่ยวกับวากยสัมพันธ์ของเสียงกระเพื่อม (หรือขาดสิ่งนั้น) มีโอกาสดีที่พวกเขาจะเป็นหนึ่งในคนเหล่านั้นที่ไม่เข้าใจความยิ่งใหญ่ของเสียงกระเพื่อม ฉันเป็นหนึ่งในคนเหล่านั้นเป็นเวลานานมาก
จนกระทั่งสองทศวรรษต่อมาเมื่อฉันกลับมาสนใจเรื่องเสียงกระเพื่อมฉันก็เริ่ม "เข้าใจ" สิ่งที่ทำให้เสียงกระเพื่อมน่าสนใจสำหรับฉันอยู่ดี หากคุณสามารถเรียนรู้เสียงกระเพื่อมได้โดยไม่ต้องกังวลกับการปิดและมาโครเสียงกระเพื่อมคุณอาจพลาดประเด็นนี้ไป
การเรียนรู้ LISP / Scheme อาจไม่ทำให้คุณมีพื้นที่แอปพลิเคชันที่เพิ่มขึ้น แต่จะช่วยให้คุณเข้าใจการเขียนโปรแกรมเชิงฟังก์ชันกฎและข้อยกเว้นได้ดีขึ้น
มันคุ้มค่ากับการลงทุนเวลาเพียงเพื่อเรียนรู้ความแตกต่างของความสวยงามของฟังก์ชันบริสุทธิ์ 6 ฟังก์ชันที่ซ้อนกันและฝันร้ายของฟังก์ชันซ้อนกัน 6 ฟังก์ชันที่มีผลข้างเคียง
จากhttp://www.gigamonkeys.com/book/introduction-why-lisp.html
หนึ่งในตำนานที่เกิดซ้ำบ่อยที่สุดเกี่ยวกับ Lisp คือ "ตายแล้ว" แม้ว่าจะเป็นเรื่องจริงที่ Common Lisp ไม่ได้ใช้กันอย่างแพร่หลายเช่น Visual Basic หรือ Java แต่ก็ดูแปลกที่จะอธิบายภาษาที่ยังคงใช้สำหรับการพัฒนาใหม่ ๆ และยังคงดึงดูดผู้ใช้ใหม่ว่า "ตาย" เรื่องราวความสำเร็จของ Lisp ล่าสุด ได้แก่ Viaweb ของ Paul Graham ซึ่งกลายเป็น Yahoo Store เมื่อ Yahoo ซื้อ บริษัท ของเขา ระบบการกำหนดราคาตั๋วเครื่องบินและการซื้อสินค้าของ ITA Software, QPX ซึ่งใช้โดยผู้ขายตั๋วออนไลน์ Orbitz และอื่น ๆ เกมของ Naughty Dog สำหรับ PlayStation 2, Jak และ Daxter ซึ่งส่วนใหญ่เขียนด้วยภาษา Lisp เฉพาะโดเมนที่ Naughty Dog ประดิษฐ์ขึ้นเรียกว่า GOAL ซึ่งคอมไพเลอร์เขียนเองด้วย Common Lisp; และ Roomba เครื่องดูดฝุ่นหุ่นยนต์อัตโนมัติซึ่งมีซอฟต์แวร์เขียนเป็น L ซึ่งเป็นชุดย่อยที่เข้ากันได้ของ Common Lisp บางทีการบอกเล่าเพิ่มเติมคือการเติบโตของเว็บไซต์ Common-Lisp.net ซึ่งโฮสต์โครงการ Common Lisp แบบโอเพ่นซอร์สและจำนวนกลุ่มผู้ใช้ Lisp ในท้องถิ่นที่เพิ่มขึ้นในช่วงสองสามปีที่ผ่านมา
"เสียงกระเพื่อมเป็นสิ่งที่ควรค่าแก่การเรียนรู้สำหรับประสบการณ์การรู้แจ้งที่ลึกซึ้งที่คุณจะได้รับเมื่อคุณได้รับมันในที่สุดประสบการณ์นั้นจะทำให้คุณเป็นโปรแกรมเมอร์ที่ดีขึ้นตลอดทั้งวันแม้ว่าคุณจะไม่เคยใช้ Lisp มากนักก็ตาม"
- เอริกเอสเรย์มอนด์ "จะเป็นแฮ็กเกอร์ได้อย่างไร"
ฉันยอมรับว่า Lisp เป็นหนึ่งในภาษาที่คุณอาจไม่เคยใช้ในเชิงพาณิชย์ แต่ถึงแม้ว่าคุณจะไปไม่ถึง แต่การเรียนรู้มันจะช่วยเพิ่มความเข้าใจในการเขียนโปรแกรมโดยรวมได้อย่างแน่นอน ตัวอย่างเช่นฉันเรียน Prolog ในวิทยาลัยและในขณะที่ฉันไม่เคยใช้มันเลยหลังจากนั้นฉันก็ทำให้ฉันมีความเข้าใจมากขึ้นเกี่ยวกับแนวคิดการเขียนโปรแกรมจำนวนมากและ (ในบางครั้ง) ก็รู้สึกขอบคุณมากขึ้นสำหรับภาษาที่ฉันใช้
แต่ถ้าคุณกำลังจะเรียนรู้ ... โดยทั้งหมดอ่านOn Lisp
การเรียนรู้ lisp จะทำให้ Javascript แตกต่างไปจากเดิมอย่างสิ้นเชิง! เสียงกระเพื่อมบังคับให้คุณเข้าใจทั้งการเรียกซ้ำและ "ฟังก์ชันทั้งหมดเป็นวัตถุชั้นหนึ่ง" -paradigm ดูบทความดี Crockfords ในโครงการ VS Javascript Javascript อาจเป็นภาษาที่สำคัญที่สุดในปัจจุบันดังนั้นการทำความเข้าใจให้ดีขึ้นจึงมีประโยชน์อย่างมาก!
Script-Fu ของ Gimp นั้นน่ากลัว นั่นคือแอพ photoshop-killer
โอเคฉันอาจจะแปลก แต่ฉันไม่ชอบบทความของ Paul Graham ที่ว่ามาก & เกี่ยวกับ Lisp เป็นหนังสือที่หยาบมากถ้าคุณไม่เข้าใจ Common Lisp อยู่แล้ว แต่ผมว่าไปสำหรับ Siebel ของการปฏิบัติ Common เสียงกระเพื่อม สำหรับ "แอปนักฆ่า" Common Lisp ดูเหมือนจะพบได้ในร้านค้าเฉพาะกลุ่มเช่นITAดังนั้นแม้ว่าจะไม่มีแอปที่มีความหมายเหมือนกันกับ CL เหมือนอย่างที่ Rails ใช้สำหรับ Ruby แต่ก็มีสถานที่ในอุตสาหกรรมที่ใช้มันหากคุณทำ ขุดเล็กน้อย
ไวยากรณ์ที่ซับซ้อน? ความงามของเสียงกระเพื่อมคือมันมีไวยากรณ์ที่เรียบง่ายอย่างน่าขัน เป็นเพียงรายการโดยแต่ละองค์ประกอบของรายการอาจเป็นรายการอื่นหรือประเภทข้อมูลพื้นฐานก็ได้
ควรค่าแก่การเรียนรู้เนื่องจากวิธีนี้ช่วยเพิ่มความสามารถในการเขียนโค้ดของคุณในการคิดและใช้ฟังก์ชันเป็นเพียงประเภทข้อมูลอื่น สิ่งนี้จะปรับปรุงวิธีการเขียนโค้ดด้วยภาษาที่จำเป็นและ / หรือเชิงวัตถุเพราะจะช่วยให้คุณมีความยืดหยุ่นทางจิตใจมากขึ้นด้วยวิธีการจัดโครงสร้างโค้ดของคุณ
แอพ Killer? Franz Inc.มีรายการเรื่องราวความสำเร็จมากมายแต่รายการนี้รวมเฉพาะผู้ใช้ AllegroCL ... อาจมีคนอื่น ๆ เรื่องโปรดของฉันคือเรื่องราวเกี่ยวกับ Naughty Dogเนื่องจากฉันเป็นแฟนตัวยงของเกม Crash Bandicoot
สำหรับการเรียนรู้ Common เสียงกระเพื่อมผมอยากแนะนำให้ปฏิบัติ Common เสียงกระเพื่อม มันมีแนวทางปฏิบัติที่อย่างน้อยสำหรับฉันก็ทำให้มันง่ายกว่าหนังสือเล่มอื่น ๆ ที่ฉันเคยดู
คุณสามารถใช้Clojureวันนี้เพื่อเขียนการทดสอบและสคริปต์ที่ด้านบนของ Java VM แม้ว่าจะมีภาษา Lisp อื่น ๆ ที่ใช้กับ JVM แต่ฉันคิดว่า Clojure ทำงานได้ดีที่สุดในการผสานรวมกับ Java
มีหลายครั้งที่ภาษา Java เข้ามาขัดขวางการเขียนโค้ด Java (รวมถึง "การเขียนโปรแกรมเชิงพาณิชย์แบบเดิม") (ฉันไม่ได้หมายความว่าเป็นคำฟ้องของ Java ภาษาอื่น ๆ ประสบปัญหาเดียวกัน แต่เป็นความจริงเนื่องจากหัวข้อไม่ใช่ Java ฉันจะไม่อธิบายอย่างละเอียดโปรดอย่าลังเลที่จะเริ่มหัวข้อใหม่หาก มีคนต้องการคุยเรื่องนี้) Clojure ช่วยขจัดอุปสรรคมากมายเหล่านั้น
สามารถใช้ Lisp ได้ทุกที่ที่คุณใช้การเขียนโปรแกรมแบบเดิม มันไม่ได้แตกต่างกันแค่มีพลังมากกว่า เขียนเว็บแอป? คุณสามารถทำได้ด้วยเสียงกระเพื่อมเขียนแอปพลิเคชันบนเดสก์ท็อป? คุณสามารถทำได้บน Lisp ไม่ว่าคุณจะทำอะไรก็ได้ใน Lisp หรือ Python หรือการเขียนโปรแกรมทั่วไปอื่น ๆ (มีไม่กี่ภาษาที่เหมาะสำหรับงานเดียวเท่านั้น)
อุปสรรคที่ใหญ่ที่สุดน่าจะเป็นการยอมรับเจ้านายเพื่อนหรือลูกค้าของคุณ นั่นคือสิ่งที่คุณจะต้องทำงานร่วมกับพวกเขา การเลือกโซลูชันที่ใช้งานได้จริงเช่นClojureที่สามารถใช้ประโยชน์จากฐานการติดตั้งปัจจุบันของโครงสร้างพื้นฐาน Java จาก JVM ไปยังไลบรารีอาจช่วยคุณได้ นอกจากนี้หากคุณมีโปรแกรม Java คุณสามารถสร้างสถาปัตยกรรมปลั๊กอินและเขียนปลั๊กอิน Clojure ได้และเขียนโค้ดครึ่งหนึ่งของคุณใน Clojure
ไม่ใช่เหตุผล แต่ (เล็กน้อย) AutoCAD มีการสนับสนุนรันไทม์ LISP & DCL เป็นวิธีที่สะดวกในการเขียนมาโครที่ซับซ้อน (รวมถึงระบบอัตโนมัติ ActiveX) หากคุณไม่ต้องการใช้ VBA หรือ C ++ หรือ. NET SDK หรือถ้านิพจน์ DIESEL ไม่ได้ตัดออก
ฟังก์ชั่นมากมายของ AutoCAD เป็นกิจวัตร LISP
นี่เป็นหัวข้อที่ฉันได้ไตร่ตรองมาระยะหนึ่งแล้ว แต่ฉันไม่ได้ตัดสินใจจริงๆเพราะเวลาปกติเป็นปัญหาหลัก ... ;)
และเนื่องจากฉันไม่พบลิงก์เหล่านี้ในโพสต์นี้ฉันจึงเพิ่มลิงก์เหล่านี้เพื่อประโยชน์สาธารณะ:
เรื่องราวความสำเร็จและความล้มเหลว: Lisping ที่ JPL
เรื่องราวความสำเร็จที่น่าประทับใจจริงๆ: Lisp ถูกนำไปใช้ที่ Orbitz Corporation
การเปรียบเทียบและวิเคราะห์ว่าจะใช้ Lisp แทน Java: Lisp เป็นทางเลือกสำหรับ Java หรือไม่
ไวยากรณ์ไม่เกี่ยวข้องอ่านไม่ออก!
ไม่ได้บอกว่านี่เป็นแอปนักฆ่า แต่ดูเหมือนว่ามันจะเจ๋ง http://code.google.com/p/plop/
แอพ Killer? เครื่องมือค้นหาเที่ยวบินโดย ITA Software เป็นหนึ่งเดียว
สำหรับ "ทำไม" ส่วนใหญ่อาจทำให้คุณเป็นนักพัฒนาที่ดีขึ้นและไม่น่าจะทำให้คุณแย่ลงอย่างมาก อย่างไรก็ตามอาจทำให้คุณชอบภาษาถิ่นของ lisp มากกว่าภาษาอื่น