Tüm yazılar
Bilim Tarihi4 Aralık 2025

Edsger Dijkstra: Bilgisayar Biliminin Filozofu — Algoritmaları "Sanat" Olarak Yazan Hollandalı

"En kısa yol" algoritmasını 20 dakikada bir kafede düşündü; modern internet bunu hâlâ kullanıyor. "Goto ifadesi zararlıdır" başlıklı kısa mektubu, programlama tarihinin yönünü değiştirdi. Edsger Dijkstra, bilgisayar bilimini bir matematik disiplini olarak kurmaya çalıştı.

Matematik Karavanı Editörü 8 dk okuma 5 soru
Amsterdam kanalı — Dijkstra'nın Hollanda'sı

1956 yılı. Edsger W. Dijkstra (1930-2002) adlı 26 yaşında bir Hollandalı bilgisayar bilimcisi, eşi Ria ile Amsterdam'da bir kafede oturuyor. Ria alışveriş yaparken, Dijkstra bir bilgisayar gösterisi için kafasında bir algoritma tasarlamaya başlar. Soru: "Bir grafta iki düğüm arasındaki en kısa yolu nasıl buluruz?"

20 dakika sonra cevap belirir. Bugün Dijkstra algoritması olarak bilinen bu yöntem, modern dünyada trilyonlarca kez çalıştırılır: Google Maps, Apple Maps, Waze, internet routing protokolleri, lojistik optimizasyon, bilgisayar oyunları AI'sı — hepsi bu algoritmaya dayanır.

Dijkstra, bu algoritmadan çok daha geniş bir bilim insanıdır. 1972'de Turing Ödülü kazandı. "Goto ifadesi zararlıdır" (Goto Statement Considered Harmful, 1968) başlıklı kısa mektubu, modern yapılandırılmış programlamanın doğum belgesidir. Hayatı boyunca yaklaşık 1300 elle yazılmış metni (EWD'ler — Edsger W. Dijkstra notları) sürekli olarak meslektaşlarına dağıttı.

Onun ana misyonu: bilgisayar biliminin gerçekten bir bilim olduğunu kanıtlamak — sadece bir mühendislik pratiği değil, matematik kadar titiz bir disiplin.

Rotterdam'dan Amsterdam'a

Edsger Wybe Dijkstra, 11 Mayıs 1930'da Hollanda'nın Rotterdam şehrinde doğdu. Babası kimyacıydı, lise müdürlüğü yaptı; annesi matematikçiydi.

II. Dünya Savaşı sırasında Hollanda Nazi işgali altındaydı. Genç Edsger, lise yıllarını bu zorlu koşullarda geçirdi. Sonraki yıllarda "savaş yılları beni titiz, sade düşünmeye zorladı; aşırı süslemeli düşünceye zamanım yoktu" derdi.

1948'de Leiden Üniversitesi'ne girdi; teorik fizik okumayı düşündü. Ama yan görev olarak kabul ettiği Amsterdam Matematik Merkezi'ndeki programlama deneyimi onu büyüledi. 1952'de Hollanda'nın ilk programlama görevlerinden birini aldı.

Doktorasını 1959'da Amsterdam Üniversitesi'nde tamamladı; konu: bir gerçek-zamanlı kontrol sistemi (otomatik bagaj taşıma).

Dijkstra algoritması (1956)

26 yaşındayken, Dijkstra Amsterdam Matematik Merkezi için ARMAC bilgisayarının halka açık tanıtım gösterisini hazırlıyordu. Gösterinin etkileyici bir uygulaması olması gerekiyordu.

Cafede oturup düşündü: "Hollanda'nın iki şehri arasındaki en kısa yolu hangi algoritma bulur?"

Bu sorunun cevabı, sonraki yarım yüzyıl bilgisayar biliminin standart bir parçası oldu. Dijkstra algoritması:

  1. Başlangıç düğümüne mesafe 0, diğerlerine sonsuz ver.
  2. Ziyaret edilmemiş düğümler arasından en küçük mesafeli olanı al.
  3. Komşularını incele; eğer "bu düğüm üzerinden geçmek daha kısaysa" güncelle.
  4. Bu düğümü "ziyaret edildi" işaretle.
  5. Tüm düğümler ziyaret edilene kadar tekrarla.

