1 puan yazan GN⁺ 4 시간 전 | 1 yorum | WhatsApp'ta paylaş
  • Anthropic’in yazılım mühendisliğinin sonunu geleceğin değeri olarak öne çıkardığı bir dönemde, Bun’ın Zig→Rust geçişinin de yapay zekanın mühendisliğin yerini alabileceği yönündeki tanıtım anlatısında kullanıldığı eleştiriliyor
  • Bun, geçiş nedeni olarak bellek hatalarını gösterdi; ancak alternatifler ve artı-eksi karşılaştırması eksik, ayrıca Rust’ın yavaş derleme süresi gibi maliyetler de açıklanmadığı için bu karar sonradan gerekçelendirilmiş gibi görünebilir
  • Zig’i farklı şekilde kullanma seçenekleri de vardı; TigerBeetle’ın TigerStyle’ı, statik bellek ayırma ve simülasyon testleriyle use-after-free hatalarını engelleyen bir örnek sunuyor
  • unsafe Rust ile dosya bazında taşıma yöntemi, riski azaltan ve ileride yeniden tasarımı mümkün kılan makul bir yaklaşım; ancak milyon satırlık yapay zeka dönüşümünü kabul ederken insanların okuyacağı birkaç satırlık işaretçi yönetimi kodunu sorun etmek tutarlılıktan uzak
  • Ajan harness’leri, Rust’ın borrow checker’ı, okunabilirlik kuralları ve insan incelemesi hâlâ gerekli olduğundan kodlama ajanlarının benimsenmesi ile yazılım mühendisliğini tasfiye etmek aynı tercih değil

Anthropic’in öne sürdüğü yazılım mühendisliğinin sonu

  • Anthropic, kodlamanın ardından yazılım mühendisliğinin ve insan emeğinin büyük bölümünün de ortadan kalkacağı yönündeki anlatıyı aktif biçimde destekliyor
  • Şirket 132 milyar dolar yatırım aldı ve 1 trilyon doların üzerinde şirket değerlemesiyle IPO’ya yaklaşıyor; ancak kârlılığını gösteremediği bir durumda varsayımsal bir gelecek etkisini satmak zorunda
  • Bu çıkar ilişkileri nedeniyle Anthropic’e güvenilmez anlatıcı (unreliable narrator) olarak bakmak gerekir; yalnızca mesajın doğru olup olmadığı değil, yöneticilerin, dünya liderlerinin ve emeklilik fonu yöneticilerinin kararları üzerindeki etkisi de önemlidir
  • Yapay zeka anlatısı mimari, ürün ve personel yerleşimi kararlarını etkiliyor; işten çıkarılma korkusu, geride kalma uyarıları ve Doom Trolling içinde soğukkanlı karar vermeyi zorlaştırıyor
  • Yazılım alanındaki yapay zekayı değerlendirirken Anthropic’in çıkarlarını ve tanıtım amaçlarını dikkate alan şüpheci bir inceleme gerekiyor

Bun’ın Zig→Rust geçişi ve gecikmiş açıklaması

  • Anthropic/Bun, Zig ile yazılmış Bun’ı Rust’a taşıma kararını ana dala merge ettikten ancak iki ay sonra açıkladı
    • Büyük ölçekli bir altyapı projesinde, yönün önceden açıklanması genellikle beklenen yaklaşımdır
    • Açıklama gecikirken Anthropic’s Bun Rust rewrite merged at speed of AI gibi başlıklar, yeniden yazımın yapay zeka tarafından hızla tamamlandığı izlenimini yaydı
  • Zig’in yaratıcısı Andrew Kelley bir karşı yazı yayımladı ve alışılmadık derecede doğrudan bir üslupla Bun’ın tekniklerini ve organizasyonel işleyişini eleştirdi
    • Bir dil değiştirildi diye önceki dilin liderinin kişisel kusurlara kadar saldırdığı bir emsal oluşabileceği için itibar açısından bir yük taşıyor
    • Bazıları bunu “meltdown” diye adlandırdı, ancak kamuya açık biçimde işaret edilmesi gereken sorunları işaret ettiği de düşünülebilir

Doğrudan eleştiriyi değerlendirme ölçütleri

  • Budizm’de doğru söz (right speech), her sözün şu beş ölçütü karşılaması gerektiğini savunur
    • Doğru mu
    • Faydalı mı
    • Zamanında mı
    • Nazik mi
    • Nezaketten mi doğuyor
  • Andrew Kelley’nin tepkisi doğru ama nezaketsiz söz kapsamına giriyor; mesele, olağan nezaketin dışına çıksa bile sorunu kamuya açık biçimde dile getirmenin gerekli olup olmadığıdır

