- Fransız programcı Fabrice Bellard, son 20 yılın en etkili geliştiricilerinden biri olarak, çok sayıda yenilikçi projeyi açık yazılım biçiminde yayımladı
- Çocukluğundan itibaren elektronik cihazlar ve düşük seviye programlama ile yoğun şekilde ilgilendi; 15 yaşında yürütülebilir dosya sıkıştırıcısı LZEXE'yi geliştirerek ilk başarısını elde etti
- Daha sonra École Polytechnique'te geniş kapsamlı bir mühendislik eğitimi alarak, matematiksel hesaplama ve bilgisayar mimarisi konusunda derin bir anlayış geliştirdi
- Öne çıkan çalışmaları arasında FFmpeg, TinyCC, QEMU bulunur; özellikle QEMU, sanallaştırma ve işlemci emülasyonu alanında temel bir teknoloji haline geldi
- Özgür yazılım felsefesini pratiğe döken Bellard, maddi kazançtan çok teknik merak ve paylaşımı önemseyen bir geliştirici olarak değerlendirilir
İlk yaşamı ve programlamaya başlangıcı
- 1972'de Fransa'nın Grenoble kentinde doğdu, Montpellier'de büyüdü
- Çocukluğundan itibaren elektronik cihazlara ilgi gösterdi; ilk kelimesinin “magnétophone(teyp kaydedici)” olduğu aktarılır
- 9 yaşında TI-59 programlanabilir hesap makinesi ile programlamaya başladı
- Sınırlı ekran ve karakter kümesine rağmen döngü gibi yüksek seviye kavramları öğrenerek düşük seviye kod sezgisini geliştirdi
- 11 yaşında TI-99/4A ev bilgisayarı kullanarak TI BASIC ile programlamayı genişletti
- Satır başına yalnızca tek komut girilebilen yapısı sayesinde, hesap makinesi programlamasından bilgisayar programlamasına doğal bir geçiş yaptı
LZEXE ve ilk başarılar
- 15 yaşında Amstrad PC1512 satın alarak ciddi anlamda geliştirme çalışmalarına başladı
- Depolama alanı kısıtlarını çözmek için LZEXE adlı bir yürütülebilir dosya sıkıştırıcısı geliştirdi
- LZSS algoritmasını 8086 assembly ile yeniden yazarak hızlı sıkıştırma ve açma işlemi sağladı
- BBS üzerinden dağıtıldı ve anında başarı kazandı
École Polytechnique'teki eğitimi
- Fransa'nın en prestijli okullarından École Polytechnique(X)'e kabul edildi
- 1 yıllık askerlik hizmetini de içeren 5 yıllık bir mühendislik derecesi programı
- Geniş kapsamlı genel ve teknik eğitim yoluyla eleştirel düşünme ve çok disiplinli yetkinlikleri öne çıkarır
- Bellard bu süreçte bilgisayar mimarisi ve hesaplama kuramının önemini benimsedi
- Assembly dili ve donanım anlayışını vazgeçilmez olarak vurguladı
Matematiksel araştırmalar ve algoritma geliştirme
- 1995'te Pollard'ın FFT çarpma yöntemini C dilinde uygulayarak sayısal algoritma araştırmalarına girdi
- FFT(Hızlı Fourier Dönüşümü) tabanlı cebirsel hesaplamalarla π'nin milyonlarca basamağını hesapladı
- 1997'de π'nin ikilik tabandaki n'inci basamağını hesaplayan formülü yayımladı
- Mevcut Bailey–Borwein–Plouffe formülüne göre %43 daha hızlı olan O(n²) karmaşıklığına sahip bir iyileştirme sundu
VReng ve TinyGL
- 1998'de öğrenci projesi olarak VReng(Virtual Reality Engine)'i geliştirdi
- İnternet multicast tabanlı 3D sanal dünya gezinme motoru
- Daha sonra OpenGL'in verimsizliklerini iyileştirmek için TinyGL'yi üretti
- 40KB boyutunda hafif bir 3D renderer olarak, Mesa'dan çok daha hızlı ve platformdan bağımsızdı
FFmpeg'in doğuşu
- 2000'de “Gerard Lantau” takma adıyla FFmpeg projesini başlattı
- Ses ve videoda kodlama, kod çözme, akış ve dönüştürme işlemlerini destekleyen bir araç
- libavcodec(codec kütüphanesi) ve libavformat(container işleme kütüphanesi) bileşenlerinden oluşur
- FFmpeg, çok çeşitli formatlar arasında dönüşümü destekler ve VLC gibi sayısız multimedya yazılımına entegre edilmiştir
IOCCC ödülü ve TinyCC
- 2000'de International Obfuscated C Code Contest(IOCCC) yarışmasını kazandı
- 4KB'den küçük bir C derleyicisi geliştirdi; bu çalışma daha sonra TinyCC'ye dönüştü
- TinyCC, ANSI C99 uyumlu ultra küçük bir derleyicidir ve Linux çekirdeğini 15 saniye içinde derleyebilir
- 2001'deki ikinci ödüllü çalışması, 475 bayt boyutunda bir asal sayı hesaplama programıydı
- FFT tabanlı algoritmayla milyonlarca basamaklı asal sayıları hızlıca hesapladı
QEMU ve sanallaştırmadaki yenilik
- 2005'te QEMU'yu yayımladı; işlemci mimarilerini yazılım yoluyla emüle etti
- Dinamik çeviri(dynamic translation) ile komut bloklarını gruplayıp dönüştürerek ve önbelleğe alarak performansı artırdı
- Belirli durumlarda neredeyse yerel düzeyde hız elde etti
- QEMU daha sonra VirtualBox, Xen, KVM gibi başlıca sanallaştırma teknolojilerinin temel bileşenlerinden biri olarak benimsendi
Özgür yazılım felsefesi ve geliştirme yaklaşımı
- Bellard, tüm önemli projelerini özgür yazılım lisanslarıyla yayımladı
- Maddi kazançtan çok ilgi ve faydayı önceliklendirdi, kaynak kod paylaşımına önem verdi
- İdari ve iletişim işlerinden çok salt geliştirme faaliyetlerine odaklandı
- Farklı konulara yönelmesinin nedenini, “aynı işi tekrar etmek sıkıcı olduğu için” diye açıkladı
Bilgisayar bilimine bakışı ve tavsiyeleri
- Bilgisayar bilimini pratik keşif(uygulama) ve teorik keşif(hesaplama kuramı) olarak ikiye ayırdı
- Her iki alanda da sınırları genişletmenin önemli olduğunu vurguladı
- Genç geliştiricilere temel kuram ve donanım bilgisi edinmelerini önerdi
- Algoritma öğrenimi için Donald Knuth'un 『The Art of Computer Programming』 eserini tavsiye etti
- O dönemde yürüttüğü araştırma, çok çekirdekli işlemcileri kullanan dijital sinyal işleme, özellikle Software Defined Radio ile ilgili projelerdi
1 yorum
Hacker News yorumları
Kendisi kesinlikle GOAT seviyesinde bir isim, ancak bu yazı sanki yazılım mühendisliğini pek bilmeyen biri tarafından yazılmış gibi
Örneğin QEMU’nun kod çeviri önbelleğini “ilk yerel performanslı emülatör” olarak tanımlamış, ama aslında JIT teknolojisi çok daha önceden beri vardı
Komutları birden fazla kez geçirip giderek daha fazla optimize eden çok geçişli bir yaklaşım benimsiyorlardı ve kullanım arttıkça hız da yükseliyordu
Elbette bu Bellard’ın başarısını küçültmez, ama gerçek gerçektir
ffmpeg ve QEMU’yu 5 yıl içinde ortaya koyup üstüne bir de IOCCC’yi iki kez kazanmış olması gerçekten akıl almaz bir başarı
Bu biyografi, şimdiye kadar bu efsanevi programcı hakkında gördüğüm tüm yazılardan daha fazla yeni bilgi içeriyor
Sonrasında da PC donanımı tabanlı 5G baz istasyonu ve LLM ile ilgili projeler üzerinde çalıştı
Açıkçası Fabrice Bellard LLM kodlama araçlarını kullanmaya başladı mı diye merak ediyorum
Eğer öyleyse üretkenliği daha da artardı; bu da biraz korkutucu olurdu
Kendisi zaten LLM sıkıştırma araştırması yaptı ve çoğunlukla C ile kod yazıyor
On yıllardır C kullanan biri, kodlarının büyük kısmını hatırlayıp yeniden kullanabilir
Bu yüzden LLM’ler ona çok büyük fayda sağlamıyor olabilir
Hatta kendi koduyla kendi LLM’ini eğitme ihtimalinin daha yüksek olduğunu düşünüyorum — bu, LTE projesi gibi ücretli kapalı bir projeye dönüşebilir
Kodu incelikli ve sistematik; genelde yapay zekanın ürettiği kodlara hiç benzemiyor
Programın tüm yapısını zihninde kurarak çalışan biri
Bu yüzden bazıları onun birden fazla kişi olduğunu ya da LLM kullandığını tahmin ediyor, ama o muhtemelen böyle laflara gülüp geçiyordur
Kısa süre önce MicroQuickJS’i yayımlayarak artık “efsanevi işler çıkarması beklenen biri” haline gelmiş oldu
İnsanlar ondan her zaman olağanüstü bir şey bekliyor
Bellard’ın antirez gibi zengin olup olmadığını merak ediyorum
(2009 tarihli bir yazı)