ครบรอบ 40 ปี Turbo Pascal
(blog.marcocantu.com)- Turbo Pascal ที่ Borland เปิดตัวในเดือนพฤศจิกายน 1983 ครบรอบ 40 ปี อย่างเป็นทางการในเดือนพฤศจิกายน 2023
- Turbo Pascal เป็นผลิตภัณฑ์ที่เป็นจุดเริ่มต้นของ Borland และได้รับการยกย่องว่าเป็น Integrated Development Environment (IDE) ตัวแรก ๆ ที่ถูกใช้งานอย่างแพร่หลายในอุตสาหกรรม
- ในเวลานั้น สร้างความประทับใจอย่างมากทั้งด้านประสบการณ์การพัฒนาและความสมบูรณ์ของผลิตภัณฑ์ และนำไปสู่ ความสำเร็จเชิงพาณิชย์อย่างมาก
- Embarcadero ยังคงพัฒนาสายคอมไพเลอร์รุ่นต่อเนื่องอยู่ และคอมไพเลอร์ command-line สำหรับ Win32 ของ Delphi 12 Athens ใช้ เวอร์ชัน 36.0
- เนื่องจากระบบหมายเลขเวอร์ชันปัจจุบันสืบย้อนกลับไปถึง Turbo Pascal รุ่นแรก การครบรอบ 40 ปีครั้งนี้จึงเชื่อมโยงโดยตรงกับประวัติของสาย Delphi ด้วย
Turbo Pascal ที่เริ่มต้นในเดือนพฤศจิกายน 1983
- Turbo Pascal เป็นผลิตภัณฑ์ที่ Borland วางจำหน่ายในเดือนพฤศจิกายน 1983
- นับถึงเดือนพฤศจิกายน 2023 ครบรอบ 40 ปี อย่างเป็นทางการ
ตำแหน่งในประวัติศาสตร์ของ Borland และ IDE
- Turbo Pascal ได้รับการยกย่องว่าเป็น ผลิตภัณฑ์หมุดหมายสำคัญ ของอุตสาหกรรม
- เป็นผลิตภัณฑ์ที่ก่อกำเนิดบริษัท Borland
- ถูกกล่าวถึงว่าเป็น IDE ตัวแรกที่เป็นที่รู้จักอย่างแพร่หลาย
- ตามมาตรฐานในยุคนั้น ถือเป็นผลิตภัณฑ์ที่ยอดเยี่ยม และมีขนาดความสำเร็จใหญ่มาก
แหล่งอ่านเพิ่มเติมและบริบทของ Pascal
- สามารถอ่านเพิ่มเติมเกี่ยวกับ Turbo Pascal ได้จาก บล็อกโพสต์ล่าสุดของ David I และ Wikipedia
- สำหรับข้อมูลเกี่ยวกับ Pascal มีการนำเสนอ บล็อกโพสต์เกี่ยวกับ 50 ปีของ Pascal และ ปาฐกถาในงาน Pascal World Congress ครั้งแรกที่ Salamanca ควบคู่กัน
คอมไพเลอร์รุ่นต่อเนื่องที่มาถึง Embarcadero
- Embarcadero ยังคงพัฒนาไลน์ คอมไพเลอร์รุ่นต่อเนื่อง ของ Turbo Pascal อยู่
- ล่าสุดได้เปิดตัว เวอร์ชัน 36 ของคอมไพเลอร์ดังกล่าว
- ในคอมไพเลอร์ command-line ของ Delphi 12 Athens มีการแสดงเวอร์ชันว่า
Embarcadero Delphi for Win32 compiler version 36.0 - หมายเลขเวอร์ชัน 36 นี้เป็นระบบหมายเลขที่ย้อนกลับไปถึง Turbo Pascal รุ่นแรก
Easter Egg ฉลองครบรอบ 40 ปี
- Embarcadero ได้อุทิศ Easter Egg ในผลิตภัณฑ์เพื่อฉลองครบรอบ 40 ปีครั้งนี้ให้กับวันครบรอบของ Turbo Pascal
- ข้อความลงท้ายด้วย “Happy 40th birthday, Turbo Pascal!”
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
หนึ่งในเกมคอมพิวเตอร์ที่ผมชอบคือ ZZT ซึ่งเขียนด้วย Turbo Pascal เป็นเกมโหมดข้อความแปลก ๆ ที่ Tim Sweeney แห่ง Epic Megagames สร้างขึ้น ผสมทั้งปริศนาและยิงปืนเข้าด้วยกัน และแม้แต่เวอร์ชันแชร์แวร์ฟรีก็มีตัวแก้ไขเกมมาให้ รวมถึงภาษาโปรแกรมมิ่งเล็ก ๆ ชื่อ ZZT-OOP ด้วย
ซอร์สโค้ดต้นฉบับของ ZZT สูญหายไปแล้ว แต่หลายปีต่อมา Adrian Siekierka ได้ทำรีเวิร์สเอนจิเนียริ่งโค้ด Pascal เดิมอย่างมุ่งมั่น จนเมื่อคอมไพล์ด้วย Turbo Pascal เวอร์ชันเดิมแล้วได้ ไฟล์ executable ที่เหมือนกันระดับไบต์ต่อไบต์ น่าทึ่งมาก
https://blog.asie.pl/2020/08/reconstructing-zzt/
https://news.ycombinator.com/item?id=22609474
https://benhoyt.com/writings/zzt-in-go/
Turbo Pascal เป็นสิ่งที่พาผมเข้าสู่การเขียนโปรแกรม ผมจำได้ว่าเคยจ่ายเงินหลายร้อยมาร์คเยอรมันเพื่อซื้อไลเซนส์ Borland Pascal 7.0 และต่อมาก็ Delphi 1.0 กับ 2.0 สุดท้ายก็ได้ทำซอฟต์แวร์ “เชิงพาณิชย์” ตัวแรกที่ขายได้เงิน
ในยุค DOS ถ้าไม่นับ Basic แล้ว Turbo Pascal น่าจะเป็นเส้นทางที่ง่ายที่สุดในการเข้าสู่การเขียนโปรแกรม และบน Windows 3.1/95 Delphi ก็เป็นเครื่องมือที่ทำให้ตาสว่างว่า GUI programming สามารถง่ายได้ขนาดนี้
ในหลายแง่ กลับรู้สึกเหมือนถอยหลังจากตอนนั้นเสียอีก คอมไพเลอร์ Turbo Pascal / Delphi สร้างโปรแกรม GUI เต็มรูปแบบออกมาเป็นไบนารีขนาดเล็กได้ แต่ผมสงสัยว่าซอฟต์แวร์ที่มีประสิทธิภาพใกล้เคียงกันในวันนี้ทำไมถึงใหญ่ขึ้นได้อีกหลายหลักขนาดนั้น
ถ้าสาเหตุเป็นแค่พิมพ์ผิด การแก้ไข คอมไพล์ใหม่ และรัน ใช้เวลาแค่ 1 วินาที เครื่องมือสมัยนี้จำนวนมากมีปรัชญาอีกแบบ ที่มักบังคับให้นักพัฒนาต้องทำขั้นตอนที่ไม่จำเป็นมากขึ้น
ข้อยกเว้นคือ SAP ซึ่งไม่รู้ทำได้อย่างไร เหมือนจะประสบความสำเร็จในการผสมความเป็นปฏิปักษ์ต่อผู้ใช้ของ UI ยุค 90 เข้ากับการกินทรัพยากรของโปรแกรมสมัยใหม่ ภาษาแรกที่ผมใช้ต่อจาก BASIC ก็เป็น Turbo Pascal เหมือนกัน
สิ่งที่จำได้ชัดที่สุดเกี่ยวกับ TP คือทุกฟังก์ชันมีตัวอย่างโค้ดที่เรียบง่ายและเข้าใจง่าย และจัดเรียงอย่างมีเหตุผล ทำให้ค้นหาและนำไปใช้ได้ง่าย ดังนั้นแม้ตอนเป็นวัยรุ่นที่แทบจะเข้าใจ BASIC ได้แค่พอถูไถ ผมก็ยังเรียน Turbo Pascal ด้วยตัวเองได้โดยใช้แค่ IDE โดยไม่ต้องมีอินเทอร์เน็ต
ระบบสมัยนี้หลายอย่างแทบไม่มีอะไรที่ใกล้เคียงแบบนั้นเลย ผมสงสัยว่าเป็นเพราะลักษณะของระบบยุคนั้นที่เรียบง่ายและอยู่บน x86 DOS หรือว่าเพราะความเร็วในการเปลี่ยนแปลงของยุคใหม่ ความต้องการข้ามแพลตฟอร์ม และความซับซ้อน ทำให้การสร้างสิ่งแบบนั้นเป็นไปไม่ได้แล้วกันแน่
อยากเสริมว่าในตอนนั้น Processing เป็นเฟรมเวิร์ก creative coding เพียงตัวเดียวที่มีเอกสารออฟไลน์ครบถ้วน ตัวอย่างเช่น OpenFrameworks แม้ตอนนี้ก็ยังเหมือนเอกสารเปลือกเปล่าที่ส่วนใหญ่สร้างอัตโนมัติ
ผมคิดว่านี่เป็นหนึ่งในปัจจัยที่ทำให้ Processing ได้เปรียบทางเลือกอื่น ๆ ในแวดวงการศึกษา น่าเสียดายพอสมควรที่ p5.js ไม่ได้สืบทอดธรรมเนียมนั้นอย่างเต็มที่ ต้องออนไลน์ถึงจะอ่านเอกสารได้ และไม่ใช่เว็บไซต์สแตติก แต่กลายเป็นรูปแบบที่เรนเดอร์ข้อความด้วย JavaScript ตอนเปิดหน้าแทน ถึงอย่างนั้นตัวเอกสารเองก็ครบถ้วน รวมถึงตัวอย่างด้วย
https://processing.org/
https://p5js.org/
ตอนนั้นยังอีกหลายปีกว่าผมจะได้รู้จักอินเทอร์เน็ตที่มหาวิทยาลัย จึงไม่มีวิธีเข้าถึงสื่อการเรียนรู้ได้ง่าย ก่อนหน้านั้นเคยพยายามเรียน C หลายครั้งแต่ไม่ค่อยสำเร็จ หลังจากเรียน TP แล้วจึงสามารถย้ายสิ่งที่เรียนจาก Pascal ไปสู่ C ได้ และตอนนั้นก็ยังได้ความช่วยเหลือจากผลิตภัณฑ์ชั้นยอดอีกตัวของ Borland คือ C++ Builder
ภาษาโปรแกรม “จริงจัง” ภาษาแรกที่ผมเรียน หลังผ่าน 6809E assembly, BASIC สาย structured และ batch/shell มาในช่วงปลายยุค 80 คือ Turbo Pascal ตอนเข้าเรียนวิทยาการคอมพิวเตอร์ช่วงต้นยุค 90 วิชาปีหนึ่งก็ยังสอนด้วย Borland Pascal อยู่ ประสบการณ์นั้นจึงมีประโยชน์มาก
ไม่กี่ปีต่อมา พื้นฐาน Pascal ทำให้ผมได้ทำงานพัฒนาแอปแบบกำหนดเองด้วย Delphi อยู่ราว 5 ปี และต่อเนื่องไปสู่การทดสอบ Kylix กับ C++Builder IDE ที่ Borland เป็นช่วงเวลาที่ดีจริง ๆ
ตอนนี้ก็ยังคิดถึง Delphi ทุกวันนี้ถ้า IDE ไม่มีปลั๊กอินก็มักถูกมองว่าเป็นข้อบกพร่องร้ายแรงจนเป็นเรื่องปกติไปแล้ว แต่ในตอนนั้น แนวคิดเรื่องไลบรารีคอมโพเนนต์และสภาพแวดล้อมการเขียนโค้ดที่ขยายได้ง่ายด้วยภาษาของตัวเองนั้นเหมือนเวทมนตร์ล้วน ๆ การได้แตะ VCL และตัว IDE เองสนุกมากจริง ๆ
น่าเสียดายที่ Borland มุ่งสู่ตลาดองค์กร ทิ้งนักพัฒนาระดับรากหญ้าไว้ข้างหลัง และแทบจะฆ่าการเติบโตของการยอมรับในชุมชนไปเลย อย่างน้อยจนถึงช่วงราว ๆ Delphi 7 มันเป็นชุดเครื่องมือที่ยอดเยี่ยมจริง ๆ
ผมได้สัมผัส TP ครั้งแรกในฤดูหนาวปี 1993 ตอนอายุ 14 ปี เมื่อคัดลอกเถื่อนมาจาก warez BBS ต่างจากการแค่รันไฟล์ .BAS ความรู้สึกถึง พลังดิบ ๆ ตอนคอมไพล์ EXE ด้วยตัวเองนั้นชวนเคลิบเคลิ้มมาก
ผมเริ่มดัดแปลง Renegade BBS และทำโปรแกรม door และแม้จะล้มเหลว ก็ยังพยายามสร้าง worm, โทรจัน และไวรัส ประสบการณ์นี้เปลี่ยนชีวิตผมและสร้างเส้นทางที่ทำให้มาอยู่ในสายเทคโนโลยีตอนนี้ แถมแนวโน้มชอบนอกลู่นอกทางในวัยรุ่นก็แก้ได้แล้วด้วย ผมติดหนี้ Borland มาก
ไม่กี่ปีต่อมา ตอนอายุ 16 ผมพัฒนาแอปเล็ก ๆ สำหรับจัดการลูกค้าให้พ่อและได้รับเงินจริง ๆ แล้วเอาเงินส่วนหนึ่งไปซื้อ TP6 เวอร์ชันถูกลิขสิทธิ์ เป็นช่วงเวลาที่ดีจริง ๆ
Free Pascal ยังมีโหมดที่คล้ายกับ TP IDE ดั้งเดิมอยู่ เพียงแต่ว่าอย่างที่พวกเขาเองยอมรับ โค้ดกำลังเสื่อมสภาพลง และยังพึ่งพาลักษณะเฉพาะเก่า ๆ ของแพลตฟอร์ม MS-DOS ดั้งเดิมอย่างมาก
น่าเสียดายที่ไม่มีเวอร์ชันหน้าตาคล้ายกันที่ใช้เป็นเอดิเตอร์ทั่วไปในเทอร์มินัลได้เหมือน neovim หรือ emacs และผสานกับฟีเจอร์แนว IDE สมัยใหม่อย่าง LSP, parser ของ tree-sitter, หรือ Debug Adapter Protocol ได้ด้วย มันอาจเปลี่ยนเกมได้เลยเวลาต้องแก้โค้ดระยะไกลผ่านการเชื่อมต่อ SSH/เทอร์มินัล
คงยากจะพูดให้เกินจริงได้ว่า Turbo Pascal เร็วกว่าผลิตภัณฑ์คู่แข่งแค่ไหน มันเร็วมากจนแทบสงสัยว่ามีลูกเล่นอะไรอยู่หรือเปล่า และโปรแกรมที่สร้างออกมาก็เร็วกว่าเช่นกัน
สำหรับยุคนั้นมันคือ ผลงานชิ้นเอก และคำชมที่ได้รับก็สมควรอย่างยิ่ง
นั่นทำให้ผมได้เรียนรู้ว่าคอมไพเลอร์ที่สุกงอมแล้วดีกว่าคอมไพเลอร์รุ่น 1.0
ผมจำได้ว่าเมื่อหลายปีก่อนเคยบิลด์ FPC รุ่นสาย 2.0 บนพีซี Windows ที่มี RAM 512MB ใช้เวลาไม่ถึง 5 นาที
https://www.tmssoftware.com/site/blogold.asp?post=759
ตอนเด็ก ๆ เจ้าของร้านคอมพิวเตอร์ใจดีขาย เครื่องกึ่งเข้ากันได้กับ PC ที่รัน MS-DOS 1.25 ให้ผมในราคาดี ๆ ประมาณเท่าค่าตัดหญ้าสักร้อยครั้งกับค่าช่วยเลี้ยงเด็ก
เจ้าของร้านคนนั้นขาย Turbo Pascal สำหรับ MS-DOS ทั่วไปให้ผม คือเวอร์ชันที่ไม่สมมติว่ามี PC BIOS โดยมาเป็นฟลอปปีดิสก์ 8 นิ้ว แล้วเขาก็ถ่ายโอนมาเป็นฟอร์แมต 5.25 นิ้ว 160KB ที่เครื่องกึ่งเข้ากันได้ของผมใช้ได้ หวังว่าตอนนั้นผมจะรู้สึกขอบคุณมากพอ ๆ กับที่รู้สึกในตอนนี้ เพราะนั่นเป็นสิ่งที่เริ่มต้นอาชีพของผม
ช่วงต้นยุค 80 ผมใช้ Apple Pascal บน Apple ][+ และ //e หรือก็คือสภาพแวดล้อมที่อิงกับ UCSC p-system Pascal แล้วจึงย้ายมาใช้ Turbo Pascal บน DOS Turbo Pascal นั้นสนุกจริง ๆ เป็นประสบการณ์ที่ยอดเยี่ยมด้วยคอมไพเลอร์ที่เร็วมาก ฟีดแบ็กที่ดี เอดิเตอร์แบบสี และคีย์ลัดแบบ WordStar ที่คุ้นเคยอยู่แล้ว
ยังจำได้ด้วยว่าโปรแกรมใหญ่พอจนต้องใช้ฟีเจอร์ overlay ซึ่งทำให้โหลดส่วนต่าง ๆ ของโปรแกรมบน DOS เข้ามาได้เหมือนเป็นหน้าต่าง ๆ
ผมยังจำได้ว่าได้พบกับ David Intersimone ซึ่งเป็นทูตประชาสัมพันธ์ชั้นยอดของ Borland ในช่วงใดช่วงหนึ่งของยุค 80 น่าจะเป็นช่วงปลาย ๆ ตอนที่เขามาเยี่ยมตามคำเชิญของสาขาท้องถิ่นของ ACM ที่มหาวิทยาลัยของเรา
แปลกดีที่ Turbo Pascal เป็นภาษาโปรแกรมมิงระดับสูงภาษาแรกที่ผมเรียน และสภาพแวดล้อมตอนนั้นคือ Macintosh Plus ภายหลังถึงได้รู้ว่า Turbo Pascal เป็นของฝั่ง PC มากกว่า
ตอนเรียนมหาวิทยาลัย ผมใช้เงินกู้เพื่อการศึกษาซื้อคอมพิวเตอร์ Apple เครื่องแรกของตัวเอง คือ Macintosh Plus และบังเอิญเห็นประกาศขาย Turbo Pascal สำหรับ Mac ในหมวดโฆษณาของหนังสือพิมพ์มหาวิทยาลัย อาจารย์คนหนึ่งขายอยู่ราว 40 ดอลลาร์ ผมจึงซื้อทันที
โชคดีที่มีคู่มือมาด้วย แต่เครื่องมือพัฒนา Macintosh นั้นเรียบง่ายมาก ไม่มี ResEdit และมีแอป R-Maker แปลก ๆ ที่ให้สร้างรีซอร์สของ Macintosh เป็นไฟล์ข้อความ แล้วส่งผ่านเครื่องมือเพื่อสร้าง resource fork
แอปแรก ๆ ที่ผมทำคือการนำอัลกอริทึมจากคอลัมน์ Computer Recreations ของ Scientific American มาทำเป็น Turbo Pascal โชคดีที่แทบไม่ต้องมี UI ปกติก็แค่หน้าต่างหนึ่งบานกับปุ่มไม่กี่ปุ่มก็พอ
ต่อมาผมได้รู้จัก THINK Pascal ซึ่งเป็น IDE ที่เน้น Mac มากกว่ามาก จึงย้ายไปทางนั้น และหลังจากนั้นก็ลุย THINK C ต่อ
ถึงอย่างนั้น Turbo Pascal ก็จะยังคงเป็นความทรงจำอันน่ารักสำหรับผมเสมอ ในช่วงเวลาที่กำลังก้าวเข้าสู่โลกใหม่อันดิบหยาบนั้น Turbo Pascal เป็นผู้เปิดประตูให้ผม