3 คะแนน โดย kunggom 2020-06-25 | 3 ความคิดเห็น | แชร์ทาง WhatsApp

Perl ได้ประกาศเกี่ยวกับเวอร์ชัน 7 แล้ว (ภาษาอังกฤษ) โดย Perl 7 จะออกมาในปีหน้า (2021)

Perl เป็นภาษาล่ามระดับสูงแบบ dynamic type ที่ Larry Wall เปิดตัวครั้งแรกในปี 1987 มีจุดเด่นด้านการพกพาและความเข้ากันได้ย้อนหลัง รวมถึงมีความสามารถในการประมวลผลสตริงที่ยอดเยี่ยม จึงถูกนำไปใช้สร้างสคริปต์หลากหลายประเภท หรือใช้งานในสาขาอย่างภาษาศาสตร์และชีวสารสนเทศด้วย จนถึงช่วงต้นยุค 2000 ก็ยังถูกใช้อย่างแพร่หลายในการเขียนโปรแกรมเว็บด้วยเช่นกัน ในยุคนั้นผมยังจำได้ว่าคำว่า CGI (Common Gateway Interface) บางครั้งก็ถูกใช้ผิดราวกับเป็นคำที่หมายถึงการจับคู่กันของ Apache HTTP Server กับภาษา Perl โดยเฉพาะ ระบบ Linux ส่วนใหญ่และ macOS จะติดตั้ง Perl มาให้โดยปริยาย จึงสามารถใช้งานได้ทันที ตอนนี้ลองตรวจสอบดูก็พบว่า macOS 10.15 บน MacBook ของผมติดตั้ง Perl v5.18.4 ไว้ ส่วน Ubuntu 20.04 ที่ทำงานบน Raspberry Pi 4 ติดตั้ง Perl v5.30.0 ไว้

Perl 6 เริ่มมีการออกแบบมาตั้งแต่ปี 2000 ซึ่งเป็นช่วงที่ Perl 5.6 เปิดตัว โดยมีเป้าหมายจะละทิ้งความเข้ากันได้ย้อนหลังและสะสางจุดที่ไม่สมเหตุสมผลซึ่งสะสมมาจากเหตุผลทางประวัติศาสตร์ทั้งหมด แต่หลังจากเลื่อนการเปิดตัวอยู่นานมาก สุดท้ายก็ถูกแยกออกไปเป็นภาษาอีกตัวหนึ่งในชื่อ Raku เมื่อปี 2019 ด้วยเหตุนี้ Perl จึงข้ามเวอร์ชัน 6 และไปเป็นเวอร์ชัน 7 ทันที นอกจากนี้ Perl 7 จะไม่ได้ต่างจาก 5.32 ซึ่งเป็นเวอร์ชันเสถียรล่าสุดในปัจจุบันมากนักโดยพื้นฐาน แต่จะใช้ค่าเริ่มต้นที่ทันสมัยและปลอดภัยกว่า หากการตั้งค่านี้ทำให้เกิดปัญหาความเข้ากันได้ ก็สามารถใช้โหมดความเข้ากันได้ที่ใช้ค่าตั้งของ Perl 5 แทนได้ นั่นหมายความว่าสคริปต์ Perl เดิมที่ใช้งานกันอยู่และโค้ดจำนวนมหาศาลที่อยู่บน CPAN (Comprehensive Perl Archive Network) จะยังสามารถใช้งานต่อบน Perl 7 ได้ด้วยการแก้ไขเพียงเล็กน้อยเท่านั้น

3 ความคิดเห็น

 
yongbin 2020-06-26

ขอบคุณสำหรับการสรุปครับ/ค่ะ มีบางส่วนที่ต่างจากความเข้าใจของผม/ดิฉันเล็กน้อย จึงขอคอมเมนต์ครับ/ค่ะ

  1. เป้าหมายการออกแบบของ perl6 ไม่ใช่การขจัดความไม่สมเหตุสมผลของ perl5 แต่ perl6 มุ่งไปในทิศทางของการสะท้อนกระบวนทัศน์การเขียนโปรแกรมและโครงสร้างรันไทม์ที่ทันสมัยยิ่งขึ้นลงในแกนของภาษา โดยตั้งอยู่บนจิตวิญญาณพื้นฐานของ perl5 ดังนั้น perl6 จึงไม่ได้มีเป้าหมายมาแทนที่ perl5 เพราะฉะนั้นความสัมพันธ์ของทั้งสองควรมองว่าใกล้เคียงกับ C และ C++ มากกว่าความสัมพันธ์ระหว่าง Python 2 และ Python 3

  2. perl6 ไม่ได้เปลี่ยนชื่อเป็น raku เพราะการเปิดตัวล่าช้า perl6 เปิดตัวอย่างเป็นทางการในวันคริสต์มาสปี 2015 และมี VM กับรันไทม์อยู่หลายแบบ การเปลี่ยนชื่อในปี 2019 ก็เป็นการตัดสินใจเพื่อเน้นย้ำความสัมพันธ์ที่เป็นอิสระระหว่าง perl5 กับ perl6 ให้ชัดเจนยิ่งขึ้น ตามที่กล่าวไว้ข้างต้น

ขอบคุณครับ/ค่ะ

 
kunggom 2020-06-26

เข้าใจแล้วครับ ขอบคุณสำหรับความคิดเห็นครับ

 
yongbin 2020-06-26

ขอบคุณสำหรับโพสต์นี้!