Algoritma O((V+E)logV)O((V+E) \log V) zamanda çalışır (öncelikli kuyruk ile). Bir milyon düğümlü graf için saniyenin altında.

Dijkstra'nın bu algoritmayı yazıya dökmesi 3 yıl sürdü (1959, Numerische Mathematik dergisi). Sonra modern bilgisayar bilimi tarihinde en çok atıfta bulunulan makalelerden biri oldu.

"Goto ifadesi zararlıdır" (1968)

1968'de Dijkstra, Communications of the ACM dergisine kısa bir mektup gönderdi. Başlığı (editör tarafından konuldu): "Go To Statement Considered Harmful" (Goto İfadesi Zararlı Kabul Edilmelidir).

Mektubun mesajı: o dönem programcılar tarafından yaygın kullanılan goto ifadesi (programın akışını rastgele bir yere atlatma) programları anlaşılmaz ve hatalara açık yapıyor. Bunun yerine yapılandırılmış programlama (if/else, while, for döngüleri) kullanılmalı.

Bu kısa mektup, programlama dilleri tarihinde devrim etkisi yarattı. Modern programlama dilleri (Pascal, C, Python, JavaScript) doğrudan ya da dolaylı olarak bu felsefeyi benimsedi. Goto çoğu modern dilden tamamen kaldırıldı ya da çok sınırlı kullanılır.

Sonradan Dijkstra, "bu mektubun ünlü olması beni utandırdı; aslında çok daha derin bir şey söylüyordum" demişti. Onun ana mesajı sadece bir komutu eleştirmek değil, programları matematik teoremler gibi titiz biçimde kanıtlanabilir yazmak gerektiğiydi.

EWD'ler

Dijkstra'nın en sıra dışı çalışma alışkanlığı, EWD'ler denilen elle yazılmış metinlerdi. 1959'dan ölümüne kadar (2002), her birine sıra numarası verdiği yaklaşık 1300 metin yazdı.

Her EWD: matematiksel ispatlar, programlama dili eleştirileri, eğitim üzerine düşünceler, bilim politikası, ya da çağdaşı bilim insanlarına eleştiriler. Hepsi elle yazılmış, daktilo ya da bilgisayar ile değil. (İronik: o dönem dünyanın en ünlü bilgisayar bilimcisi, kendi yazılarını el ile yazıyordu.)

Bu EWD'ler, meslektaşlarına posta ile dağıtılırdı. Bugün University of Texas at Austin'in dijital arşivinde mevcuttur; modern bilgisayar bilimi felsefesinin önemli kaynaklarından biri.

Bazı ünlü EWD başlıkları:

  • "How do we tell truths that might hurt?" (EWD498) — yapay zekâ ve diğer modaya yeniliklerin abartılması üzerine.
  • "The humble programmer" (EWD340) — 1972 Turing Ödülü konuşması.
  • "On the cruelty of really teaching computer science" (EWD1036) — modern bilgisayar bilimi eğitimi eleştirisi.

1972 Turing Ödülü

Dijkstra, 42 yaşında Turing Ödülü'nü kazandı. Ödül atıfı: "Programlama dillerinin tasarımına yaptığı katkılar için".

Turing konuşmasında ("The Humble Programmer", 1972), modern bilgisayar biliminin geleceği üzerine derin bir vizyon sundu. Onun ana iddiası: bilgisayarların olağanüstü güçlü ama çok hatalı olabileceği. Programcılar, bu sistemleri yönetmek için matematik kesinlikte çalışmalı.

Bu vizyon, sonraki on yıllar boyunca formal verification (programların matematik olarak doğrulanması) araştırmasının itici gücü oldu. Bugün NASA, kritik tıbbi cihazlar, askeri sistemler, blockchain — hepsinde formal verification kullanılır.

Çağdaşlarıyla çatışmalar

Dijkstra, sıra dışı dik ve doğrudan bir bilim insanıydı. Çağdaşı pek çok büyük figüre açıkça eleştirel yazılar yazdı:

  • APL programlama dili: "Bir hastalık" diye nitelendirdi.
  • PL/I dili: "Bilgisayar bilimine yapılmış bir zarar".
  • COBOL: "Onu öğrenmek beyne kalıcı zarar verir".
  • Yapay zekâ araştırmaları: çoğu zaman "boş hype" diye eleştirdi.
  • Yazılım mühendisliği: "zayıfların güvenliği için bir terim".

