Kod bir yükümlülüktür (bir varlık değil). Teknoloji patronları bunu anlamıyor. Yapay zekanın harika olduğunu düşünüyorlar çünkü bir programcıdan 10.000 kat daha fazla kod üretiyor, ama bu sadece 10.000 kat daha fazla yük ürettiği anlamına geliyor. 1/
Bu konunun makale formatlı bir sürümünü okumak veya paylaşmak isterseniz, işte gözetimsiz, reklamsız, izleyicisiz blogumda bir bağlantı: 2/
Yapay zeka, yüksek teknoloji toplumumuzun duvarlarına küreklediğimiz asbesttir: Kod bir yüktür. Kodun *yetenekleri* varlıklardır. 3/
Bir teknoloji mağazasının amacı, kodun çalışır durumda kalmasının maliyetinden daha fazla gelir getirebilecek kodlara sahip olmaktır. 4/
Uzun zamandır firmalar, kodun zaman içinde çalıştırmasının daha düşük maliyetli olduğuna dair yanlış bir inancı besliyorlar: koddaki hataların bulunup giderildiği ilk bir deneme döneminden sonra, kod anlamlı bakıma ihtiyaç duymaz. 5/
Sonuçta, kod hareketli parçaları olmayan bir makinedir - aşınmaz; Aşınmıyor bile. Bu, Paul Mason'ın 2015 tarihli *Postkapitalizm* kitabının tezidir; bu kitap oldukça kötü yaşlanmış (belki de Mason'ın kendi siyasi güvenilirliği kadar kötü değil). 6/
Kod, emek gerektirmeyen sonsuz tekrarlanabilir bir makine değildir. Bunun yerine, iyi çalışır durumda kalması için giderek kahramanca önlemler gerektiren kırılgan bir makinedir ve sonunda "aşınır" (baştan sona yeniden düzenlemeye ihtiyaç duyar anlamında). 7/
Kodun neden bir yük olduğunu anlamak için "kod yazmak" ile "yazılım mühendisliği" arasındaki farkı anlamanız gerekir. "Kod yazmak" inanılmaz derecede faydalı, eğlenceli ve sürükleyici bir uğraştır. 8/
Karmaşık görevleri o kadar hassas adımlara ayırır ki, bir bilgisayar bunları güvenilir şekilde yerine getirebilir ve RAM ve işlemci döngüleri gibi kodun bilgisayar kaynaklarına yüklediği yükü en az şekilde en düşük yöntemler bularak performansı optimize eder. 9/
Bu arada, "yazılım mühendisliği" "kod yazma"yı kapsayan bir disiplindir ancak kodun parçası olduğu *sistemin* uzun vadeli operasyonlarına odaklanır. 10/
Yazılım mühendisliği, sistemin aldığı verileri üreten üst akış süreçleriyle ilgilenir. Sistemin işlenmiş bilgileri yaydığı aşağı akış süreçleriyle ilgilenir. 11/
Bu, aynı üst akış süreçlerinden veri alan ve/veya sistemin yaydığı aynı aşağı akış süreçlerine veri yayan bitişik sistemlerle ilgilenir. 12/
"Kod yazmak" *iyi çalışan* kod yapmakla ilgilidir. "Yazılım mühendisliği" iyi başarısız olan kod yapmakla ilgilidir. Bu, üçüncü taraflar tarafından anlaşılabilecek ve işlevlerini koruyabilen kod yapmakla ilgilidir. 13/
Bu üçüncü taraflardan, sistemin bozulmamasını önlemek için süreçleri sistemin aşağı, yukarı veya bitişik kısmına uyarlamaları istenebilir. 14/
İşte mesele şu: herhangi bir önemsiz kod dış dünyayla etkileşime girmek zorundadır ve dış dünya statik değil, *dinamik*. Dış dünya, yazılım yazarlarının yaptığı varsayımları *her zaman* aşıyor ve her zaman yazılımın düzeltilmesi gerekiyor. 16/
Y2K'yı hatırlıyor musun? O gün, kusursuz işlevsel kod, kusursuz işlevsel donanımda çalışmayı bırakıyordu - kodun değişmesinden değil, *zamanın ilerlemesi* yüzünden. 17/
Y2038 sorununa 12 yıl kaldık; 32-bit Unix versiyonlarının hepsi çalışmayı bırakacak, çünkü onların da hesaplanabilir saniyeleri tükenecek. 18/
"Dünya"nın varlığı, yazılımı yıpratan ve çoğu zaman büyük bir maliyetle yeniden inşa edilmesini gerektiren kaçınılmaz bir faktördür. Kod ne kadar uzun süre çalışırsa, "dünya" ile karşılaşma olasılığı o kadar artar. 20/
Cihazların fiziksel konumlarını bildirmek için kullandıkları kodu ele alalım. Başlangıçta, bu faturalama gibi şeyler için kullanılıyordu - hangi operatör veya sağlayıcının ağını kullandığınızı ve dolaşım yapıp yapmadığınızı belirlemek. 21/
Daha sonra, mobil cihazlarımız bu kodu kullanarak konumunuzu belirlemeye yardımcı oldu ve navigasyon uygulamalarında size dönüş yol tarifleri verdi. Sonra, bu kod kayıp cihazlarımızı bulmamıza yardımcı olmak için yeniden kullanıldı. 22/
Bu, *çalınmış* cihazları bulmanın bir yolu haline geldi; bu kullanım durumu kayıp cihazları bulmaktan keskin şekilde farklılaşıyordu. Kayıp bir cihazı bulurken, kötü niyetli bir aktörün "kayıp cihazımı bul" özelliğini devre dışı bırakmış olma ihtimaliyle uğraşmak zorunda kalmazsınız. 23/
Bu ek kullanım durumları - yukarı, aşağı akış ve bitişik - orijinal kodda önceki uygulamalarda hiç ortaya çıkmayan hataları ortaya çıkardı. 24/
Örneğin, tüm konum servislerinin (çok yaygın) nerede olduklarından emin olmadıkları durumlarda varsayılan bir davranışa sahip olması gerekir. 25/
Belki genel bir çözümleri vardır - örneğin, hangi hücresel direğe bağlı olduklarını bilirler ya da *son* doğru konum belirleme bulduklarında nerede olduklarını bilirler - ya da tamamen kaybolmuş olabilirler. 26/
Birçok durumda, konum uygulamalarının *olabileceğini* tüm yerlerin etrafına bir daire çizip konumlarını o dairenin ortasına koyduğu ortaya çıktı. 27/
Daire sadece birkaç feet çapındaysa veya uygulama bu yaklaşımı hızlıca daha kesin bir konumla değiştirirse sorun değil. Ama ya konum kilometrelerce genişlikte ve konum sabiti *asla* düzelmezse? 28/
Ya herhangi bir IP adresinin konumu tanımlanmış bir konum *kıta ABD'nin merkezi* olarak verilse ve nerede olduğunu bilmeyen herhangi bir uygulama bunun Kansas'taki bir evde olduğunu bildirirse? 29/
Ve benim Burbank kasabamda, Google'ın konum paylaşım servisi bir keresinde bize o zamanlar 11 yaşındaki kızımızın (telefonuna ulaşamadığımız) 12 mil uzakta, LA ilçesinin tüzel kişiliği olmayan bir bölgesinde bir otoyol rampasında olduğunu söylemişti. 32/
(Yakındaki bir parktaydı ama menzil dışındaydı ve uygulama onun konumunu en son sabitlediği bölgenin merkezi olarak tahmin etmişti.) (Zorlu birkaç saat sürdü.) 33/
Temel kod - bir zamanlar zararsız olan bazı varsayılan olarak bilinmeyen yerleri karıştıran kod - *sürekli* güncellenmelidir, çünkü ona bağlı yukarı, aşağı ve bitişik süreçler *sürekli* değişir. 34/
Kod ne kadar uzun süre orada durursa, orijinal davranışları o kadar çok ekilenmiş hale gelir ve üzerindeki katmanlar o kadar barok, dağınık ve karmaşık hale gelir. 35/
Kod bir varlık değil - bir yükümlülüktür. Bir bilgisayar sistemi ne kadar uzun süre çalışırsa, o kadar fazla teknoloji borcu temsil eder. Sistem ne kadar önemliyse, onu tamamen kapatmak ve yeniden yapmak o kadar zor olur. 36/
Bunun yerine, üzerine yeni kod katmanları serilir ve kod katmanları buluşursa, bu sistemlerin tam olarak birbirine uymayan şekilde davrandığı çatlaklar vardır. 37/
Daha da kötüsü: iki şirket birleştiğinde, onların karmaşık ve çatlamış BT sistemleri birbirine sıkışıyor, böylece artık *bitişik* teknoloji borç kaynakları ve yukarı ve aşağı akış çatlakları ortaya çıkıyor: 38/
Bu yüzden dev şirketler fidye yazılımı saldırılarına bu kadar açık - çeşitli dijital aptal macun, ip ve balya telleriyle uyumluluk takliti haline getirilen uyumsuz sistemlerle doluylar. 39/
Su geçirmez değiller ve su geçirmez hale getirilemez. Hackerlar tarafından etkisiz hale getirilmeseler bile, bazen sadece düşüyorlar ve tekrar ayağa kalktılamazlar. 40/
Southwest Airlines'ın bilgisayarlarının 2022 Noel haftası boyunca çöküp milyonlarca yolcunun mahsur kaldığını hatırlıyor musunuz? 41/
Havayolları özellikle kötü, çünkü erken bilgisayara geçtiler ve eski bilgisayarları kapatıp yenileriyle değiştiremiyorlar. Bu yüzden uygulamaları bu kadar berbat. 42/
Bu yüzden havayolları müşteri hizmetleri personelini işten çıkardı ve uçakçıların *her şey* için uygulamaları kullanmasını zorunlu kılmaları çok kötü, oysa uygulamalar çalışmıyor. Bu uygulamalar asla çalışmayacak. 43/
British Airways'in uygulamasında %40-80 oranında "Bilinmeyen bir hata oldu" göstermesinin sebebi (sadece) tüm BT personelini işten çıkarıp yurtdışındaki düşük teklif verenlere dış kaynak vermeleri değil. 44/
Tabii ki bu - ama aynı zamanda BA'nın ilk bilgisayarları elektromekanik vanalarla çalışıyordu ve o zamandan beri her şey, Alan Turing'in korumalarından birinin kendi ön dişleriyle tüm kütüğün içinden kemirdiği bir sistemle geriye doğru uyumlu olmak zorunda. 45/
Kod bir yükümlük, bir varlık değil (BA'nın yeni uygulaması yıllar geride). Kod bir yüktür. Michael Bloomberg'i milyarder haline getiren Bloomberg terminallerinin sunucuları RISC çipleriyle çalışıyor. 46/
Bu da, azalan sayıda uzman donanım ve veri merkezi satıcısını, uzman programcılara ödeme yapmasını ve bu RISC sistemlerini dünyadaki daha az egzotik muadilleriyle bağlamak için kırılgan kod zincirleri oluşturmaya kilitli olduğu anlamına geliyor. Kod bir avantaj değildir. 47/
Yapay zeka kod yazabiliyor, ama yazılım mühendisliği yapamaz. Yazılım mühendisliği tamamen *bağlam* üzerinden düşünmekle ilgilidir - bu sistemden önce ne olacak? Sonrasında ne olacak? Yanında ne olacak? Dünya nasıl değişecek? 48/
Yazılım mühendisliği çok geniş bir "bağlam penceresi" gerektirir; bu, yapay zekanın sahip olmadığı ve sahip olamayacağı bir şey. Yapay zeka bağlam penceresi dar ve yüzeysel. Yapay Zeka'nın bağlam penceresine doğrusal artışlar, hesaplama taleplerinde *geometrik* genişlemeler gerektirir: 49/
Başarısız olacağını düşünmeden işe yarayan kod yazmak, felaketin tarifidir. Bu, teknoloji borcunu ölçekli ölçekte yaratmanın bir yoludur. Teknolojik toplumumuzun duvarlarına asbest atıyor. 50/
Patronlar *bilmiyor* ki kodun bir yük olduğunu, bir varlık değil. Bu yüzden, herhangi bir insan programcıdan 10.000 kat daha fazla kod çıkaran sohbet botları hakkında hiç susmuyorlar. 51/
İnsan programcının 10.000 katı hızında *varlıkları* üreten bir makine bulduklarını düşünüyorlar. Yapmadılar. Herhangi bir insan programcının 10.000 katı hızında *sorumluluk* üreten bir makine buldular. 52/
Sürdürülebilirlik, sadece zorlukların nerede olduğunu öğreten zor kazanılmış bir deneyim meselesi değildir. 53/
Ayrıca "Fingerspitzengefühl" - daha önce hiç görülmemiş tuzakların nerede ortaya çıkabileceğine dair makul tahminler yapmanızı sağlayan "parmak ucu hissi"nin geliştirilmesini gerektirir. 54/
Bu bir süreç bilgisi biçimidir. Bu kaçınılmazdır. Eğitim verisi olarak kullanabileceğiniz en büyük kod korpusunda bile gizli değildir: *Çocuk* teknik patronlar bunu anlamıyor. 55/
Microsoft'u ele alalım. Şu anda büyük bahisleri "ajanik yapay zeka". Bilgisayarınıza her tuş basışı, her iletişimi, gördüğünüz her ekranı yakalayıp Microsoft'un bulutuna gönderen ve bir sürü sohbet botuna erişim sağlayan casus yazılım yüklemek istiyorlar. 56/
Bilgisayarınıza "Bana Cardiff'e bir tren ayırt, geçen yıl Cory'nin bahsettiği oteli bul ve bana orada bir oda ayırt" diyebileceğini ve bunun yeterli olacağını iddia ediyorlar. Bu inanılmaz derecede uygulanamaz bir fikir. 57/
Hiçbir sohbet botu bunların hepsini yapabilecek kapasitede değil, ki Microsoft bunu özgürce şart koşturuyor. Bunu tek bir chatbot ile yapmak yerine, Microsoft bunu onlarca sohbet botuna ayırmayı öneriyor ve her birinin güvenilirliğini %95'e kadar artırmayı umuyor. 58/
Bu kendi başına tamamen inanılmaz bir chatbot standardı, ama şunu düşünün: olasılıklar *çarpıcı*. %95 güvenilirlikle çalışan iki süreçten oluşan bir sistemin net güvenilirliği %90,25'dir (0,95 * 0,95). 59/
Bir görevi birkaç düzine %95 doğru bot arasında ayırın ve bu görevin doğru şekilde tamamlanma ihtimali *sıfır* yuvarlanır. 60/
Bu arada, geçen Aralık ayında bir Microsoft yöneticisi, Microsoft'un kodlarının *tamamının* yapay zekanın yeniden yazmasını planladığını Linkedin'e göndererek başını belaya soktu. 63/
Microsoft'un kod tabanını yeniden yapılandırmak oldukça mantıklı. Microsoft - British Airways ve diğer eski firmalar gibi - sürdürülemez teknoloji borcunu temsil eden çok eski kodlara sahip. 64/
Bazılarınız yazılım mühendisi olup botların sizin için kod yazmada inanılmaz faydalı olduğunu gördüler. Bu yaygın bir yapay zeka paradoksu: neden bazı yapay zeka kullananlar onu gerçekten faydalı bulurken diğerleri nefret ediyor? 66/
Yapay zekayı sevmeyenler "yapay zekada kötü" mu? Yapay zeka hayranları tembel mi ve işlerinin kalitesiyle ilgilenmiyorlar? 67/
Şüphesiz her ikisinin de var ama herkese yapay zeka uzmanı olmayı öğretseniz ve çalışmalarıyla gurur duymayanları örneklerden çıkarsanız bile paradoks devam eder. 68/
Yapay zeka paradoksunun gerçek çözümü otomasyon teorisinde ve "centaurlar" ve "ters centaurlar" kavramında yatıyor: 69/
Otomasyon teorisinde, "centaur" bir makine tarafından desteklenen bir kişidir. "Ters centaur", *bir makineye yardım etmek* için zorunlu askere alınmış kişidir. 70/
Diyelim ki bir yazılım mühendisisiniz; zamanınız ve deneyiminiz olan rutin kodları AI'yi kullanarak doğrulamak için Fingerspitzengefühl ve süreç bilginizi kullanarak bunun amaca uygun olduğundan emin olun. 71/
Yapay zekayı (seçtiğinizde, istediğiniz şekilde, istediğiniz hızda) kullanmayı neden faydalı bulabileceğinizi anlamak kolaydır. Ama diyelim ki bir yazılım mühendisi olduğun ve önceki hızının 10 kat, 100 katı veya 10.000 katı kod üretmen emredildi. 72/
Bunu yapmanın tek yolu yapay zeka olduğunu söyle ve bu kodu gözden geçirip dünyayla ilk temasta bozulmayacağından emin olmanın insan yolu yok, bundan nefret edeceksiniz: 73/
(Eğer yapay zekanın hesap verebilirlik batağına dönüştürülmüş ve kişisel olarak yapay zekanın hatalarından sorumlu olursan, bundan daha da nefret edersin.) Yazılım mühendislerinin yapay zeka tarafından oluşturulan kodun inanılmaz faydalı bulmasının başka bir yolu da var: o kod *izole* olunduğunda. 74/
Tek bir proje yapıyorsanız - örneğin, bir dosya partisini sadece bir kez başka bir formata dönüştürüyorsanız - aşağı, yukarı veya bitişik süreçler için endişelenmenize gerek yok. Hiç yok. 75/
Bir şeyi bir kez yapmak için kod yazıyorsunuz, başka sistemlerle etkileşime girmeden. *Çok* kodlama bu tür bir yardımcı projedir. Sıkıcı, teşekkür edilmez ve otomasyona uygun. 76/
Birçok kişisel proje bu kategoriye girer ve tabii ki, tanım gereği kişisel proje centaur projesidir. Kimse sizi kişisel bir projede yapay zeka kullanmaya zorlamaz - herhangi bir aracı nasıl ve ne zaman kişisel olarak kullanacağınız her zaman sizin seçiminizdir. 77/
Ancak yazılım mühendislerinin bazen yapay zeka ile işlerini daha iyi hale getirebilmesi, kodun bir yük olduğu, bir varlık değil olduğu ve yapay zeka kodunun büyük ölçekte sorumluluk üretimini temsil ettiği gerçeğini geçersiz hale getirmez. 78/
Teknolojik işsizlik hikayesinde, yeni teknolojinin eski işleri geçersiz kıldığı gibi yeni işler yarattığı fikri var: otomobil yüzünden işsiz kalan her demirci için bir tamirci işi bekliyor. 79/
Yapay zeka balonu büyümeye başladığından beri bunun birçok versiyonunu duyduk: YZ, "prompt mühendisleri" için işler yaratır - hatta hayal bile edemeyeceğimiz işler yaratır, çünkü bunlar dünyayı tanınmaz hale getirmeden var olmayacaklar. 80/
Hayal bile edilemeyecek hayal edilemez bir meslekte iş bulmaya güvenmem, çünkü bilinçlerimiz yapay zeka tarafından o kadar değişmedi ki, bu yeni çalışma biçimlerini kavramsal hale getirme kapasitesi kazandı. 81/
Ama eğer milyonlarca yapay zekanın yaratacağı bir iş arıyorsanız, bir önerim var: dijital asbest temizleme. 82/
Yapay zeka kodu - herhangi bir insan kodlayıcının 10.000 katı hızda yazılmış, iyi çalışacak ama zarifçe başarısız olmayacak şekilde tasarlanmış - duvarlarımızı doldurduğumuz dijital asbest. Soyundan gelenlerimiz nesiller boyu asbesti duvarlardan çıkaracak. 83/
En tehlikeli yapay zeka psikozu sayesinde bozduğumuz şeyleri düzeltmek için bolca iş olacak - "kod yazmak"ın "yazılım mühendisliği" ile aynı şey olduğu halüsinasyonal inancı. 84/
Bu hızla ilerlersek, nesiller boyu asbest çıkarıcılar için tam istihdam sağlayacağız. 85/
3,08K