← กลับไปยังบทความทั้งหมด

จอห์น เอ็ม. สโคลส์ ผู้บุกเบิกฟังก์ชันทางตรงในภาษา APL

สรุปใจความสำคัญ

  • จอห์น เอ็ม. สโคลส์ เป็นผู้ออกแบบและนำ direct functions (dfns) มาใช้ในภาษา APL
  • เขาเป็นผู้ร่วมก่อตั้งและอดีตผู้อำนวยการของบริษัท Dyalog APL
  • dfns เป็นการผสานการเขียนโปรแกรมแบบอาเรย์เข้ากับการเขียนโปรแกรมเชิงฟังก์ชัน
  • สโคลส์สำเร็จการศึกษาด้านคณิตศาสตร์จากมหาวิทยาลัยแมนเชสเตอร์

จอห์น มอร์ลีย์ สโคลส์ (John Morley Scholes, ค.ศ. 1948–2019) เป็นนักวิทยาศาสตร์คอมพิวเตอร์ชาวอังกฤษที่มีบทบาทสำคัญในการพัฒนาภาษาโปรแกรม APL (A Programming Language) โดยผลงานที่โดดเด่นที่สุดของเขาคือการออกแบบและนำ direct functions หรือ dfns มาใช้ ซึ่งเป็นการผสานแนวคิดของการเขียนโปรแกรมเชิงฟังก์ชัน (Functional Programming) เข้ากับภาษาการเขียนโปรแกรมแบบอาเรย์ (Array Programming)

ภาพถ่ายของ จอห์น เอ็ม. สโคลส์
จอห์น เอ็ม. สโคลส์ นักวิทยาศาสตร์คอมพิวเตอร์ผู้พัฒนา dfns ในภาษา APL

ประวัติส่วนตัวและการศึกษา

จอห์น สโคลส์ เกิดเมื่อวันที่ 24 เมษายน ค.ศ. 1948 ที่เมืองเลมิงตันสปา (Leamington Spa) มณฑลวอริกเชียร์ ประเทศอังกฤษ เขาเข้ารับการศึกษาที่ Leamington College for Boys ระหว่างปี ค.ศ. 1960 ถึง 1966 จากนั้นเข้าศึกษาต่อที่มหาวิทยาลัยแมนเชสเตอร์ (University of Manchester) และสำเร็จการศึกษาระดับปริญญาตรี (BSc with honours) สาขาคณิตศาสตร์ ในปี ค.ศ. 1969

นอกเหนือจากความสนใจด้านเทคโนโลยี สโคลส์ยังมีความหลงใหลในด้านศิลปะและวรรณกรรม เขาชื่นชอบในธรรมชาติ โอเปร่า ดนตรีของ Tom Waits วรรณกรรมของ James Joyce และกวีนิพนธ์ของ W. B. Yeats โดยเขาได้เป็นสมาชิกของสมาคม Joyce ในกรุงดับลิน และเคยเข้าร่วมโรงเรียนภาคฤดูร้อน W. B. Yeats ที่เมืองสลิโก (Sligo) ในปี ค.ศ. 2013 ซึ่งทำให้เขาได้พบกับกวี Seamus Heaney ก่อนที่ Heaney จะเสียชีวิต

เส้นทางอาชีพและการทำงาน

สโคลส์เริ่มต้นอาชีพด้วยการเป็นโปรแกรมเมอร์ฝึกหัดที่ International Computers Limited (ICL) ในปี ค.ศ. 1969–1970 ต่อมาเขาได้ทำงานในแผนกวิจัยการดำเนินงาน (Operations Research Department) ของ WS Atkins ในเมืองเอปซอม (Epsom) ระหว่างปี ค.ศ. 1971–1975 และย้ายไปทำงานที่แผนกสนับสนุนการขายในเมืองวอร์ริงตัน (Warrington) ระหว่างปี ค.ศ. 1976–1977

ในช่วงปี ค.ศ. 1977–1978 เขาได้ร่วมงานกับองค์การอวกาศยุโรป (European Space Agency) ณ กรุงมาดริด ประเทศสเปน ในฐานะโปรแกรมเมอร์สำหรับโครงการ International Ultraviolet Explorer ก่อนจะกลับมาทำงานที่ ICL Dataskil เพื่อพัฒนาภาษา APL สำหรับระบบปฏิบัติการ VME/B ระหว่างปี ค.ศ. 1978–1982