Bun, Zig ve yapay zeka katkı politikalarının ilişkisi

  • Bun, daha hızlı bir NodeJS’e benzetilen bir TypeScript runtime’ı; Zig ise modern bir C’ye benzetilen bir sistem programlama dilidir
  • Bun yakın zamana kadar Zig ile yazılıyordu ve en büyük Zig kod tabanlarından biriydi
  • İki projenin yapay zeka katkı politikaları birbirine tamamen zıt
  • Anthropic Bun’ı satın aldıktan sonra kurucu Jarred Sumner, Zig kodunu unsafe Rust’a taşıyan büyük ölçekli bir ajan deneyi yürüttü; sonuç birkaç gün sonra merge edilerek resmi sürüm hâline geldi
  • İlgili taraflar arasında Bun’ın Zig’de kalmasını talep eden kimse yok gibi görünüyor; tartışma geçişin kendisinden çok gerekçelerine ve tanıtım biçimine odaklanıyor
  • Ajanlarla yapılan büyük ölçekli dil geçişi, uygun koşullarda yeniden denenmeye değer teknik bir deneydir

Aynı karar etrafındaki üç yorum

  • Zig ile Rust arasında seçim yapmaya çalışan geliştiriciler için, en büyük Zig kullanıcılarından birinin kararını tersine çevirmesi önemli bir değerlendirme verisi olur
  • Anthropic/Bun’ın yorumu, makul tüm yöntemlerin denendiği ancak Zig ile bellek hatalarını yönetmenin zor olduğu yönünde
  • Andrew Kelley’nin yorumuna göre yapay zeka ajanlarının kod yazımı ve incelemesini aşırı üstlenmesi gibi Bun’ın mühendislik kararları kod tabanını karmaşaya sürükledi
  • Daha sıradan olasılık ise gerçek bellek sorunları için birden fazla çözüm varken yönetimin Rust ile yeniden yazımı seçmesinin daha kolay olması
    • Yeni Fable modelinin yetenekleri tanıtılabilirdi
    • Anthropic zaten Rust kullanıyordu
    • Zig projesi Anthropic ürünlerinin kullanımına açıkça karşı çıkıyor
  • Rust geçişi iş açısından makul olabilir, ancak tanıtım yapay zekanın yeniden yazımı gerçekleştirecek kadar güçlü olduğuna odaklandı
    • Yapay zekanın use-after-free hatalarını önceden yakalayamamış olması bu anlatıyla çelişiyor
  • Anthropic’in megafonu üzerinden yapılan abartı, Jarred Sumner ile Andrew Kelley’nin yargılarını doğrudan karşılaştırmaya zorluyor ve istemeden Zig’in itibarı üzerinde de etkili olabiliyor

Teknik tartışmaya kişisel güvenilirliğin dahil olmasının nedeni

  • Öncelikle sorumlu tutulması gereken taraf, Bun kurucusunun kendisinden çok bu olayı yapay zeka anlatısında kullanan Anthropic
  • Anthropic, Jarred Sumner’ın güvenilirliğini kendi mesajını güçlendirmek için kullandığı ölçüde, buna yanıt verirken onun yargılarını ve davranışlarını değerlendirmek de kaçınılmaz oluyor
  • Yalnızca teknik meseleleri tartışmak tercih edilir; ancak Anthropic’in mesajı teknik karşılaştırmadan çok gösteri ve tanıtıma dayanıyorsa kişisel güvenilirlik de tartışmaya giriyor
  • Bir tarafın kamuya açık söz ve davranışlarını derlemek bile karalama gibi görünüyorsa, bu davranışların kendisi de sorunun bir parçası olabilir

Sürekli crunch ve Bun’ın organizasyon ortamı

  • Bun’ın 2022 tarihli işe alım ilanı, ilk 9 ayın çok zorlu geçeceğini ve çalışılmayan zamanın bol olduğu bir iş-yaşam dengesine önem verenler için uygun olmayacağını belirtiyordu
  • Sürekli crunch mode hem sağlık hem üretkenlik açısından zararlıdır; bilgi emeğine ilişkin ampirik araştırmalarda da bu tekrar tekrar doğrulanmıştır
  • Haftada 90 saat çalışmakla övünen bir yönetici yerine, ekip üyelerinin geceleri uyuyabilmesini koruyan bir yönetici seçmek gerekir
  • Andrew Kelley’nin Bun ekibinden kişilerden duyduğunu söylediği değerlendirme, iletişim eksikliği, gerçekçi olmayan beklentiler, düşük empati ve deneyim eksikliği olarak özetleniyor; ancak aktarım olma sınırlılığı var
  • Yine de bu değerlendirme, işe alım ilanında açıkça belirtilen aşırı çalışma ortamıyla da örtüşüyor
  • Kötü çalışma ortamlarında da iyi teknolojiler ortaya çıkabilir; Bun’ın kendisi kullanılabilir ve ilginç bir araçtır
  • Kodda çok sayıda hata olduğu ve bakımının zorlaştığı değerlendirmesi yalnızca dış eleştiriden ibaret değil; Bun’ın Rust geçişine gerekçe olarak öne sürdüğü durum da bu

