1 puan yazan GN⁺ 2024-02-13 | 1 yorum | WhatsApp'ta paylaş

Multics işletim sistemi geliştirme hikayesi

  • Multics işletim sistemini geliştiren André Bensoussan, dosya sistemindeki önemli değişiklik çalışmalarından sorumluydu.
  • VTOC yöneticisi, dosya bilgilerinin disk ile bellek arasında taşınmasını, paylaşımlı bellek tampon havuzunun yönetimini ve disk üzerindeki bilgi alanının yönetimini gerçekleştiren bir alt sistemdi.
  • André, VTOC yöneticisinin tasarımını, gerçekleştirimini ve testini üstlendi; tasarım çalışmasını ilerletirken çok sayıda diyagram çizdi.

Geliştirme süreci ve başarı

  • Proje koordinatörü Tom Van Vleck, takvim konusunda endişeliydi; ancak André kod yazmaya başlayınca rahatladı.
  • André, bilgisayar terminali yerine kurşun kalemle kod yazdı, yazım yardımını da reddederek tüm işi bizzat yaptı.
  • Sonunda kurşun kalemle yazdığı temiz kodu terminale girip derlemeyi denedi; birkaç yazım hatasını düzelttikten sonra derleme başarıyla tamamlandı.
  • Sisteme entegre edilip test edildiğinde VTOC yöneticisi en başından itibaren kusursuz biçimde çalıştı.

André'nin başarısının sırrı

  • André, araç olarak yalnızca kurşun kalem kullanarak kusursuz bir program yazdı.
  • VTOC yöneticisinde bulunan tek hata, Tom Van Vleck'in yanlışlıkla hata işleme yordamlarının çağrı sırasını yanlış aktarmasından kaynaklanıyordu.
  • André'nin çalışma tarzı, yazılım mühendisliği üzerine bir hikâye olarak IEEE Computer'ın Nisan 1994 sayısında tanıtıldı ve Kasım 2003'te güncellendi.

GN⁺ görüşü

  • André Bensoussan'ın Multics işletim sistemi geliştirme hikayesi, titiz tasarımın ve yoğun odağın nasıl kusursuz bir sonuç ortaya çıkarabildiğini gösteriyor.
  • Yalnızca kalem ve kâğıt kullanılan bu geleneksel yöntem, modern ve karmaşık yazılım geliştirme araçlarıyla karşılaştırıldığında temellere sadık bir yaklaşımın önemini vurguluyor.
  • Bu hikâye, yazılım mühendisliği alanında dikkatli ön hazırlığın ve testin önemini hatırlatan iyi bir örnek olmanın yanı sıra, mühendislik eğitimi için de önemli bir ders sunuyor.

1 yorum

 
GN⁺ 2024-02-13
Hacker News görüşleri
  • İlk yorum özeti:

    • Net gereksinimler: Yazılımın daha az hatalı ve hızlı olmasının nedeni, net biçimde tanımlanmış gereksinimlerin bulunması. Günümüzde yazılımda neyin yapılması gerektiği belirsiz ve agile yaklaşımı nedeniyle sürekli değişiyor. Geliştiricilere net API'ler ve iyi tanımlanmış ölçütler sağlarsanız, çoğu zaman verimli kod yazabilirler.
  • İkinci yorum özeti:

    • Sovyet programcıların yeteneği: Sovyetler'den kaçan kişilerle çalışma deneyimine göre, Sovyet programcılarının çok iyi olmasının nedeni bilgisayara erişimin son derece sınırlı olmasıydı. Kâğıt ve kalemle programlama yapmak zorunda oldukları için, en baştan doğru çalışacak şekilde yazmaya çaba gösteriyorlardı.
  • Üçüncü yorum özeti:

    • Kişisel çalışma alanının önemi: Önceki bir Hacker News başlığında jrd259 hesabının yorumuna atıf yapılarak, büyük bir masa ve bildirimlerden arındırılmış kişisel bir çalışma alanının önemi vurgulanıyor.
  • Dördüncü yorum özeti:

    • Kâğıt üzerinde programlama deneyimi: Çocukken büyükbabasının evinde bilgisayar olmadan daktiloyla Turbo Pascal programları yazıp daha sonra PC'de çalıştırdığı anlatılıyor. Ayrıca, kendi yaptığı sıra dışı programlama dili Ziim'deki ikili toplama fonksiyonunu kâğıda geçirip hataları bulup düzelttiği deneyimini paylaşıyor. "Kolay" yöntemleri sınırlamanın, daha iyi düşünülmüş kod yazmayı teşvik edebileceği vurgulanıyor.
  • Beşinci yorum özeti:

    • Geçmişte programlama: "Big Iron" döneminin sonlarında programcılar, veri giriş personelinden çok da farklı değildi. Programlar kâğıda yazılırdı ve işlem süresi pahalı ve değerliydi. Hata oluşursa, bir sonraki CPU çalıştırmasını planlayana kadar düzeltme yapılamazdı. Bu da dikkatli bir yaklaşımı teşvik ediyordu. Günümüzde ise IDE içinde hata ayıklama yaparak yazılımı yinelemeli biçimde geliştiriyoruz.
  • Altıncı yorum özeti:

    • André Bensoussan'ın yazdığı kod: André Bensoussan'ın yazdığı koda bir bağlantı veriliyor.
  • Yedinci yorum özeti:

    • Geçmişte yazılımın boyutu: O dönemde yazılımlar bugüne kıyasla çok daha küçüktü; projelerin çoğu megabayt düzeyindeydi ama yine de tek bir dosyada "saklanamayacak" kadar büyüktü.
  • Sekizinci yorum özeti:

    • Okuldaki programlama ödevleri: Bir arkadaşının deneyimine göre, okulda programlama ödevlerini kâğıt üzerinde teslim edip sonuçları bir hafta sonra alıyorlardı. Bir haftalık "derleme süresi", işi iki kez kontrol etmeyi öğreten eğitici bir deneyimdi.
  • Dokuzuncu yorum özeti:

    • Agile/Scrum'un yokluğu: André'nin böyle bir çalışmayı nasıl yapabildiğine verilen yanıta göre, bunun nedeni Agile/Scrum geliştirme metodolojilerinin henüz ortaya çıkmamış olmasıydı.
  • Onuncu yorum özeti:

    • Kâğıt üzerinde kod yazma deneyimi: 14 yaşındayken lise programlama dersinde kodunun büyük kısmını kâğıt üzerinde yazdığını anlatıyor. Yoksul bir ülkede yaşayan yoksul bir çocuk olduğu için evinde PC yoktu ve okul bilgisayar laboratuvarındaki ZX Spectrum klonları, kullandığı Turbo Pascal'ı çalıştıramıyordu.