ในปี ค.ศ. 1982 สโคลส์ได้ริเริ่มโครงการ Dyalog APL สำหรับเครื่องคอมพิวเตอร์ระบบ Unix และในปี ค.ศ. 1988 เขาได้ก้าวขึ้นเป็นหุ้นส่วนและผู้อำนวยการของบริษัท Dyalog ต่อมาในปี ค.ศ. 2004 เขาได้ขายหุ้นในบริษัทแต่ยังคงทำงานเป็นที่ปรึกษาและทุ่มเทให้กับการศึกษาหัวข้อทางคณิตศาสตร์ การเขียนโปรแกรมเชิงฟังก์ชัน และการพัฒนา dfns อย่างต่อเนื่อง

การพัฒนา Direct Functions (dfns)

แนวคิดเรื่อง direct functions หรือ dfns ถูกคิดค้นโดยสโคลส์ในปี ค.ศ. 1996 ซึ่งถือเป็นความก้าวหน้าครั้งสำคัญของภาษา APL ในศตวรรษที่ 21 โดย dfns เป็นการรวมตัวกันของสามแนวคิดหลัก ได้แก่ การเขียนโปรแกรมแบบอาเรย์ (Array Programming), ฟังก์ชันอันดับสูง (Higher-order functions) และการเขียนโปรแกรมเชิงฟังก์ชัน (Functional Programming)

แรงบันดาลใจของสโคลส์เริ่มต้นในปี ค.ศ. 1989 หลังจากที่เขาได้อ่านวารสาร The Computer Journal ฉบับพิเศษเกี่ยวกับการเขียนโปรแกรมเชิงฟังก์ชัน เขาจึงเริ่มศึกษาและพยายามนำแนวคิดเหล่านี้มาประยุกต์ใช้กับ APL อย่างไรก็ตาม ในช่วงแรกเขาพัฒนาสิ่งนี้อย่างลับๆ เนื่องจากกังวลว่าการเปลี่ยนแปลงดังกล่าวอาจถูกมองว่ารุนแรงเกินไปหรือสร้างความซับซ้อนให้กับภาษาโดยไม่จำเป็น

dfns ถูกนำเสนอเป็นครั้งแรกในงาน Dyalog Vendor Forum ณ การประชุม APL '96 และถูกปล่อยออกมาใน Dyalog APL ในช่วงต้นปี ค.ศ. 1997 แม้ว่าในช่วงแรกการยอมรับจะเกิดขึ้นอย่างช้าๆ แต่ในปัจจุบัน dfns ได้ถูกนำไปใช้ใน Dyalog APL, NARS2000 และ ngn/apl รวมถึงมีบทบาทสำคัญในการใช้ประโยชน์จากขีดความสามารถในการคำนวณของ GPU (Graphics Processing Unit)

คำถามที่พบบ่อย

John M. Scholes คือใคร?

เขาเป็นนักวิทยาศาสตร์คอมพิวเตอร์ชาวอังกฤษ ผู้มีบทบาทสำคัญในการพัฒนาภาษาโปรแกรม APL และเป็นผู้คิดค้น direct functions (dfns)

dfns ในภาษา APL คืออะไร?

dfns หรือ direct functions คือรูปแบบการนิยามฟังก์ชันที่นำแนวคิดการเขียนโปรแกรมเชิงฟังก์ชัน (Functional Programming) มาใช้ใน APL ทำให้สามารถสร้างฟังก์ชันนิรนาม (Anonymous functions) และรองรับฟังก์ชันอันดับสูง (Higher-order functions) ได้

Dyalog APL คืออะไร?

Dyalog APL เป็นระบบการนำภาษา APL ไปใช้งาน (Implementation) ที่สโคลส์เป็นผู้ริเริ่มโครงการและเคยดำรงตำแหน่งผู้อำนวยการบริษัท Dyalog

ผลงานของสโคลส์ส่งผลต่อเทคโนโลยีปัจจุบันอย่างไร?

แนวคิด dfns ของเขามีส่วนช่วยในการพัฒนาการคำนวณผ่าน GPU (Graphics Processing Unit) ในภาษา APL