Alan Kay ผู้สร้าง OOP เกี่ยวกับการพัฒนา Lisp และ OOP

Alan Kay ผู้สร้าง OOP เกี่ยวกับการพัฒนา Lisp และ OOP

หากคุณไม่เคยได้ยินเกี่ยวกับ Alan Kay อย่างน้อยคุณก็เคยได้ยินคำพูดอันโด่งดังของเขา ตัวอย่างเช่น คำพูดนี้จากปี 1971:

วิธีที่ดีที่สุดในการทำนายอนาคตคือการประดิษฐ์มันขึ้นมา
วิธีที่ดีที่สุดในการทำนายอนาคตคือการประดิษฐ์มันขึ้นมา

อลันมีอาชีพที่มีสีสันมากในด้านวิทยาการคอมพิวเตอร์ เขาได้รับ รางวัลเกียวโต и รางวัลทัวริง สำหรับงานของเขาในกระบวนทัศน์การเขียนโปรแกรมเชิงวัตถุ เขาเป็นหนึ่งในผู้บุกเบิกในด้านคอมพิวเตอร์ส่วนบุคคลและอินเทอร์เฟซแบบกราฟิกที่เขาพัฒนาขึ้น หูฟัง เป็นหนึ่งในภาษาโปรแกรมแรกที่มีอิทธิพลมากที่สุดตลอดกาล

ในตัวเรา เฮกซ์เล็ตโดยเฉพาะอย่างยิ่งใน แชทคำถาม “OOP คืออะไร” และ “จริงๆ แล้ว Alan Kay หมายถึงอะไร” ก็ถูกหยิบยกขึ้นมาอย่างต่อเนื่อง โพสต์นี้มีคำพูดที่น่าสนใจจาก Alan เกี่ยวกับสถานะของการพัฒนาสมัยใหม่ OOP และภาษา Lisp

เกี่ยวกับการพัฒนาซอฟต์แวร์

Alan Kay เชื่อว่าการปฏิวัติคอมพิวเตอร์ยังมาไม่ถึง (การปฏิวัติคอมพิวเตอร์ที่แท้จริงยังไม่เกิดขึ้น) และการพัฒนาซอฟต์แวร์พัฒนาในสัดส่วนผกผันกับกฎของมัวร์: ฮาร์ดแวร์ได้รับการปรับปรุงทุกปี แต่ซอฟต์แวร์กลับกลายเป็นเรื่องป่องโดยไม่จำเป็น:

ปัญหาคืออ่อนแอ แนวคิดและเครื่องมือปรับขนาดได้ไม่ดี ความเกียจคร้าน ขาดความรู้ ฯลฯ

อธิบายสถานการณ์นี้ได้ดี เรื่องตลกสั้น ๆ:

สิ่งที่แอนดี้ให้ บิลก็เอาไป
แอนดี้ให้ บิลก็ให้

Andy Grove ซีอีโอของ Intel และ Bill Gates ซีอีโอของ Microsoft ในขณะนั้น

การปรับปรุงสถานะการพัฒนาในปัจจุบันเป็นเป้าหมายของโครงการวิจัย ขั้นตอนสู่การคิดค้นโปรแกรมใหม่ (pdf). เป้าหมายคือการบรรลุ "กฎของมัวร์" ในความหมายโดย "ลดจำนวนรหัสที่ต้องการลง 100, 1000, 10000 ครั้งหรือมากกว่านั้น"

ในรายงานที่เปิดหูเปิดตาของเขา การเขียนโปรแกรมและการปรับขนาด (วิดีโอ) หัวข้อนี้จะกล่าวถึงในรายละเอียดเพิ่มเติม ตามที่ Alan กล่าว วิศวกรรมซอฟต์แวร์ได้หยุดชะงักและกำลังกลายเป็นวิทยาศาสตร์ที่ถูกลืม ซึ่งไม่สามารถตามทันฮาร์ดแวร์และสาขาวิชาวิทยาศาสตร์และวิศวกรรมอื่นๆ ได้ โปรเจ็กต์ขนาดใหญ่กลายเป็นการทิ้งโค้ดและมาถึงจุดที่แล้ว ไม่มีใคร ไม่สามารถเข้าใจโค้ด MS Vista หรือ MS Word ได้ 100 ล้านบรรทัด แต่ในความเป็นจริง โครงการดังกล่าวควรมีลำดับความสำคัญน้อยกว่าโค้ด

อลันพิจารณาอินเทอร์เน็ต โปรโตคอล TCP/IP ล่าม LISP Nile (Math DSL สำหรับกราฟิกแบบเวกเตอร์) และ OMeta (OO PEG) (PDF) ตัวอย่างซอฟต์แวร์ที่หรูหราพร้อมโค้ดขั้นต่ำ