unsafe Rust’a taşıma yaklaşımının pratik değeri

  • Geçiş sürecinin teknik ayrıntıları, başka modernizasyon projelerinde de yeniden kullanılmaya değer
  • Bun, baştan güvenli Rust ile yeniden tasarlamak yerine unsafe Rust ile dosya bazında taşıma yaptı
    • Mevcut yapıyı koruyarak ilk geçiş riskini azalttı
    • Daha sonra güvenliği iyileştirmek ve yeniden tasarlamak için bir temel hazırladı
  • Yapay zeka tabanlı otomasyon, dil seçimini geçmişe kıyasla daha kolay geri almayı mümkün kılabilir; ancak otomatik yeniden yazımda hâlâ artılar, eksiler ve anlam farkları var
  • Birden fazla yeniden yazım tekniğini birleştirmek ve bunu biçimsel yöntemlerle (Formal Methods) güçlendirmek de mümkün
  • DARPA’nın TRACTOR programı, tüm C kodlarını Rust’a taşımaya yönelik bir araştırma programı; yayımlanan değerlendirme raporu otomatik dönüşüm teknolojisinin mevcut durumunu ele alıyor
  • Ajanlar eski kodlar için daha fazla seçenek sunsa bile, modernizasyon hedeflerini belirlemek için muhakeme ve iletişim hâlâ gerekli

Çok şeyin eksik olduğu teknik karar belgesi

  • Teknik bir kararı açıklamak için en az üç unsur gerekir
    • Motivasyon nedir
    • Hangi alternatifler değerlendirildi
    • Her alternatifin artıları ve eksileri nelerdir
  • Richard Feldman’ın Roc derleyicisini Rust’tan Zig’e taşıma nedenlerini özetlediği belge, bu üç unsurun tamamını içeren bir karşılaştırma örneğidir
  • Bun’un açıklaması motivasyon olarak bellek hatalarını öne sürdü; ancak değerlendirilen alternatiflerin yalnızca bir kısmını ele aldı ve artı-eksi karşılaştırması fiilen eksik kaldı
  • Özellikle artı ve eksilerin atlanması, baştan doğru cevabı belirleyip sonra gerekçe ekleyen bir sonradan gerekçelendirme gibi görünebilir
  • Açıklanmayan başka nedenler olma ihtimali de dışlanamaz; kararın güvenilirliğini artırmak için dezavantajlı maliyetlerin de birlikte açıklanması gerekir

Yalnızca Rust’ın avantajlarını sıralayan karşılaştırma

  • “Bun is better in Rust” bölümü yalnızca Rust’a geçişin faydalarını ele alıyor, maliyetleri ise neredeyse hiç sunmuyor
  • Büyük ölçekli Rust kod tabanları genellikle güvenlik kazanımı karşılığında yavaş derleme süreleri maliyetini öder
  • Bun, geçmişte derleme hızına önem vererek Zig derleyicisini fork’layıp 4 kat iyileştirme denemişti
  • Rust’a taşıma, katkı verenlerin derleme süresini artırdıysa bunun açıklanması ve güvenliğin bu maliyetten neden daha önemli olduğunun belirtilmesi kararın güvenilirliğini artırır
  • Geçiş sonrasında yapılan başka iyileştirmelerin de Rust yeniden yazımının avantajları listesine katılması, dil değişikliğinin doğrudan etkisini abartabilir

Değerlendirilmemiş stil kılavuzu seçenekleri

  • Bun’da bellek hataları tek kusur nedeni değildi; ancak kişisel bir sayıma göre haftada 4 düzeltme commit’i gerektirecek kadar sık görülüyordu
  • Her bellek hatası, nesnenin oluşturulma, sahiplik ve serbest bırakılma biçimine ilişkin bir kuralın bir yerde bozulduğu anlamına gelir; bu nedenle önce duruma göre beklenen davranışın net biçimde tanımlanması değerlendirilebilir
  • Elle bellek yönetimi kuralların kapsamını genişletir; ancak dilden bağımsız olarak etkili kullanım yönergeleri gerekir ve Rust’ın da API stil kılavuzu vardır
  • TigerBeetle’ın gösterdiği alternatif

    • Bir başka önde gelen Zig kod tabanı olan finansal işlem veritabanı TigerBeetle, bellek hatalarıyla boğuşmuyor ve en güvenilir veritabanlarından biri gibi görünüyor
    • Güvenilirliğinin temeli olarak TigerStyle ve simülasyon testini kullanıyor
    • TigerStyle basit bir kodlama biçemi değil; tasarım, bellek ve testi birleştiren bir mühendislik felsefesi
    • Tüm bellek başlangıç anında statik olarak ayrılır
    • Başlatma sonrasında dinamik ayırmaya veya serbest bırakıldıktan sonra yeniden ayırmaya izin verilmez
    • Öngörülmesi zor performans değişimlerinden kaçınırken use-after-free hatalarını engeller
    • Olası bellek kullanım kalıplarını tasarım aşamasında dikkate alarak daha basit, daha hızlı; akıl yürütmesi ve bakımı daha kolay yapıları teşvik eder
    • Her uygulama bu yaklaşımı aynen uygulayamaz; ancak bellek politikasının genel tasarım kararlarıyla bağlantılı olduğunu gösterir
  • Bun açıklamasında kalan boşluk

    • Bun, TigerStyle ile Google’ın 31.000 kelimelik C++ stil kılavuzundan söz ettikten sonra, stil kılavuzlarının zor uygulanabildiğini ve geleneksel olarak kod incelemesi, linter ve statik analiz araçlarına dayandığını söylüyor
    • Ancak Bun’un gerçekte hangi stil kılavuzunu kullandığını, bunun neden başarısız olduğunu ve 4 yıl boyunca nasıl iyileştirildiğini ele almıyor
    • Büyük bir projede bellek sorunları sürdüyse, mevcut dili farklı şekilde kullanma seçeneklerinin ciddi biçimde denenip denenmediği önemlidir; ancak bunu destekleyecek kanıt yetersiz
    • Bir kişinin tüm bağlamı zihninde tutup toplantı yapmaması üzerine kurulu çalışma biçimi, açık kurallar ve paylaşılan tasarım oluşturmayı zorlaştırır

