- Fabrice Bellard โปรแกรมเมอร์ชาวฝรั่งเศส เป็นหนึ่งในนักพัฒนาที่ทรงอิทธิพลที่สุดคนหนึ่งในช่วง 20 ปีที่ผ่านมา โดยเผยแพร่โปรเจ็กต์นวัตกรรมจำนวนมากในรูปแบบซอฟต์แวร์เสรี
- ตั้งแต่วัยเด็ก เขาหมกมุ่นกับ อุปกรณ์อิเล็กทรอนิกส์และการเขียนโปรแกรมระดับล่าง และประสบความสำเร็จตั้งแต่อายุ 15 ปีด้วยการพัฒนาโปรแกรมบีบอัดไฟล์ปฏิบัติการ LZEXE
- ต่อมาเขาได้รับการศึกษาวิศวกรรมอย่างรอบด้านที่ École Polytechnique พร้อมสร้างความเข้าใจอย่างลึกซึ้งเกี่ยวกับการคำนวณเชิงคณิตศาสตร์และสถาปัตยกรรมคอมพิวเตอร์
- ผลงานเด่นของเขาได้แก่ FFmpeg, TinyCC, QEMU โดยเฉพาะ QEMU ที่กลายเป็นเทคโนโลยีหลักในด้าน virtualization และ processor emulation
- เขาเป็นนักพัฒนาที่ได้รับการประเมินว่ายึดมั่นใน ปรัชญาซอฟต์แวร์เสรี โดยให้ความสำคัญกับความน่าสนใจทางเทคนิคและการแบ่งปันมากกว่าผลประโยชน์ทางการเงิน
ชีวิตช่วงต้นและการเริ่มต้นเขียนโปรแกรม
- เกิดเมื่อปี 1972 ที่เมืองเกรอน็อบล์ ประเทศฝรั่งเศส และเติบโตที่มงเปอลีเย
- เขาสนใจอุปกรณ์อิเล็กทรอนิกส์ตั้งแต่วัยเด็ก และเล่าว่าคำแรกที่พูดได้คือ “magnétophone(เครื่องบันทึกเทป)”
- เริ่มเขียนโปรแกรมตอนอายุ 9 ปีด้วย เครื่องคิดเลขแบบตั้งโปรแกรมได้ TI-59
- แม้จะมีข้อจำกัดด้านการแสดงผลและชุดตัวอักษร เขาก็เรียนรู้แนวคิดระดับสูงอย่างลูป และพัฒนาสัญชาตญาณด้านโค้ดระดับล่างไปพร้อมกัน
- ตอนอายุ 11 ปี เขาเริ่มใช้ โฮมคอมพิวเตอร์ TI-99/4A และขยายการเขียนโปรแกรมด้วย TI BASIC
- ด้วยโครงสร้างที่ป้อนคำสั่งได้เพียงหนึ่งคำสั่งต่อบรรทัด เขาจึงเปลี่ยนผ่านจากการเขียนโปรแกรมบนเครื่องคิดเลขสู่การเขียนโปรแกรมบนคอมพิวเตอร์ได้อย่างเป็นธรรมชาติ
LZEXE และความสำเร็จระยะแรก
- เมื่ออายุ 15 ปี เขาซื้อ Amstrad PC1512 และเริ่มทำงานพัฒนาอย่างจริงจัง
- เพื่อแก้ปัญหาข้อจำกัดด้านพื้นที่จัดเก็บ เขาพัฒนาโปรแกรมบีบอัดไฟล์ปฏิบัติการชื่อ LZEXE
- เขียนอัลกอริทึม LZSS ใหม่ด้วยภาษาแอสเซมบลี 8086 เพื่อให้บีบอัดและคลายบีบอัดได้อย่างรวดเร็ว
- โปรแกรมถูกแจกจ่ายผ่าน BBS และประสบความสำเร็จในทันที
การศึกษาที่ École Polytechnique
- เข้าเรียนที่ École Polytechnique(X) ซึ่งเป็นสถาบันชั้นนำของฝรั่งเศส
- เป็นหลักสูตรวิศวกรรม 5 ปี โดยรวมการรับราชการทหาร 1 ปี
- ให้ความสำคัญกับ การคิดเชิงวิพากษ์และความสามารถข้ามสาขา ผ่านการศึกษาทั้งด้านทั่วไปและเทคนิคอย่างกว้างขวาง
- Bellard ใช้กระบวนการเรียนรู้นี้เพื่อยืนยันความสำคัญของ สถาปัตยกรรมคอมพิวเตอร์และทฤษฎีการคำนวณ
- เขาเน้นว่าความเข้าใจภาษาแอสเซมบลีและฮาร์ดแวร์เป็นสิ่งจำเป็น
งานวิจัยทางคณิตศาสตร์และการพัฒนาอัลกอริทึม
- ในปี 1995 เขาเริ่มเข้าสู่งานวิจัยด้านอัลกอริทึมเชิงตัวเลขด้วยการนำ วิธีคูณ FFT ของ Pollard มาเขียนเป็นภาษา C
- ใช้ FFT (Fast Fourier Transform) ในการคำนวณเชิงพีชคณิตเพื่อคำนวณค่า π ได้หลายล้านหลัก
- ในปี 1997 เขาเผยแพร่ สูตรสำหรับคำนวณเลขฐานสองลำดับที่ n ของ π
- ปรับปรุงให้เร็วกว่า Bailey–Borwein–Plouffe formula เดิม 43% ด้วยความซับซ้อน O(n²)
VReng และ TinyGL
- ในปี 1998 เขาพัฒนา VReng(Virtual Reality Engine) เป็นโปรเจ็กต์นักศึกษา
- เป็นเอนจินสำหรับสำรวจโลกเสมือน 3D บนพื้นฐานอินเทอร์เน็ตมัลติคาสต์
- หลังจากนั้น เขาสร้าง TinyGL เพื่อปรับปรุงความไม่มีประสิทธิภาพของ OpenGL
- เป็นตัวเรนเดอร์ 3D ขนาดเบาเพียง 40KB ที่เร็วกว่า Mesa มาก และไม่ขึ้นกับแพลตฟอร์ม
การถือกำเนิดของ FFmpeg
- ในปี 2000 เขาเริ่มโปรเจ็กต์ FFmpeg ภายใต้นามแฝง “Gerard Lantau”
- เป็นเครื่องมือที่รองรับ การเข้ารหัส, ถอดรหัส, สตรีมมิง และแปลง เสียงและวิดีโอ
- ประกอบด้วย libavcodec (ไลบรารี codec) และ libavformat (ไลบรารีจัดการ container)
- FFmpeg รองรับการแปลงระหว่างฟอร์แมตจำนวนมาก และถูกผนวกเข้าไปใน ซอฟต์แวร์มัลติมีเดียจำนวนมาก เช่น VLC
รางวัล IOCCC และ TinyCC
- ในปี 2000 เขาชนะ International Obfuscated C Code Contest(IOCCC)
- เขาสร้าง C compiler ขนาดต่ำกว่า 4KB และต่อมาพัฒนาเป็น TinyCC
- TinyCC เป็นคอมไพเลอร์ขนาดเล็กมากที่เข้ากันได้กับ ANSI C99 และสามารถบิลด์ลินุกซ์เคอร์เนลได้ภายใน 15 วินาที
- ผลงานที่ชนะครั้งที่สองในปี 2001 คือ โปรแกรมคำนวณจำนวนเฉพาะ ขนาด 475 ไบต์
- ใช้อัลกอริทึมแบบอิง FFT เพื่อคำนวณจำนวนเฉพาะหลายล้านหลักได้อย่างรวดเร็ว
QEMU และนวัตกรรมด้าน virtualization
- ในปี 2005 เขาเปิดตัว QEMU ซึ่งจำลองสถาปัตยกรรมโปรเซสเซอร์ด้วยซอฟต์แวร์
- ใช้ dynamic translation เพื่อรวมบล็อกคำสั่งแล้วแปลงและแคชไว้ ทำให้ประสิทธิภาพดีขึ้น
- ในบางกรณีสามารถทำความเร็วได้ เกือบเทียบเท่าระดับ native
- ต่อมา QEMU ถูกนำไปใช้เป็นองค์ประกอบหลักของเทคโนโลยี virtualization สำคัญอย่าง VirtualBox, Xen, KVM
ปรัชญาซอฟต์แวร์เสรีและทัศนคติในการพัฒนา
- Bellard เผยแพร่โปรเจ็กต์สำคัญทั้งหมดภายใต้ ไลเซนส์ซอฟต์แวร์เสรี
- เขาให้ความสำคัญกับ ความน่าสนใจและประโยชน์ใช้สอย มากกว่าผลตอบแทนทางการเงิน และให้ความสำคัญกับการแบ่งปันซอร์สโค้ด
- เขามุ่งเน้นไปที่ การพัฒนาอย่างแท้จริง มากกว่างานด้านธุรการหรือการสื่อสาร
- เมื่อพูดถึงเหตุผลที่ท้าทายตัวเองกับหัวข้อที่หลากหลาย เขากล่าวว่า “ถ้าทำงานเดิมซ้ำ ๆ ก็จะน่าเบื่อ”
มุมมองต่อวิทยาการคอมพิวเตอร์และคำแนะนำ
- เขาแบ่งวิทยาการคอมพิวเตอร์ออกเป็น การสำรวจเชิงปฏิบัติ (การประยุกต์ใช้) และ การสำรวจเชิงทฤษฎี (ทฤษฎีการคำนวณ)
- และเน้นย้ำว่าการขยายขอบเขตของทั้งสองด้านเป็นเรื่องสำคัญ
- เขาแนะนำให้นักพัฒนารุ่นใหม่เรียนรู้ ทฤษฎีพื้นฐานและความเข้าใจฮาร์ดแวร์
- สำหรับการเรียนรู้อัลกอริทึม เขาแนะนำ 『The Art of Computer Programming』 ของ Donald Knuth
- งานวิจัยที่เขากำลังทำอยู่ในเวลานั้นคือ การประมวลผลสัญญาณดิจิทัลโดยใช้โปรเซสเซอร์แบบมัลติคอร์ โดยเฉพาะโปรเจ็กต์ที่เกี่ยวข้องกับ Software Defined Radio
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
เขาเป็นบุคคลระดับ GOAT อย่างไม่ต้องสงสัย แต่บทความนี้ดูเหมือนเขียนโดยคนที่ไม่ค่อยเข้าใจซอฟต์แวร์เอนจิเนียริง
ตัวอย่างเช่น อธิบายการแคชการแปลโค้ดของ QEMU ว่าเป็น ‘อีมูเลเตอร์ตัวแรกที่ได้ประสิทธิภาพระดับเนทีฟ’ ทั้งที่จริงแล้ว เทคโนโลยี JIT มีมาก่อนหน้านั้นนานมาก
โดยใช้ แนวทางแบบหลายพาส ที่ให้คำสั่งวิ่งผ่านหลายรอบและค่อย ๆ ปรับให้เหมาะสมขึ้น และยิ่งใช้งานมากก็ยิ่งเร็วขึ้น
แน่นอนว่านี่ไม่ได้ลดทอนความสำเร็จของ Bellard แต่ข้อเท็จจริงก็คือข้อเท็จจริง
การปล่อยทั้ง ffmpeg และ QEMU ภายในเวลา 5 ปี แถมยังได้รางวัล IOCCC ถึงสองครั้ง เป็นความสำเร็จที่บ้าคลั่งจริง ๆ
ชีวประวัติครั้งนี้มี ข้อมูลใหม่ เกี่ยวกับโปรแกรมเมอร์ระดับตำนานคนนี้มากกว่าบทความไหน ๆ ที่เคยเห็นมา
หลังจากนั้นเขายังทำ สถานีฐาน 5G บนฮาร์ดแวร์พีซี และ โปรเจ็กต์ที่เกี่ยวข้องกับ LLM อีกด้วย
พูดตรง ๆ ว่าอดสงสัยไม่ได้ว่า Fabrice Bellard เริ่มใช้เครื่องมือเขียนโค้ด LLM หรือยัง
ถ้าใช้จริง ผลิตภาพของเขาก็น่าจะสูงขึ้นไปอีก ซึ่งน่ากลัวพอสมควร
เขาเคยทำ งานวิจัยการบีบอัด LLM มาแล้ว และส่วนใหญ่เขียนโค้ดด้วย C
ถ้าเป็นคนที่ใช้ C มาหลายสิบปี ก็มักจะ จำและนำโค้ดกลับมาใช้ซ้ำ ได้อยู่แล้ว
ดังนั้น LLM อาจไม่ได้ช่วยมากนัก
ตรงกันข้าม ฉันคิดว่ามีโอกาสมากกว่าที่เขาจะ ฝึก LLM ของตัวเองจากโค้ดของตัวเอง — และอาจพัฒนาเป็นโปรเจ็กต์ปิดแบบเสียเงินเหมือน โปรเจ็กต์ LTE
โค้ดของเขา ประณีตและเป็นระบบ และต่างจากโค้ดที่ AI สร้างกันทั่วไปโดยสิ้นเชิง
เขาเป็นคนที่ทำงานโดยมองเห็นโครงสร้างทั้งหมดของโปรแกรมอยู่ในหัว
เพราะอย่างนั้นบางคนจึงเดาว่าเขาอาจมีหลายคนหรือไม่ก็ใช้ LLM แต่เขาคงหัวเราะกับคำพูดพวกนั้นอยู่
ช่วงหลังจากเปิดตัว MicroQuickJS เขาก็กลายเป็นคนที่ ต้องสร้างผลงานระดับตำนาน ไปแล้ว
ผู้คนคาดหวังสิ่งยิ่งใหญ่จากเขาอยู่เสมอ
อดสงสัยไม่ได้ว่า Bellard จะ รวยแบบ antirez หรือเปล่า
(เป็นบทความจากปี 2009)