เขาเรียกอินเทอร์เน็ต (TCP/IP) หนึ่งในโครงการซอฟต์แวร์ขนาดใหญ่ไม่กี่โครงการที่ได้รับการออกแบบอย่างถูกต้อง และระดับความซับซ้อนของมันก็สมดุลกับระดับความซับซ้อน (ความซับซ้อนและความซับซ้อน) ด้วยโค้ดที่น้อยกว่า 20 บรรทัด โปรเจ็กต์นี้จึงทำงานเสมือนระบบที่มีชีวิตและไดนามิก ซึ่งสามารถรองรับโหนดนับพันล้านโหนด และไม่เคยออฟไลน์เลยนับตั้งแต่เปิดตัวครั้งแรกในเดือนกันยายน พ.ศ. 1969 เราหยุดมองว่าอินเทอร์เน็ตเป็นโครงการซอฟต์แวร์ปกติที่ผู้คนสร้างขึ้น:

อินเทอร์เน็ตได้รับการพัฒนาอย่างดีจนผู้คนจำนวนมากปฏิบัติต่ออินเทอร์เน็ตเสมือนเป็นทรัพยากรธรรมชาติ เช่น มหาสมุทรแปซิฟิก แทนที่จะเป็นผลผลิตจากแรงงานมนุษย์ ครั้งสุดท้ายที่เราเห็นเทคโนโลยีที่เสถียร ชัดเจน ปราศจากข้อผิดพลาดคือเมื่อใด เมื่อเปรียบเทียบแล้ว เว็บก็ไร้สาระ เว็บถูกสร้างขึ้นโดยมือสมัครเล่น

เกี่ยวกับการเขียนโปรแกรมเชิงวัตถุ

สิ่งแรกที่ฉันสนใจคือของเขา ต้นฉบับ วิสัยทัศน์ OOP ประสบการณ์ของเขาในด้านจุลชีววิทยามีบทบาทสำคัญ:

ฉันคิดว่าวัตถุเป็นเหมือนเซลล์ชีวภาพ และ/หรือคอมพิวเตอร์แต่ละเครื่องบนเครือข่ายที่สามารถสื่อสารผ่านข้อความเท่านั้น

และมีประสบการณ์ด้านคณิตศาสตร์:

ประสบการณ์ของฉันในด้านคณิตศาสตร์ทำให้ฉันตระหนักว่าแต่ละวัตถุสามารถมีพีชคณิตได้หลายตัว สามารถนำมารวมกันเป็นครอบครัวได้ และสิ่งนี้มีประโยชน์มาก

แนวคิดสำหรับการเชื่อมโยงล่าช้าและคุณสมบัติเมตาอันทรงพลังของ LISPa:

ระยะที่สองคือการทำความเข้าใจ LISPa และใช้ความเข้าใจนั้นเพื่อสร้างโครงสร้างที่ง่ายขึ้น เล็กลง ทรงพลังยิ่งขึ้น และเชื่อมโยงในภายหลัง

และในไม่ช้า อลันก็เริ่มสนับสนุนแนวคิดที่ว่าภาษาแบบไดนามิกนั้น อนาคตของการพัฒนาซอฟต์แวร์ (pdf). โดยเฉพาะอย่างยิ่งความง่ายในการเปลี่ยนแปลงเป็นสิ่งสำคัญสำหรับเขา:

การเชื่อมโยงล่าช้าช่วยให้แนวคิดที่มาภายหลังในกระบวนการพัฒนาสามารถรวมเข้ากับโครงการได้โดยใช้ความพยายามน้อยลง (เมื่อเทียบกับระบบที่ถูกผูกไว้ก่อนหน้านี้ เช่น C, C++, Java ฯลฯ)

และศักยภาพในการเปลี่ยนแปลงได้ทันทีและการทำซ้ำที่เร็วขึ้น:

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

ซึ่งขาดหายไปใน ภาษาที่พิมพ์แบบคงที่:

หากคุณใช้ภาษาที่มีผลผูกพันตั้งแต่เนิ่นๆ เหมือนกับที่คนส่วนใหญ่ทำ คุณจะล็อคตัวเองเข้ากับสิ่งที่คุณเขียนไปแล้ว จะไม่สามารถจัดรูปแบบใหม่ได้อย่างง่ายดายอีกต่อไป

น่าประหลาดใจที่ความคิดของเขาเกี่ยวกับ OOP ถูกจำกัดอยู่เพียง:

OOP สำหรับฉันคือข้อความ การระงับและปกป้องในพื้นที่ การซ่อนสถานะ และการเชื่อมโยงทุกอย่างล่าช้า ซึ่งสามารถทำได้ใน Smalltalk และใน LISP

