ประวัติศาสตร์บอกเล่าของ Python โดย Guido van Rossum: สัมภาษณ์ Thomas Wouters
(gvanrossum.github.io)ฉบับแปลภาษาเกาหลีดูได้ที่ นี่
ตอนนี้ Guido ก็อายุมากขึ้นแล้ว เลยให้ความรู้สึกคล้ายบันทึกความทรงจำ
ดูเหมือนว่าน่าจะมีซีรีส์ออกมาอย่างต่อเนื่อง
สรุปบทสัมภาษณ์: ประวัติศาสตร์ยุคแรกของชุมชน Python กับ Thomas Wouters
เอกสารนี้เป็นบทสรุปของการสัมภาษณ์ที่ Guido van Rossum พูดคุยกับ Thomas Wouters เพื่อบันทึกเรื่องราวของผู้มีส่วนร่วมในชุมชน Python ยุคแรกก่อนปี 2015
1. ที่มาของการเริ่มต้นกับ Python
- Thomas Wouters เริ่มเขียนโปรแกรมผ่าน LambdaMOO ซึ่งเป็นสภาพแวดล้อมหลายผู้ใช้แบบข้อความในช่วงต้นทศวรรษ 1990 และมี object model คล้ายกับ Python
- เขาได้รู้จัก Python ครั้งแรกประมาณปี 1998~1999 จากคำแนะนำของคนรู้จัก และหลงใหลในโครงสร้างภาษาที่เข้าใจง่ายและสอดคล้องกับวิธีคิดของตน จนเริ่มมีส่วนร่วมในชุมชน Python-List บน Usenet
2. ผลงานสำคัญต่อการพัฒนาแกนหลักของ Python
- ตัวดำเนินการกำหนดค่าแบบผสม (
+=,-=เป็นต้น): เขารับช่วงต่อแพตช์ต้นแบบ (Proof of Concept) ของ Michael Hudson และพัฒนาจนเสร็จสมบูรณ์ ฟีเจอร์นี้ถูกรวมอยู่ใน Python 2.0 (PEP 203) และยังมีการถกเถียงเชิงลึกเกี่ยวกับ edge case ด้านการออกแบบ เช่น ข้อยกเว้นที่เกิดขึ้นเมื่อมีการเปลี่ยนแปลงลิสต์ภายในทูเพิล - ข้อเสนอ range literal: เขาเสนอไวยากรณ์ range literal ในรูปแบบอย่าง
[start:end]แม้ท้ายที่สุดจะถูกปฏิเสธเพราะความกำกวมทางไวยากรณ์ที่อาจทำให้สับสนกับลิสต์ และข้อจำกัดด้านการปรับแต่งประสิทธิภาพ แต่เขาก็มองว่ากระบวนการทำให้ไอเดียนี้เป็นรูปธรรมและนำมาถกเถียงนั้นมีคุณค่าในตัวเอง
3. วิวัฒนาการของฟีเจอร์ภาษาและกระบวนการรีลีส
- nested scopes และโมดูล
__future__: ตอนที่ Jeremy Hylton นำ nested scopes เข้ามา มีการถกเถียงกันยาวนานเรื่องการทำให้โค้ดเดิมเสีย backward compatibility ในระหว่างการแก้ปัญหาข้อถกเถียงนี้ Tim Peters ได้เสนอแนวทางfrom __future__ import ...และจึงมีการนำมาใช้ - การเปลี่ยนแปลงนโยบายรีลีส: ในช่วงแรก แม้แต่ minor release ก็ยังมีการเพิ่มฟีเจอร์ที่ทำให้ความเข้ากันได้เดิมพังอยู่บ่อยครั้ง แต่เมื่อรับฟังคำวิจารณ์จาก Steve Holden และคนอื่น ๆ จึงมีการนำรอบรีลีส 18 เดือนมาใช้ ซึ่งกลายเป็นรากฐานของรอบรีลีสปีละครั้งในปัจจุบัน
4. บุคคลและโครงการสำคัญในชุมชนยุคแรก
- Frederik Lundh (Effbot): เป็นผู้มีส่วนร่วมหลักของ regex engine, Tkinter และโมดูล XML (ElementTree)
- ทีม Twisted: ก่อนยุคของ
asyncioพวกเขาวางรากฐานของการเขียนโปรแกรมแบบ asynchronous ด้วยการใช้ callbacks และแนวคิดDeferred - บุคคลอื่น ๆ: มีการกล่าวถึงนักพัฒนาแกนหลักยุคแรกอย่าง Tim Peters, Jeremy Hylton, Marc-André Lemburg (ผู้มีส่วนร่วมด้าน Unicode) และคนอื่น ๆ
5. พื้นเพส่วนตัวและการก่อตั้ง PSF (Python Software Foundation)
- การศึกษาและอาชีพ: Thomas Wouters ลาออกจากโรงเรียนมัธยม แต่ด้วยลักษณะของวงการไอทีในยุคนั้นที่ให้ความสำคัญกับความสามารถ เขาจึงสร้างเส้นทางอาชีพที่ประสบความสำเร็จได้ที่ XS4ALL, Google และที่อื่น ๆ
- การเลือกตั้งคณะกรรมการ PSF: PSF เปิดตัวอย่างเป็นทางการที่งาน International Python Conference (IPC) ครั้งแรกในปี 2001 มีเกร็ดเล่าว่าในการเลือกตั้งคณะกรรมการ Thomas Wouters กับ Eric Raymond ได้คะแนนเท่ากัน และหลังการลงคะแนนใหม่ Thomas จึงได้รับเลือก
- PyCon ยุคแรกและการรับรองสถานะองค์กรไม่แสวงหากำไร: PSF ต้องเผชิญความยากลำบากด้านการเงินและงานธุรการ เช่น การหาผู้สนับสนุนจำนวนมากเพื่อรักษาสถานะองค์กรไม่แสวงหากำไรแบบ 501(c)(3) ต่อมา PyCon ครั้งแรกที่จัดขึ้นที่ George Washington University ก็จัดขึ้นท่ามกลางงบประมาณและกำลังคนที่จำกัด พร้อมทั้งมีการลองผิดลองถูกในเรื่องอาหารและระบบลงทะเบียน
ยังไม่มีความคิดเห็น