2 puan yazan GN⁺ 2025-12-25 | 1 yorum | WhatsApp'ta paylaş
  • 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

 
GN⁺ 2025-12-25
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ı

    • Üstelik eski Transmeta işlemcileri de benzer bir yaklaşım kullanıyordu
      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ı

    • Ayrıca ASN.1 derleyicisi ve yığınını da tek başına geliştirdi
  • 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

    • Mevcut LLM’lerin onun yaptığı düşük seviyeli yüksek performanslı işlerde gerçekten yardımcı olup olmayacağı şüpheli
    • Aslında daha önce ts_server adlı LLM bağlantılı bir proje de yaptı
    • Ben onun LLM kullanmadığını düşünüyorum
      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
    • Belki de LLM’nin Bellard’a sorduğu taraftır
    • Bazı çok iyi geliştiricilerin (mitsuhiko, Evan You vb.) LLM’leri yardımcı araç olarak kullanması gibi, Bellard da bu şekilde kullanıyor olabilir
  • 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ı)

    • Başlıkta 2009 yazıyor ama URL 2020, dolayısıyla metin sonradan güncellenmiş olabilir