และไม่มีอะไรเกี่ยวกับมรดก นี่ไม่ใช่ OOP ที่เรารู้กันทุกวันนี้:

ฉันหวังว่าฉันจะใช้คำว่า "วัตถุ" สำหรับหัวข้อนี้มานานแล้วเพราะมันทำให้หลายคนให้ความสำคัญกับความคิดที่น้อยลง

แนวคิดสำคัญที่ภาษา OO ที่พิมพ์แบบคงที่สมัยใหม่ขาด:

ความคิดที่ยิ่งใหญ่คือ "ข้อความ"

เขาเชื่อในการมุ่งเน้นไปที่ข้อความ การมีเพศสัมพันธ์ที่หลวม และการโต้ตอบของโมดูลมากกว่าที่ภายในของวัตถุ:

กุญแจสำคัญในการสร้างระบบที่ปรับขนาดได้ที่ดีคือการกำหนดกลไกการสื่อสารระหว่างโมดูล และไม่คำนึงถึงคุณสมบัติและพฤติกรรมภายในของโมดูล

ภาษาที่พิมพ์แบบคงที่ดูเหมือนเขา มีข้อบกพร่อง:

ฉันไม่ได้ต่อต้านประเภท แต่ฉันไม่รู้ว่าระบบประเภทใดที่ไม่ทำให้เกิดความเจ็บปวด ฉันยังคงชอบการพิมพ์แบบไดนามิก

ภาษายอดนิยมบางภาษาในปัจจุบันใช้แนวคิดในการส่งข้อความของ Smalltalk, การผูกล่าช้า และ ไม่เข้าใจการร้องขอไปข้างหน้า в Objective-Cmethod_missing в ทับทิม и ไม่มีวิธีการดังกล่าว ใน Google โผ.

ทำลายทุกสิ่งและสร้างสิ่งที่ดีกว่า

อลันมีทฤษฎีที่น่าสนใจเกี่ยวกับการพัฒนาวิทยาการคอมพิวเตอร์:

สำหรับฉันดูเหมือนว่าวิทยาการคอมพิวเตอร์มีประเภทเดียวเท่านั้น และวิทยาศาสตร์นั้นก็เหมือนกับการสร้างสะพาน มีคนสร้างสะพาน และมีคนทำลายมันและสร้างทฤษฎีใหม่ และเราจำเป็นต้องสร้างสะพานต่อไป

เกี่ยวกับ LISP

Alan Kay เชื่อ Lisp

ภาษาโปรแกรมที่ดีที่สุดตลอดกาล

และบัณฑิตสาขาวิทยาการคอมพิวเตอร์ทุกคนควรศึกษา:

คนส่วนใหญ่ที่กำลังศึกษาต่อในสาขา CS ไม่เข้าใจถึงความสำคัญของ Lisp Lisp เป็นแนวคิดที่สำคัญที่สุดในวิทยาการคอมพิวเตอร์

เกี่ยวกับบรรยากาศและบริบทที่เหมาะสม

เขามักจะนึกถึงบรรยากาศอันเป็นเอกลักษณ์ใน ซีร็อกซ์ปาร์ก и อาภาโดยที่ "วิสัยทัศน์สำคัญกว่าเป้าหมาย" และ "การให้ทุนแก่ผู้คน ไม่ใช่โครงการ"

มุมมองมีค่า 80 คะแนน IQ

อลันเคย์ พูดว่า:

เรื่องราวของ ARPA/PARC แสดงให้เห็นว่าการผสมผสานระหว่างวิสัยทัศน์ เงินทุนที่พอประมาณ บริบทและกระบวนการที่เหมาะสมสามารถก่อให้เกิดเทคโนโลยีใหม่ๆ ที่ไม่เพียงแต่ส่งผลกระทบต่ออารยธรรมเท่านั้น แต่ยังสร้างมูลค่ามหาศาลให้กับสังคมอีกด้วย

และมันก็เป็นความจริง ดูรายการสิ่งประดิษฐ์ที่น่าประทับใจของ PARCซึ่งหลายแห่งมีบทบาทสำคัญในการพัฒนาโลกของเรา ตัวอย่างเช่น:

  • เครื่องพิมพ์เลเซอร์
  • การเขียนโปรแกรมเชิงวัตถุ / Smalltalk
  • คอมพิวเตอร์ส่วนบุคคล
  • อีเธอร์เน็ต / การคำนวณแบบกระจาย
  • GUI / เมาส์คอมพิวเตอร์ / WYSIWYG

และใน อาภา สร้างขึ้น อาร์พาเนตซึ่งกลายเป็นต้นกำเนิดของอินเทอร์เน็ต

PS Alan Kay ตอบคำถามจากชุมชน Hacker News.

ที่มา: will.com

เพิ่มความคิดเห็น