- AI kodlama araçlarının gelişmesiyle yazılım üretimi zanaatkâr usulünden otomasyonla endüstrileşmiş bir aşamaya geçiyor; maliyetler düşüyor ve büyük ölçekli üretim mümkün hale geliyor
- Endüstrileşmenin ikincil etkisi olarak tek kullanımlık yazılım adlı yeni bir kategori ortaya çıkıyor; bu, sahiplenme, bakım veya uzun vadeli anlama beklentisi olmadan üretilen yazılımı ifade ediyor
- Jevons paradoksuna göre verimlilik artışı toplam tüketimi de artırır; yazılım üretiminde de aynı olgunun görülmesi bekleniyor
- Tarımın endüstrileşmesi bolluk yerine aşırı işlenmiş gıdalar ve obezite krizini doğurduğu gibi, yazılımın endüstrileşmesi de düşük kaliteli kitlesel üretime yönelik ekonomik baskılar yaratabilir
- Teknolojik gelişme, endüstrileşme ile yeniliğin etkileşimi üzerinden gerçekleşir ve temel soru şuna indirgenir: "Kimsenin sahip olmadığı yazılımın bakımını kim yapacak?"
Yazılımın endüstriyel dönüşümü
- Yazılımın üretim maliyeti tarihsel olarak yüksek becerili uzman emeğinin maliyeti tarafından belirlendiği için, bu alan zanaatkârlığa yakındı
- Endüstrileşme, otomasyon yoluyla insan emeğine bağımlılığı azaltmayı; aynı anda hem maliyet düşüşünü hem de üretim ölçeğinde esnekliği hedefler
- İnsanın rolü gözetim, kalite kontrol ve endüstriyel süreç optimizasyonuna doğru daralır
- Endüstrileşmenin birincil ve ikincil etkileri
- Birincil etkiler: yüksek kaliteli ürün tedarik zincirlerinin bozulması, emeğin aracısızlaşması, giriş bariyerlerinin düşmesi, rekabetin artması, değişim hızının ivmelenmesi
- Bu etkiler bugün geleneksel yazılım sektöründe görülmeye başladı
- İkincil etkiler: düşük kaliteli ve düşük maliyetli ürünlerin büyük ölçekte üretimi yeni biçimlerde mümkün hale gelir
- Baskının endüstrileşmesi → karton kapaklı tür romanlarının ortaya çıkışı
- Tarımın endüstrileşmesi → aşırı işlenmiş abur cuburun ortaya çıkışı
- Dijital görüntü sensörlerinin endüstrileşmesi → kullanıcı üretimi videonun ortaya çıkışı
- Yazılım üretiminin endüstrileşmesi, tek kullanımlık yazılımı (Disposable Software) ortaya çıkarıyor
- Tek kullanımlık yazılım: sahiplenme, bakım veya uzun vadeli anlama yönünde kalıcı bir beklenti olmadan üretilen yazılım
- Destekleyenler buna 'vibe-coded software' diyor, şüpheciler ise 'AI slop' olarak adlandırıyor
- Kolay yeniden üretilebilirlik nedeniyle her bir yazılım çıktısının ekonomik değeri düşüyor
- Değer eksikliği yüzünden bu eğilimi geçici bir heves saymak kolay, ama bu akıllıca bir değerlendirme değil
Jevons paradoksu ve slop'un bağımlılık yapıcılığı
- Jevons paradoksu: 19. yüzyılda kömür tüketiminde verimliliğin artmasının maliyetleri düşürmesi, talebi artırması ve sonuçta toplam tüketimi yükseltmesi üzerine kurulu ekonomik teori
- Bugün AI hesaplamasında aynı olgu gözleniyor: modellerin token tahmin verimliliği arttıkça talep hızla yükseliyor ve toplam tüketim artıyor
- Yazılım geliştirmede de emek maliyetinin düşmesi, tarihsel olarak daha yüksek tüketime ve çıktıya yol açma potansiyeline sahip
- Tarımın endüstrileşmesinden çıkarılan dersler
-
- yüzyılın başında bilimsel ilerlemenin açlığı ortadan kaldırıp bol gıdalı bir çağ başlatması bekleniyordu; ancak 2025 itibarıyla 318 milyon kişi akut açlık içinde
- ABD'de yetişkin obezite oranı %40 seviyesine ulaşmış durumda ve diyabet krizi derinleşiyor
- Aşırı işlenmiş gıdaların zararlı olduğu geniş ölçüde bilinse de Amerikalıların büyük çoğunluğu bunları her gün tüketiyor
- Endüstriyel sistem, aşırılık ve düşük kaliteli mallar yönünde sürekli ekonomik baskı üretir
- Üretim maliyeti yeterince düştüğünde, hacmi, marjı ve erişimi maksimize eden şey çoğu zaman çöp ürünler olur
- AI slop'a yönelik talebin de benzer şekilde doyurulmasının zor olacağı öngörülüyor
- Akıllı telefonların fotoğraf, video ve ses kaydını demokratikleştirmesi gibi, yazılım da demokratikleşirse sosyal medya ölçeğinde kullanıcı üretimi yazılımın üretilmesi, paylaşılması ve atılması mümkün olabilir
- Yenilik ve ödül arasındaki geri bildirim döngüsü, son yarım yüzyılın geliştirme anlayışını eski gösterecek bir yazılım çıktısı patlaması yaratabilir
Geleneksel yazılım hayatta kalabilir mi?
- Aşırı işlenmiş gıdalar tek seçenek olmadığı gibi, sağlıklı ve sürdürülebilir gıda üretimine yönelik talep de var ve büyüyor
- "Organik yazılım" hareketi mümkün olabilir
- Giyim sektöründen örnek: endüstrileşmeden önce kıyafetler zanaatkârlar, loncalar, el emeği, yerel kaynaklar ve yıllar içinde biriken uzmanlıkla üretiliyordu
- Endüstrileşmeden sonra: hammaddelerin kıtalar arası taşınması, fabrikalarda kitlesel üretim, makine montajı, hızlı, tek kullanımlık ve sömürüye dayalı moda
- Buna rağmen özel dikim takım elbiselerden el örgüsü atkılara kadar el yapımı giyim hâlâ varlığını sürdürüyor
- Kişiye özel uyum, zenginlik göstergesi, ürün dayanıklılığı veya hobinin zanaatkâr keyfi gibi farklı nedenlerle
-
Yazılımın özgün yanı: maddi olmayan mal ve yenilik
- Yazılım fiziksel bir ürün olsaydı, insanlar tarafından yazılan yazılım yüksek moda ya da el örgüsü ürünler gibi niş bir alana sıkışabilirdi
- Ancak yazılım maddi olmayan bir maldır (intangible good) ve diğer endüstrileşmiş alanlardan farklı olarak özünde uzun bir bileşen yeniden kullanımı geçmişine sahiptir
- Yenilik, yalnızca mevcut ürünlerin daha iyi ya da daha ucuz sürümlerine indirgenmez; çözüm uzayının kendisinin büyümesini de kapsar
- Tıpkı buhar makinesinin yeniden kullanılabilir makine parçalarını, bunun üretim hatlarını, üretim hatlarının da otomobili mümkün kılması gibi
- Yazılım geliştirmedeki teknolojik ilerleme mekanizması yalnızca endüstrileşmeyi değil, yeniliği de içerir
- Ar-Ge pahalıdır, ancak zaman içinde daha büyük değer üretmenin tek yoludur
-
Yenilik ile endüstrileşme arasındaki fark
- Yenilik, bugün var olanı daha verimli kopyalamaya odaklanmaz
- Yeni problemleri bulur ve çözer, öncekinin üzerine inşa eder ve daha önce var olamayan yetenekler sunar
- Endüstrileşme ise bunun ardından ölçeği ve metalaşmayı getirerek bir sonraki yenilik turunun inşa edileceği temeli sağlar
- Bu iki gücün etkileşimi **'ilerleme (progress)'**dir
-
Büyük dil modelleri: yazılımın buhar makinesi anı
- LLM'ler yazılımın buhar makinesi anıdır
- Daha önce bütünüyle kıt insan emeğine dayanan iş sınıflarının maliyetini keskin biçimde düşürür ve çıktıda olağanüstü bir hızlanmayı mümkün kılar
- Buhar makinesi de boşlukta ortaya çıkmadı: yel değirmenleri ve su çarkları türbinlerden yüzyıllar önce vardı
- Mekanizasyon kömür ve çelikte başlamadı; otomasyon, ölçek ve sermaye birleşerek ekonomik dönüşümü tetikleyen bir kırılma noktasına ulaştı
- Yazılım da uzun süredir endüstrileşiyor:
- yeniden kullanılabilir bileşenler (açık kaynak kod)
- taşınabilirlik (containerization, cloud)
- demokratikleşme (low-code/no-code araçları)
- birlikte çalışabilirlik (API standartları, paket yöneticileri)
İlerlemenin bitmeyen döngüsü
- Yazılımın sanayi devrimine giriyoruz, ancak bu bir kopuş anı değil, muazzam bir hızlanma
- Endüstrileşme teknolojik ilerlemenin yerini almaz; ama hem yeni fikirlerin soğurulmasını hem de yeni yeteneklerin metalaştırılmasını büyük ölçüde hızlandırır
- Yeni teknolojilerin üzerine inşa etmenin maliyeti daha hızlı düştükçe, yenilik de daha hızlı serbest kalır
- İlerlemenin döngüsü sürüyor, ancak kitlesel otomasyon çağında çark her zamankinden daha hızlı dönüyor
Temel soru: ekosistem ve bakım
- Açık soru, endüstriyel yazılımın baskın olup olmayacağı değil; bu baskınlığın çevresindeki ekosisteme ne yapacağıdır
- Önceki sanayi devrimleri maliyetleri sonsuzmuş gibi görünen çevrelere dışsallaştırdı, ama o çevreler sonunda sonsuz çıkmadı
- Yazılım ekosistemi de farklı değil: bağımlılık zincirleri, bakım yükü ve çıktı ölçeğiyle katlanan güvenlik yüzeyi
- Teknik borç dijital dünyanın kirliliğidir ve ona bağımlı sistemleri boğana kadar görünmez kalır
- Kitlesel otomasyon çağında en zor problem üretim değil, gözetim ve sorumlu sahiplenme (stewardship) olabilir
- Temel soru: "Kimsenin sahip olmadığı yazılımın bakımını kim yapar?"
1 yorum
Hacker News görüşleri
Bu yazı, yazılımı inşa etmekle (build) yazılımı yazmayı (writing) karıştırıyor
Dünyada zaten neredeyse her işi yapabilen ucuz, seri üretilmiş yazılımlar var
Geliştiricinin rolü, mimar ya da tasarım mühendisi gibi yeni planlar oluşturmaktır
Bu tür tasarımlar estetik duygu ve bağlama dair içgörü gerektirir; LLM'ler bu konuda çok iyi yardımcı olamıyor
Rusça öğrenince Tolstoy olunmaması gibi
Mimar bir plan yaptığında bu fiziksel bir binaya dönüştürülür, ama geliştirici kod yazdığında onun kendisi çalışan bir makine olur
YouTube videosu bu kavramı da açıklıyor
UML ile mimari çizmek, gerçek bir makine üretmek değildir
Yazının özü, çoğu yazılımın artık zanaatkârlığın ürünü değil, sanayileşmiş seri üretim malları hâline gelmesidir
Ama harika yazılımlar yine de var olmaya devam edecek
Yazılım; tasarımı, edge case'leri keşfetmeyi ve gerçek uygulamayı birlikte içerir
Yani tasarım tüm sürecin yalnızca üçte biridir
İyi mühendisler bunu bir miktar hafifletebilir ama sınırları var
Sonuçta düşüncesiz süreçlerden ancak ‘endüstriyel atık’ gibi kodlar çıkar
LLM'nin ürettiği şey bir ‘Rus edebiyatı başyapıtı’ değil, Rus sosyal medyası yorumu seviyesinde kod
LLM'ler düşük kaliteli yazılımı ucuza üretmede mükemmel
Bu sayede eskiden yapmaya değmeyecek basit script'ler kolayca üretilebiliyor,
ama aynı zamanda çöp içerik taşmasını da beraberinde getiriyor
Benzetmelerle düşünmek kulağa ikna edici gelse de pratikte zayıf kalıyor
Fiziksel ürünlerle yazılımın marjinal maliyet yapısı tamamen farklı
Fiziksel ürünlerde birim başına maliyet sıfırdan büyüktür, dijital ürünlerde ise marjinal maliyet 0'dır
Zaten yazılımların çoğu ücretsiz ya da çok ucuz olduğundan, ‘ucuz sanayileşme’ kavramı tam oturmuyor
Yapay zeka geliştirme maliyetini düşürse bile pazar yapısı dramatik biçimde değişmeyebilir
Ayrıca tüketiciler kaliteye kıyasla fiyata daha duyarlı
Ücretsiz mobil oyunların ücretli oyunları ezip geçmesi bunun bir örneği
Yakın zamanda LLM ile neredeyse tamamlanmış kişisel bir proje yaptım
Bir kasaba tarihi web sitesi hazırlıyordum ve modelin giderek saçma yönlere kaymasını kontrol etmek zordu
Hız arttı ama hâlâ bir ‘kaptan’ rolüne ihtiyaç vardı
Kaptan ve 100 kürekçiden, kaptan ve buhar makinesine geçildiğinde geri kalan insanlar nereye gidecek sorusu ortaya çıkıyor
Sanayileşmenin kaliteyi düşürdüğü algısı yanlış
Seri üretim sistemleri tam tersine kalite kontrolünü aşırı derecede iyileştirebilir
Orta sınıf seri üretim bir otomobilin, zanaatkâr üretimi bir otomobilden daha iyi olduğu durumlar çoktur
El yapımı ekmek ya da el yapımı mobilyada olduğu gibi, seri üretimden çok daha üstün zanaat ürünleri de vardır
Ama bunların pazarlanabilirliği düşüktür
Yani sanayileşme her kalite alanının yerini almaz
Lüks otomobillerin çoğu hâlâ zanaatkâr usulüyle üretiliyor
30 yıllık bir geliştirici olarak, yazdığım kodun çoğu sonunda çöp kutusuna gitti
Veri işleme, log analizi, modelleme gibi işleri yapmaya devam ediyorum ama yapay zeka çıksa da işin özü değişmiyor
Sadece ortaya çıkan sonuç biraz daha ‘parlak renkli’ oluyor
Çoğu iptal edildi ya da prototip olarak kaldı
El yapımı kıyafetle fast fashion arasındaki ilişki gibi, geleneksel geliştirme ile yapay zeka üretimi kod arasındaki ilişki de benzer
Bu yüzden iş dışındaki duygusal anlamı seyahat, aile, sanat gibi yerlerde bulmak gerektiğini düşünüyorum
Bugünlerde ‘vibe-coded’ kişisel yazılımlar artıyor
Simon Willison'ın yan projeleri buna örnek
Gelecekte daha fazla ‘tek kişilik fork’ göreceğiz gibi duruyor
Ama upstream'e alınması çok zaman alıyor
Nix ile build ortamını otomatikleştirince işler çok daha kolaylaştı
Nix'in daha yaygın kullanılmasını isterdim, ama monokültür konusunda da kaygılarım var
Yazılımın önemli yönlerinden biri kullanıcının öğrenme maliyetidir
Kapalı kaynak yazılımlar kullanıcıyı yeni sürümlere uyum sağlamaya zorlar,
açık kaynak ise istikrarlı arayüzler sunarak yeniden öğrenme maliyetini azaltır
Örnek: mutt, vim, talon gibi programlar
Windows aksine istikrarlı API'ler sundu ve açık kaynak içinde de çok sayıda kırıcı değişiklik örneği var
Bu, bir organizasyonun belirli araçlar ya da yöntemler hakkında paylaştığı kolektif bilgi deposudur
Gereksiz arayüz değişiklikleri bu bilgi havuzunu tükettiği için, onu korumak pazar rekabetçiliği hâline gelir
Yazılımın sanayi devrimi zaten yüksek seviyeli dillerin ortaya çıkışıyla başladı
Assembly yerine yüksek seviyeli dillerin kullanılabildiği an tam olarak buydu
Açık kaynak, bulut, low-code/no-code, API standardizasyonu gibi şeyler zaten sanayileşmeyi ileri taşıyor
Delikli kart destesi girişinden etkileşimli geliştirme ortamına geçiş asıl devrimdi
Şimdiye kadarki ilerleme sadece hız artışıydı; daha büyük değişimler henüz gelecek
Ben de yazarın vizyonuna katılıyorum
Yazılımların çoğu gereksiz yere karmaşık ve ben sadece kendi sorunumu çözecek bir araç istiyorum
Örneğin ses dosyası yükleyince onu sahnelere göre bölüp görüntülerle senkronlayarak video oluşturan bir aracı LLM ile yaptım
Hataları var ve özellikleri eksik, ama benim sorunumu çözmesi için yeterli
Sonuçta benim ihtiyacım yazılım değil, çıktı (video)
Bir sonraki projede daha iyi bir sürüm yapabileceğimi düşünüyorum
Sanayileşmiş yazılım çağı zaten başladı ve buna uyum sağlamamız gerekiyor
Bu tür sistemler sadece kodla ikame edilemez ve zaten ücretsiz alternatifleri de var
Assembler, compiler, garbage collection, yüksek seviyeli diller gibi şeyler de sonuçta karmaşıklık dağını yükselten araçlardı
LLM de aynı şekilde, sadece o dağı daha hızlı inşa etmeyi sağlıyor; karmaşıklığı azaltmıyor
Sadece geliştirme hızını artırıyor