Ajan incelemesi ile stil kılavuzu arasındaki çelişki

  • Bun, stil kılavuzlarını zor uygulanır görmesine rağmen, geçiş için PORTING.md yazdığını ve ajanın tüm yeniden yazılmış kodu katı yönergelere göre incelediğini belirtiyor
  • PORTING.md’nin kendisi geçiş kapsamına özel bir stil kılavuzu olduğundan, ajan incelemesi başarılı olduysa yönergeleri uygulatma sorunu da zaten çözülmüş sayılır
  • Uygun koşullarda ajan incelemesi işe yarayabilir; ancak bunun ön koşulu yeterince tasarlanmış kurallar ve inceleme yöntemleridir
  • Aynı zihinsel çaba Zig kodunun yeniden tasarımına ve kuralların güçlendirilmesine de harcanabilirdi; ancak Bun yeniden mimarilendirme yerine yeniden yazımı seçti
  • Açıklanmayan çeşitli nedenlerle yeniden yazım doğru tercih olmuş olabilir; ancak mevcut açıklama tek başına alternatif karşılaştırması için yeterli değil

Bir milyon satırlık yeniden yazım ve üç satırlık pointer kodu

  • Bun, Zig’de sahiplik beklentilerini tip düzeyinde göstermek için SharedPtr(TCPSocket) ve deref() gibi kodların eklenmesi gerektiğini, bunun mevcut pointer kullanımına göre daha az pratik olduğunu düşünüyor
  • Bu örnekte, arayüz sınırında pointer aktarımını netleştirmek için yaklaşık üç satır kod artıyor
  • İncelemesi zor, milyon satırlık yapay zeka üretimi PR’ı kabul ederken; pointer sahipliğini netleştiren birkaç satırı okunabilirlik sorunu diye reddetmek tutarsız bir tutum
  • Jarred Sumner, aylar boyunca insanların doğrudan kod yazmadığını belirtmişti
  • Kod insanlar için değilse SharedPtr sarmalayıcısının göze hoş görünmemesi gerekçesi zayıflar; insanlar içinse okunabilirlik, incelenebilirlik ve bakımı yapılabilirlik dikkate alınmaya devam etmelidir
  • Yapay zeka şirketleri kod okunabilirliğinin hâlâ önemli olduğunu kabul etmekte isteksiz; ancak bunu reddetmek, yazılım mühendisliğinin bittiği anlatısına uysa da bakım gerçekliğiyle çelişir
  • Kodlama ajanlarının bakımı yapılabilirliği varsayılan olarak kötüleştirebileceğini gösteren benchmark da var

Aynı olayın ortaya koyduğu “AI tek başına yeterli değil” gerçeği

  • Bun’ın büyük ölçekli ajan yeniden yazımı, teknik iyileştirmenin yanı sıra Anthropic’in “AI yeterlidir” mesajını tanıtma yönünde ticari bir işlev de görüyor
  • Ancak aynı örnek tam tersi şekilde de yorumlanabilir
  • Ajanların yarattığı sorunların da daha fazla ajanla çözülebileceği varsayımı altında, daha iyi araçlar yerine token satın alma ve teknolojiyi öğrenmek yerine SKILL.md ekleme yaklaşımı yaygınlaşıyor
  • Yazılım ekiplerinin psikolojisini anlamak yerine paralel ajan oturumlarını Team diye adlandırmak, insan organizasyonları ile otomatik yürütme oturumlarını birbirine karıştırıyor

Kodlama ajanlarını benimsemek ile mühendisliği çöpe atmak ayrı şeyler

  • Anthropic’in yazılım mühendisliğinin sonu kampanyası, AI araçlarını hem geliştirenler hem de kullananlar için ters tepebilir
  • Kodlama ajanlarını benimseseniz bile, insanların kodu anlamadığı Dark Software Factory modelini ideal olarak almak zorunda değilsiniz
  • Amaç, insanların istediği şeyleri yapmak ve bunların düzgün çalışmasını sağlamaktır; AI balonu ise istenmeyen şeyleri düşük kaliteyle üretmeye zorlayabilir
  • AI’dan yararlanırken yargı·öğrenme·iletişim·okunabilirlik·bakım yapılabilirlikten vazgeçmeyen bir yön gerekir

