Programlama Salaklıkları

Bir programlama kursunda başarılı olan öğrencilerle birebir ilgilenirken, bir kızın kodunda ilginç bir bölüm gördüm ve neden aynı satırı iki kere yazdığını sordum:

let x = 7;
let x = 7;

“İlk seferde kabul etmeyebileceğini düşündüm!” dedi.

Bir profesör öğrencilerine bir kaç programı yorumlamalarını söylediğinde, öğrencilerinden şöyle incelemeler geldi:

– “Bu program çok enterasan.”
– “Bu program çok yararlı.”
– “Bu program çok zor.”

Düzenlemem gereken bir kodda şöyle bir açıklama görmüştüm:

/* Bu fonksiyon BOOL tipi ama TRUE, FALSE ve -2 sonuçlarını veriyor, çünkü int yapma fırsatım olmadı.*/

Bu açıklamayı yazmak acaba daha uzun sürmedi mi?

Öğrencilerimden biri, yazdığı programın çalışmadığını söyledi. Ekrana eğildim ve şaşkınlıkla bütün kodları açıklama tagları içine yazdığını gördüm. Sebebini sorduğumda ilginç bir cevap verdi:

– Böyle çok daha hızlı derleniyordu!

Bir programlama sınıfına C öğretecektim, tanışma dersinde sınıfa “Programlamayla ilgili herhangi birşey bilen var mı?” diye sordum. Öğrencilerden biri sınıfa havasını attı:

– Ben daha önce chat programı kullandım!

Bu kod parçasını, UNIX için hazırlanan bir çok freeware oyun programında gördüm:

/*
* Bit degerleri.
*/
#define BIT_0 1
#define BIT_1 2
#define BIT_2 4
#define BIT_3 8
#define BIT_4 16
#define BIT_5 32
#define BIT_6 64
#define BIT_7 128
#define BIT_8 256
#define BIT_9 512
#define BIT_10 1024
#define BIT_11 2048
#define BIT_12 4096
#define BIT_13 8192
#define BIT_14 16384
#define BIT_15 32768
#define BIT_16 65536
#define BIT_17 131072
#define BIT_18 262144
#define BIT_19 524288
#define BIT_20 1048576
#define BIT_21 2097152
#define BIT_22 4194304
#define BIT_23 8388608
#define BIT_24 16777216
#define BIT_25 33554432
#define BIT_26 67108864
#define BIT_27 134217728
#define BIT_28 268435456
#define BIT_29 536870912
#define BIT_30 1073741824
#define BIT_31 2147483648

Aynı kod, çok daha kolay bir şekilde şöyle yazılabilirdi:

#define BIT_0 0x00000001
#define BIT_1 0x00000002
#define BIT_2 0x00000004
#define BIT_3 0x00000008
#define BIT_4 0x00000010

#define BIT_28 0x10000000
#define BIT_29 0x20000000
#define BIT_30 0x40000000
#define BIT_31 0x80000000

“Acaba bu adam o sayıları eliyle mi, yoksa hesap makinesiyle mi hesapladı” diye hala merak ediyorum.

Ünlü bir savunma bakanlığı müteahhiti olan müşterimiz, kodlarının çok yavaş çalıştığından şikayet etti:

GÖRÜŞME 1
Müteahhit: “Kodumuzu daha hızlı hale getirebilir misiniz?”
Teknik Destek: “Evet, ama önce kodu görmeliyiz.”
Müteahhit: “Gösteremeyiz. Kod gizlidir.”

Teknik Destek: “Kodun ne yaptığını söyleyebilir misiniz?”
Müteahhit: “Hayır, bu gizlidir.”
Teknik Destek: “Hangi fonksiyonları kullandığınızı söyleyebilir misiniz?”
Müteahhit: “Hayır, bu gizlidir.”

GÖRÜŞME 2
Bir süre sonra kendilerine, programımızın WINDOWS NT’de çalışan sürümünü gönderdik:

Müteahhit: Neden bu sürüm Pentium 800 mhz’de, VAX’ımızda çalıştığından daha hızlı çalışıyor?
Teknik Destek: VAX’ı ne zaman aldınız?
Müteahhit: 1980’lerin sonunda…

GÖRÜŞME 3
En sonunda kodlarının bazılarını açıkladılar. Kodu incelediğimizde bir bölümünün, bir dosyadan 1 milyon veya daha fazla kaydı çekmeye çalıştığını fark ettik. Dosyayı bir kere açıp bütün kayıtları almıyordu. Önce dosyayı açıp ilk satırı alıyor, sonra kapatıp tekrar açıyor ve ikinci satırı alıyor, sonra aynı şekilde diğerlerini de teker teker alıyordu. Bu, aynı dosyanın yaklaşık 1 milyon kere açılıp kapatılması demekti.

İbrahim

Hekim. Yazar, beğenirse çevirir, kod yazarak eğlenir. 2002'den beri internette yazıyor.

Sevebilirsin...

1 Yanıt

  1. LaNeT dedi ki:

    ağlanacak halimize gülüyoruz diye buna deniyor herhalde 🙂