Bu eleştirilerin pek çoğu o dönem tartışmalı oldu; ama Dijkstra'nın hassasiyeti bilgisayar biliminde matematik titizliğin önemini sürekli vurgulamasından geldi.

Diğer matematik katkıları

Dijkstra sadece bir algoritma ile sınırlı değildir:

  • Banker's algorithm — işletim sistemi kaynak yönetimi için.
  • Mutex / semafor kavramları — paralel programlamada eş zamanlı erişim kontrolü.
  • Düşman generaller problemi — dağıtık sistemlerde fikir birliği sorunu (sonradan Byzantine generals problem'in öncüsü).
  • Yapılandırılmış programlama teorisi — Böhm-Jacopini teoremi ile birlikte (her algoritmanın goto olmadan sadece sıralı, koşullu, döngülü yapılarla yazılabileceği).
  • Predikat dönüşümü hesabı (predicate transformer semantics) — program doğrulamasının matematiksel temeli.

Eindhoven ve Austin yılları

Dijkstra, 1962'den 1984'e kadar Eindhoven Teknik Üniversitesi'nde profesörlük yaptı. 1984'te ABD'ye, University of Texas at Austin'e geçti. Ölümüne kadar (2002) burada kaldı.

Texas'ta ünlü bir uygulaması vardı: derslerde sadece tahta ve tebeşir kullanırdı. Slayt yok, bilgisayar yok. "Eğer bir fikir tahtada anlatılamıyorsa, slaytlarla da anlatılamaz" derdi.

Bir başka sıra dışı alışkanlığı: araba kullanmazdı. Hayatı boyunca tek bir arabası olmadı.

Hayatının son yıllarında kanserle savaştı. 6 Ağustos 2002'de Nuenen, Hollanda'da öldü. Eşi Ria'nın yanında.

Mirası

Dijkstra'nın mirası modern bilgisayar biliminin temel taşlarındandır:

  • Dijkstra algoritması — Google Maps, internet routing, oyun AI, lojistik.
  • Yapılandırılmış programlama — modern programlama dillerinin felsefi temeli.
  • Eş zamanlı programlama — semaforlar, mutexler.
  • Formal verification — yazılım kalite güvencesinin matematiksel temeli.
  • 1300 EWD — modern bilgisayar bilimi felsefesinin önemli külliyatı.

Bir hayat dersi

Dijkstra'nın hayatı, "bir bilim insanı, kendi disiplinin etiğini koruyabilir" görüşünün modern örneklerinden biridir. O, bilgisayar biliminin sadece bir mühendislik pratiği değil, matematik kadar titiz bir bilim disiplini olduğunu savundu. Bu vizyon o dönem yaygın değildi; ama Dijkstra'nın ısrarı, modern bilgisayar bilimi eğitiminin yönünü kalıcı olarak şekillendirdi.

Daha geniş bir hayat dersi: bilim insanı, hem yaratıcı hem eleştirel olabilir. Dijkstra, kendi alanına yeni fikirler kattı; aynı zamanda alanın yanlış yönlerini açıkça eleştirdi. Bu denge, gerçek entelektüel cesaretin işaretidir.

Bir sonraki sefer Google Maps'te bir yol planı kurarken, ya da WhatsApp mesajınız internet üzerinden hedef sunucuya ulaşırken, ya da bir Python programı çalıştırdığınızda — perde arkasında 1956'da Amsterdam'da bir kafede 20 dakika düşünen bir Hollandalı bilim insanının etkisini hatırlayabilirsiniz. Edsger Dijkstra, modern dijital dünyanın görünmez filozoflarından biri.

Etiketler

edsger dijkstradijkstra algoritmasıyapılandırılmış programlamabilgisayar bilimi

Kendinizi Test Edin

Cevaplarınız profilinizde istatistik olarak saklanır.

1. Edsger Dijkstra'nın 1956'da bir Amsterdam kafede 20 dakikada tasarladığı algoritma hangisidir?

2. Dijkstra'nın 1968'deki ünlü "Goto ifadesi zararlıdır" mektubunun mesajı neydi?

3. "EWD'ler" nedir?

4. Dijkstra kaç yaşında Turing Ödülü'nü kazandı?

5. Dijkstra'nın bilgisayar bilimi öğretimi konusundaki ünlü tutumu nedir?