1 yorum

 
GN⁺ 4 시간 전
Hacker News yorumları
  • Bu yazıda çok iyi noktalar var ama birkaç ay içinde terk edilen yapay zeka üretimi projeleri aklıma geliyor. Bir projenin değeri, üretilen kod miktarından çok gerçek dünyada ne kadar doğrulandığında yatar ve olgun mevcut kod, yeni bir yeniden yazımdan daha iyidir
    Mevcut Zig kod tabanı zaten doğrulanmış durumda ama Rust yeniden yazımı, testleri geçmesi dışında neredeyse sıfır doğrulamaya sahip; dosya dosya unsafe Rust ile birebir çevrildiyse, başlangıç noktası olan Zig'den neyin daha iyi olduğu da belirsiz. Bunun ancak daha sonra güvenli Rust'a taşınıp üretim ortamında ve çok sayıda kullanıcı tarafından doğrulanmasıyla anlamı olur
    Fiilen Bun fork'lanmış sayılır; Zig sürümü mü Rust sürümü mü hayatta kalır fark etmez ve bunu da Zig'in uygunluğuyla ilgili bir sorun olarak görmek için bir neden yok

    • Yapay zeka projeleri doğaçlama şekilde üretildikleri için terk edilir. Batık maliyet, aksine zorluklara ve durgun dönemlere dayanmayı sağlayan bir avantaj olabilir ama anlık bir fikir ve Claude prompt'larıyla yapılmış bir sonuçla bağ kurulmaz
      Ben de sıradan bir programcı olarak her gün onlarca harika fikir düşünüyorum ama incelemeye dayanan çok azı ayakta kalıyor; birkaç gün sonra onların bile emek vermeye değmez göründüğü oluyor. Fikirler zaten ucuzdu, şimdi kavram kanıtı da ucuzladı; bu yüzden bir ay bile emek verilmemiş bir Show HN ilgimi çekmiyor
    • Ciddi ölçüde gerçek dünya doğrulamasından geçmiş güvenli Rust noktasına ulaşmak için bir yerden başlamak gerekir; bu yüzden önce birebir çeviri yapıp sonra kademeli iyileştirme yoluna gidilmiş
      Zig tarafı, C'ye kıyasla yeterli avantaj sunamadığı için ciddi amaçlarla kullanılamadığını ve amiral gemisi projesinin bile ayrıldığını görünce, Zig'in en baştan umutsuz bir dil olup olmadığından kaygılanıyor gibi duruyor. Zig issue tracker'ında segfault aratınca, Rust gibi alternatifler karşısında gelecekteki faydasından neden şüphe edildiği anlaşılabiliyor
    • Zig'den farklı olarak artık açık ve kapsamı sınırlı unsafe sınırları var ve bunların tek tek düzeltilebilmesi daha iyi
    • Yazının girişi gereğinden fazla alaycı. Anthropic ve OpenAI'deki tanıdıklara bakınca, bunlar yakın gelecekte agent'ların programlamanın çoğunu üstleneceğine ve kendilerinin de işlerini kaybedeceğine gerçekten inanıyor
      Bu, yapay zeka karşıtı kesime ders vermek için mesaj yönetimi yapmak değil
    • Yapay zeka üretimi projelerin hızlı terk edilmesinin nedeninin gerçek dünya doğrulaması eksikliği olduğunu kesin diye söyleyemeyiz. Sıradan kişisel projeler de çoğu zaman belli bir süre sonra terk edilir ve kodu çok daha hızlı yazabilir hale gelince kişisel fayda, öğrenme ve eğlencenin azalan marjinal fayda noktasına daha çabuk ulaşılıyor olabilir
  • Asıl daha büyük sorun, Andrew'nun açık sözlü konuşmuş olmasından çok, yazının bariz bir kişisel saldırı olmasına rağmen öyle olmadığını iddia eden ikircikli tutumu
    Bu yazıyı okuyunca Zig ile bir şey yapmak istemedim. Çünkü hangi teknik kararı verirsem vereyim, Zig'in ömür boyu hayırsever diktatörü (BDFL) böyle bir yazı yazabiliyor; Python ya da Rust gibi başka toplulukların liderliğinin böyle davrandığını hayal etmek zor

    • Daha da ciddi olan, bu tavrın Zig topluluğuna yayılma işaretleri göstermesi. Henüz çoğunluk olmasa bile nazik insanlar daha sıcak topluluklara giderse, geride kalan grupta bu eğilimin oranı artar
    • Andrew'nun doğru olanı gerçekten önemsediği için güçlü görüşlere sahip olduğunu ama uzaktan hüküm vermekten daha sabırlı ve kapsayıcı biri olduğunu savunmak isterim
      Birileri Andrew'nun Bun'a saldırdığını düşünebilir, ben de Andrew'ya verilen tepkiyi kişisel saldırı olarak görebilirim. Önyargıları bir kenara bırakırsak ya iki taraf da haksızdır ya da hiçbiri değildir; uzaktan durum değerlendirirken kişisel önyargıların fazla büyük etki yaptığını akılda tutmak gerekir
    • Ayrılırken Zig'i kötü gösterecek yanıltıcı bir yazı yazmadığı ve Zig Vakfı ile planlanmış toplantıya haber vermeden gelmediği sürece sorun olmazdı
    • Andrew'nun yazısı birkaç kez düzenlendi; bu yüzden en güncel revizyonu okumak kaygıları giderebilir: https://github.com/andrewrk/andrewkelley.me/commits/master/p...
    • Rust'ta tasarım gereği BDFL yok ve Python da sanırım bu modelden çıktı. Bireysel katkı verenler öfkeyle saldırgan yazılar yazabilir ama Zig'deki gibi dili temsil eden tek bir figür yok
  • Andrew'nun tarafında olmak istiyorum. Sumner'ın çalışmalarını yıllardır izleyen biri olarak Kelley'nin eleştirisi nezaketsiz olsa da büyük ölçüde doğruydu ve ortaya çıkan şey yararlı ve havalı olsa bile baştan sona öz tanıtım amaçlı nüfuz kullanımına daha yakındı
    Ben de günde 8 saat agent tabanlı geliştirme yapıyorum ve ekibe Node yerine Rust ile Deno kullanmayı öneriyorum ama bu yeniden yazımın gerekçesi zayıftı; Dario ve ekibinin başarıyla yürüttüğü uzun PR kampanyasının bir uzantısı gibi görünüyor. İfade tarzı daha ölçülü olsaydı daha iyi karşılanırdı ama PR ekibinin kaleme aldığı bir metin yerine dürüst düşüncelerini ortaya koymasını takdir ediyorum

    • Bu olaydan çıkarılacak ders, sert bir yanıtı paylaşmadan önce 1-2 gün bekletip yakın bir arkadaşa göstermek gerektiği
      Andrew'nun sonradan düzelttiği sonuç bölümüne yakın bir metni ilk revizyondan itibaren yayımlaması daha iyi olurdu
    • Yeniden yazımın önceden sunulan gerekçesi zayıftı ama Jarred'ın neden bunaldığı örneksiz de anlaşılabiliyordu
      JavaScript çöp toplayıcısıyla etkileşimin Bun'a özgü zorluklar doğurduğuna dair açıklama yararlıydı ama Andrew buna hiç değinmedi. Yeni kodun mevcut test paketiyle doğrulandığı açıklaması da, testlerin bile vibe coding ile çevrilip güvenilmez hale geldiğini sandığım yanlış anlamayı giderdi. Testlerin tüm hataları yakalamadığı gerçeği, Zig dahil tüm yazılımlar için geçerli
      Sonuçta yayılmasının nedeni, bellek güvenli olmayan dillerin devasa hata maliyetleri ürettiği görüşü ile “becerini geliştir ve hata yazma” tepkisinin çatışmasına yapay zeka tartışmasının, Anthropic'in dahil olmasının ve Andrew'nun Linus tarzı üslubunun eklenmesi oldu
    • Şirket dışından herhangi birine bu yeniden yazımı gerekçelendirmek zorunda olduğunu düşünen zihniyetin kendisi tuhaf
    • Teknik konularda PR dili yerine Linus gibi olduğu gibi söyleyen tavır daha iyi; PR amaçlı ifadeler ancak teknik olmayan müşteriler için kullanılmalı
  • Anthropic ile Andrew Kelley’nin yazılarını aynı şekilde okuyup okumadığınızdan emin değilim. Anthropic, programlama dili satan bir şirket değil ve Bun’un Rust ile yeniden yazımı hakkındaki yazıda, son kullanıcıya ürünün nasıl iyileştiğini gösteren çok sayıda teknik ayrıntı vardı
    Buna karşılık Zig tarafının yanıtı, kişisel saldırılarla dolu sert bir köşe yazısına daha yakındı. Ben Codex kullanıyorum ve ne Zig ne de Rust tarafında bir çıkarım var; dışarıdan izleyen biriyim

    • Anthropic’in de açıkça programlama dili pazarında bir çıkarı var. Eğer yapay zeka belirli bir dile yeniden yazmayı kolaylaştırıyorsa, başarı hikâyeleri o dili ve yapay zeka şirketini birbirine bağlar; yapay zekayla yazılması daha kolay olan Rust’ın başarısı da Anthropic’e yarar sağlar
      Ayrıca başarılı bir yeniden yazımı tanıtırken, mevcut kodun ne kadar kötü olduğu gibi anlatıya zarar verecek unsurlar çoğu zaman gizlenir; bu olayda da önemli yönler eksikti
      Andrew Kelley’nin yazısı(https://andrewkelley.me/post/my-thoughts-bun-rust-rewrite.ht...), Jarred’ın düşük mühendislik standartlarını, Zig Foundation ile yapılan toplantılara haber vermeden katılmaması gibi zayıf dış ilişkilerini, Rust’a geçiş sırasında Zig’i kötü bir tercih gibi göstermesiyle oluşan zararı ve buna karşı ZSF’nin öfkesini ele alıyor
      Yüzeysel bakıldığında bir dilin kurucusunun eski bir kullanıcıya saldırdığı düşünülüp endişe etmek anlaşılabilir, ama Kelley, yalnızca Bun’un yazısını okuyunca bende de oluşan bu izlenimin neden haksız olduğunu açıkladı. Bazı kişisel saldırılar olduğu açık; sonradan eklenen son bölüm de bunu ele alıyor
    • Bir stüdyonun Unity’den Unreal’a geçtiğini ve Unity’nin mevcut kod kalitesiyle çalışma ortamına saldıran bir yazı yayımladığını hayal ederseniz, Zig’in yanıt vermesinin kendisi garip
    • Bu, zanaatkârlık ile endüstricilik arasındaki eski bir çatışma. Andrew, tüm geliştiricilerin gurur duyan birer usta olmasını isteyen geleneğe ait
      Java, JavaScript, Python ve C#, mükemmeliyetçi olmayan geliştiricilerin bile büyük kazalar yaşamadan çalışabilmesi için güvenlik korkulukları sundu ve C++ merkezli endüstriye hâkim oldu. C ve C++’ın performans avantajı büyüktü ama giderek daha düşmanca bir ortamda ciddi uzmanlık gerektiriyordu
      Rust ve Swift, çöp toplayıcılı dillere göre daha öngörülebilir performans sunarken benzer ya da daha güçlü güvenlik sağladı; Rust’ın fikirleri de bu alanda yeni dillerin patlama yaşamasına yol açtı. Ancak bunların önemli bir kısmı, endüstriyel ihtiyaçlardan doğan Rust’a kıyasla zanaatkârlığa daha yakın
      Otomobil benzetmesiyle, Java ve JavaScript gibi diller sıradan güvenli araçlarsa, C/C++ iki tekerli motosiklet, Rust hızlı ama yolcusunu koruyan bir ralli arabası, Zig ise ATV ya da açık tekerlekli bir kartinge daha yakın. Kolay kolay savrulmasa da devrilirse çok tehlikeli
      Zaman ve maliyet kısıtlarını görmezden gelen zanaatkârlar, yalnızca dikkatli geliştiricilerin olması gerektiğini düşünür; ama endüstride, iyi kod yazabilsek bile işin %90’ı kısıtlar altında yürüdüğü için ne kendi koduma ne başkasının koduna güvenmek kolaydır. Zig’in pek çok avantajı var ama baştan itibaren güvenlikten çok hackleme özgürlüğünü tercih eden insanlar için tasarlanmış bir dildi
    • İkili dosya boyutu ve hızdaki iyileşmelerin, Rust ile yeniden yazımın kendisiyle büyük ilgisi yok; Zig kod tabanına benzer emek verilseydi muhtemelen orada da elde edilebilirdi. Yeniden yazımı pazarlamak için bu sayıların iyi görünmesini sağlayan ek çalışmaların payı var
      Bellek güvenliği de yapay zeka, testler ve üst düzey fuzzing yerine Zig ekibinin önerdiği entegre fuzzer kullanılsaydı benzer biçimde sağlanabilirdi. Yine de Bun gibi bir proje için daha olgun Rust daha iyi bir seçim olabilir
      Ne yaşandığını anlamak için Andrew’nun bakış açısı gerekliydi. Bazı ifadeler daha yumuşak olabilirdi, ancak kötü yönetim ilişkilerin bozulmasının ve zayıf mühendislik sonuçlarının doğrudan sebebiyse, bunu ortaya koymak kişisel saldırı değil, gerekli bağlamdır
    • Kod yazmayı üstlenerek programcı verimliliğini artırdığını söyleyen bir ürünün, kendi dilini satmıyor diye dil pazarıyla ilgisiz olduğunu düşünmek dar görüşlülük olur
      Özellikle Zig yönetimi vibe coding’den açıkça hoşlanmadığını söylemiş, sektörü eleştirmiş ve proje bu ürünle yapılmış katkı taleplerini reddediyor
  • Bu tartışmada asıl eksik olan şey teknik içerik. Bun’un Rust’a taşınması, Andrew’nun saldırgan yazısı ya da altına hücumda kürek satan Anthropic ilgimi çekmiyor; somut teknik ayrıntıları görmek istiyorum
    Jarred’ın Rust’a geçiş için sunduğu gerekçeler kanıt bakımından biraz zayıf olsa da makul görünüyor, ancak Andrew bunun neden aslında sorun olmadığını ya da Zig’de bunun doğru biçimde nasıl çözüleceğini çürütmedi. Özellikle Bun’un gerçek Zig koduna dayanarak argümanları incelemesini isterdim

    • Bun tarafının sunduğu olgulara bakınca, yeniden yazımın teknik gerekçesi zayıf görünüyor; çoğu durumda yeniden yazım kötü mühendisliktir, dolayısıyla bu şaşırtıcı değil
      Bun, Zig deneyimi az olan birinin, kapsamın büyüklüğüne ve karmaşıklığına rağmen başlattığı bir projeydi. Üstelik baştan itibaren başka bir dildeki kodun yeniden yazımıydı. esbuild’in JavaScript·TypeScript dönüştürücüsünü Go’dan Zig’e satır satır taşıyıp birkaç yıl sonra tüm kod tabanını çöpe atarak başka bir dilde yeniden yazdıysanız, bunun üzerine daha ne söylenebilir emin değilim
    • Andrew’nun asıl noktası, Bun kodunun en baştan kötü olduğu ve Jarred’ın toksik bir figür olduğu için bu tartışmaya girmeye bile değmeyeceğini ima etmesiydi diye anlıyorum
    • Bun hızlı hareket edip bir şeyleri kırmak istiyor, Zig ise yavaş ve dikkatli hareket etmeyi dayatıyor
      Bun, shell dili ve SQLite/PostgreSQL istemcisi gibi özellikleri mümkün olduğunca hızlı çıkarmak istiyor; bu yüzden bellek yönetimini doğrudan düşünmek istemiyor. Zig bellek yönetimi ve yaşam süresiyle doğrudan uğraşmanızı ister, Drop gibi özellikleri de bilinçli olarak eklemez; buna karşılık Rust, Drop sayesinde buna daha uygun düşer
      Python ile SQL veritabanı yazmayacağınız gibi, Zig de Bun için doğru araç değil; bu, Zig’de doğru şekilde çözülecek bir mesele olmaktan çok Jarred’ın projeyi hızla ilerletme tarzıyla ilgili bir fark
    • Asıl yazı buna doğrudan değiniyor ama neredeyse yalnızca iyi tarafları seçerek aktarmış. Örneğin derleme sürelerini iyileştirmek için Zig derleyicisini bile yeniden yazdıklarını söylerken, genelde çok daha yavaş olan Rust derleme sürelerinin neden hiç ele alınmadığını merak ediyorum
    • Altına hücumda kürek satanlar veri merkezleriyle enerji üreten şirketlerdir; altın ise token’lardır
  • Kelley’nin bazı görüşlerine katılıyorum ama sorun üslup
    Eğer Bun, Rust’tan Zig’e yeniden yazılmış olsaydı, Rust çekirdek ekibinden birinin Sumner’ı hedef alan kişisel saldırı dolu bir yazı yazıp bunun saldırı olmadığını savunması pek olası görünmezdi. Kelley’nin istediği yazıyı yazma özgürlüğü olduğu gibi, büyüyen bir dilin BDFL’i tarafından oluşturulan Zig’in kamusal imajına insanların tepki verme özgürlüğü de var

  • Bun’ın Rust’a geçiş yazısında somut seçenek karşılaştırmaları ve etki ölçümleri eksikti; sonuçlar da taraflı ele alındığı için mühendislik blog yazısı gibi hissettirmedi
    İnsanlar port etmenin teknik gerekçesinden çok ajan kullanımına daha fazla ilgi göstermiş gibi görünüyordu ve teknik açıdan oldukça hayal kırıklığı yarattı

    • Aynı yazıyı okuyup okumadığımızdan emin değilim. Belirli bir kod satırını ele almıyordu ama derin mimari ayrıntılar, bellek güvenliği ve hatalarla ilgili gerekçeler, büyük ölçekli ajan kodlama kalıpları tekrar tekrar yer alıyordu
  • Yöneticiler ve üst düzey kadrolar üzerinde pazarlamanın etkisinin ne kadar büyük olduğunu, özellikle de CEO gibi konumlara gelen kişilerin ne kadar küçük duygusal etkilere kapılabildiğini hafife almamak gerekir
    Yeni Fable modelini tanıtmak için bir fırsat olması ve Zig’in Anthropic ürünlerinin kullanımına açıkça karşı çıkması bile, Bun’ın Rust ile yeniden yazımını fiilen önceden belirlemiş olabilir

    • Yönetimin herhangi bir şekilde müdahil olduğunu düşünmek için bir neden göremiyorum. Jarred’ın kendi istediği şeyi yaptığı açıklaması çok daha inandırıcı ve kendisi de bugüne kadar bunu söylüyordu
  • Dil geçişi tartışmasında neden çalışma saati beklentilerine kadar gelindiğini anlayamıyorum. Kötü bir yönetici olsa bile bu, olumsuz malzeme zorla aranıyormuş gibi görünüyor
    Zig tarafının yeniden yazımın teknik avantajlarına neredeyse hiç odaklanmaması da manidar. Anthropic çeşitli iyileştirmeler öne sürdü ama bunlara karşı çıkma yönünde bir girişim bulmak zor
    Projemi büyük dil modeliyle yeniden yazdığımda dezavantaj olmadan iyileştiği sonucu çıksa ciddi biçimde endişelenir ve buna karşılık verirdim; burada ise alakasız şekilde çalışma saatleri konuşuluyor

  • Anthropic’in sahip olduğu bir proje ile AI tarafından üretilen koda açıkça düşmanca yaklaşan bir dil topluluğu liderliği arasında bariz bir çıkar çatışması var
    Andrew Kelley’nin sadece bunu söyleyip durması daha iyi olurdu; Bun kurucusunun enerjisi ve motivasyonuyla ilgili değerlendirmelerinin ise neredeyse hiç katkısı yok

    • Yapay zekayı mutlak biçimde destekleyenler ile ona mutlak biçimde karşı çıkanların uzlaşması zor. Teknik gerekçelerin ve saldırıların çoğu sonradan yapılmış rasyonalizasyon; sadece her kurumun bağlamı ve hedefi farklı
      Kelley de bunu biliyordu ama odağı bulandırma cazibesine direnememiş gibi görünüyor. Sert yazı([0]: https://andrewkelley.me/post/my-thoughts-bun-rust-rewrite.ht...) aşırıydı, ama ileriye bakalım diyen ek bölümü sağlıklı. Bir BDFL’nin fazla yavan olmasındansa biraz sert olması daha iyidir diye düşünüyorum