Bun desteği artık kısıtlanıyor ve kullanımdan kaldırılma sürecine giriyor
(github.com/yt-dlp)- Bu issue hâlâ Open durumunda ve bir sonraki yt-dlp ve/veya
ejssürümünden itibaren Bun desteğinin kapsamı1.2.11ve üzeri,1.3.14ve altı ile sınırlandırılıyor; ayrıca desteğin kendisi de kullanımdan kaldırılma sürecine alınıyor - yt-dlp, Bun’u
ejsile uyumlu bir JavaScript runtime’ı olarak kullanmayı sürdürüyor, ancak bakım yükü artarsa Bun desteğini tamamen kaldırma hakkını saklı tutuyor - Desteklenen en düşük sürüm, önceki
1.0.31yerine1.2.11oluyor; çünkü1.2.0öncesi Bun ileejspaketini derlerkenejslock dosyası yok sayılıyor ve bu da yakın dönemdeki npm tedarik zinciri saldırıları düşünüldüğünde ciddi bir güvenlik endişesi olarak görülüyor - Alt sınırın
1.2.0değil1.2.11olarak belirlenmesinin nedeni,1.2.11öncesi Bun sürümlerindeejstest paketinin çalıştırılamaması - Üst sınır
1.3.14olarak belirlendi; gerekçe olarak da bu sürümün, özgün Zig kod tabanından derlenen son release olması gösteriliyor - Bun’un yakın zamanda Claude kullanılarak Rust ile yeniden yazıldığı ve geliştirme yönünün “tamamen vibe-coded” bir çizgiye kayıyor gibi görünmesi, ileride bakım yükü ve güven açısından sorun olarak gündeme getiriliyor
- Bir yorumda Deno’nun da “vibe coded” olduğu itirazı yapıldı, ancak yönetici Claude kullanmak ile Claude’a tamamen bağımlı olmak arasında büyük fark olduğunu söyledi
1.3.4ile1.3.14arasındaki sürümlerin de Anthropic satın alımı sonrasında “vibe coding” etkisi altında kalmış olabileceği ve bu nedenle destek dışı bırakılması gerekip gerekmediği sorusuna yönetici, bunu değerlendireceğini söyledi- Bazı kullanıcılar, gerçek bir sorun ortaya çıkmadan en yeni Bun sürümlerinin çalışmasını engellemenin temelsiz ve peşin bir kısıtlama olduğunu, bunun yerine uyarı ya da bir flag ile çalışmaya devam edebilmesi gerektiğini savunuyor
- Başka bir yorumda,
--js-runtimesile Bun ikilisinin yolu doğrudan verilebildiği için, en güncel Bun’un normal şekilde kullanılmaya devam edilip yt-dlp için özel olarak statik Bun1.3.14belirtilebileceği anlatılıyor - İlgili duyurular olarak Node v20·v21 desteğinin sonlandırılması issue’su ile Deno için asgari desteklenen sürümün
v2.3.0’a yükseltilmesi issue’su da bağlandı; ayrıca EJS wiki belgesi henüz bu değişikliği yansıtmıyor - Yönetici, Hacker News kaynaklı yorum akışını dikkate alarak, yorum yazmadan önce gerçekten yt-dlp içinde Bun kullanımıyla ilgili bir sorunla ilgilenip ilgilenmediğinizi düşünmenizi isteyen sabitlenmiş bir yorum bıraktı
1 yorum
Hacker News yorumları
Karar anlaşılabilir. Bakımcının bizzat yazmadığı kod çoğunluktaysa, kod tabanını gerçekten anlamak zor olmalı
Baştan yazılan tüm kodu gözden geçirmek de fiilen imkânsız. Söz konusu olan tam 1 milyon satır kod https://github.com/oven-sh/bun/pull/30412
Sonuçta aynı içeriğin başka bir sözdizimiyle yazılmış haline daha yakın ve bu yüzden Rust geliştiricilerine kötü görünüyor olabilir. Sanırım Bun geliştiricileri kendilerine tanıdık gelen bir kod istiyordu
Yine de buna 2.0 denmeliydi diye düşünüyorum. O zaman bu kadar acele ediliyormuş hissi de azalırdı. 1.3.14'te de birkaç regresyon var ama şu anda küçük Rust kaynaklı yangın o kadar fazla ki kimse pek umursamıyor gibi
Daha büyük sorun, Bun'ın parlak yeni özelliklerin peşinden koşup işleri sonuna kadar tamamlamaması. Testler çoğunlukla Vitest ama tamamı değil, Jest de çoğunlukla var ama tamamı değil, pnpm de öyle. Şimdi görüntü özellikleri de geldi; sharp'ın çoğu var ama tamamı değil. Geliştirme sunucusu da Vite'ın çoğu ama yine tamamı değil. Uzun süre çalışan süreçler Node'a büyük ölçüde benziyor ama bellek sızıntıları var; sanırım Rust geçişinin motivasyonlarından biri de buydu
Görüntü rutinleri yazısını gördüğümde hevesim kaçmıştı. Bu da bir başka parlak hedefti ve test bug'larıyla birleşince sonunda tamamen Vitest'e geçtim
Bu yeniden yazımın başlı başına iyi bir fikir olduğundan ve başarılı olacağından emin değilim ama buna karşı öne sürülen mantık da aynı derecede ikna edici değil
O 1 milyondan fazla satırın ne yaptığını kimse bilmez. Onu gerçekten sahiplenip hevesle ilgilenen de yoktur. Gereksinimleri alırsınız ve dokunmanız gereken yüzeyler dışındaki her şeyi kara kutu muamelesi yaparsınız
Sonuçta aynı işi yapan 14 arka plan servisi uygulaması, aynı role sahip 8 bağımlılık, birbiriyle çakışan 6 framework ve stil ile yaklaşımda tam bir uyumsuzluk ortaya çıkar. Yine de kimse bunu pek önemsemez
Buna saf “vibe coding”den daha iyi diyebilirim ama önemsiz kısımlarda idare etse bile gerçekten derin düşünme gerektiren çekirdek altyapıda kabul etmesi zor
Bu, birinin ırkını ya da dinini ayrımcılığa uğratmak değil. Büyük bir vibe coding ile üretilmiş yüzey alanı istemiyorsanız neden illa açıklama yapmak zorunda olasınız ki?
Bu, geliştiricinin “sanatsal” takdir yetkisine girer ve insanların yazılımın doğası gereği görüş içerdiğini unutmuş gibi görünüyor
Çalışıyorsa çalışmaya devam edecektir. Sadece onlar bunu desteklemek, bakımını yapmak ve issue çözmek istemiyor
Rust'a port edilen Bun ölçülebilir her açıdan daha iyiyse, tüm testlerden geçiyorsa, performansı aynı ya da daha iyiyse ve mevcut bug'ları düzeltiyorsa, hangi dilde yazıldığı ve nasıl uygulandığı neden önemli olsun ki? Esas mesele kalitenin daha yüksek olması
Bun ekibi Rust sürümünü yayımlayıp onayladığında ona güvenmiyorsanız, 2 hafta önceki Zig sürümüne neden güvendiğiniz de mantıksal olarak tutarlı olmaz. Bu durumda yt-dlp geliştiricileri aptal gibi görünür
Bun kullanmayı gerçekten seviyorum, o yüzden Anthropic satın alımı sonrasında yönün böyle değişmesi biraz üzücü
İçinde her şey bulunan iyi bir Node istiyorum ama bunun vibe coding ile yapılmış olmasını istemiyorum
Birleşmeyi desteklediğim anlamına gelmesin. Böyle YOLO tarzı mühendislik yaklaşımına karşıyım. Sadece duyurudan sonra gelişmeleri takip etmedim, geçişin nasıl gittiğini merak ediyorum
Tabii komik derken korkunç derecede üzücü anlamda komik
Bu karar, mühendislikten çok siyasi bir yargı gibi görünüyor. Rust yeniden yazımından sonra Bun'da segmentation fault, bellek yetersizliği, güvenlik açığı ve bug artışı gördünüz mü?
Tabii henüz yeniden yazılmış sürüm bile gelmediği için görmüş olamazsınız. Sanki AI müdahalesi fikri hoşunuza gitmediği için karar veriliyor gibi
Mühendislik araçları hislere göre değil, istenen işi yapıp yapmadığına göre seçilir. Bun'da bug'lar artar ve daha kötü bir yazılım gibi hissettirirse kullanmam ama bu kararım veriye dayanır. Jarred, Bun ile çok etkileyici işler yaptı ve kendi kalite çıtasını karşılamayan bir yeniden yazımı yayımlaması düşük ihtimal, o yüzden bekleyip göreceğim
Güvenlik açığı riskinin makul biçimde artmış olabileceğini düşünürken bunu kullanıcılar üzerinde test etmek, aksine ihmalkârlık sayılabilir
Sorumlu tercih, “şu anki main'den kesilmiş yeni Bun sürümünde yazılımımızın çalışmasını hemen desteklemeyeceğiz” demeye daha yakın
Yine de gelecekteki sürümleri yeniden değerlendirme planı değil de, sanki artık asla desteklemeyecekleri niyeti varmış gibi görünmesi üzücü. Elbette yt-dlp geliştiricilerinin kimseye borcu yok
1 milyon satırlık tam yeniden yazım, aynı ABI'ye sahip olsa da fiilen yeni bir runtime demek ve birçok alt tüketici için production bağımlılığı olarak alınması rahatsız edici
Tartışma adına Bun'ın tamamı insanlar tarafından elle yeniden yazılmış olsaydı da durum aynı olurdu. Bence bu tür kararlar oldukça standart ve kişisel olarak Bun'ın LLM ile yeniden yazım kalitesinin genel olarak iyi olacağını düşünsem de kendi ürünümü ya da şirketimi buna bağlamam. Riskli değişiklikleri yazılımımda ben seçmek isterim, alt bağımlılık yüzünden zorla üstlenmek istemem
Bug'lar patlayıp her şey dağılmaya başlayana kadar oturup beklemeyeceğim
“Araçları sadece istediğim işi yapıyor mu diye seçerim” diye düşünen birinin projesiyse, onu bağımlılıklarımdan çıkarırım
Bir tren kazasına dönüşebilecek araçtan uzaklaşmanın en kolay zamanı, onu daha entegre etmeden öncedir
Bu, Rust dönüşümüyle ilgili ama henüz yayımlanmadı
“Öngörülebilir uyumluluk ve güvenlik sorunları” deniyor ama Zig sürümündeki Bun da epey çöküyordu
yt-dlp'nin neden öngörülebilir uyumluluk sorunları olduğunu daha ayrıntılı açıklayan bir bağlantı vermesini isterdim. Her iki projenin de test paketleri var, dolayısıyla ideal bir dünyada hızlı bir yeniden yazım mümkün olmalı
Belki durumu daha fazla alevlendirmemek istiyorlar ama somut olarak tespit ettikleri sorunlar varsa görmek isterdim
Bun.rs bunun için minör sürüm değil de 1.4 ya da 2.0 demeli ve keşke alpha/beta sürümleri de olsaydı
Ama daha açıkta sadece bir hafta oldu ve şu ana kadar ortada neredeyse hiç gerçek regresyon verisi yok. Daha çok “sadece hoşuma gitmedi” tarzı bir yakınma gibi duruyor
Bu mantık bana, “libfoo artık vim yerine emacs ile geliştiriliyor, o yüzden artık güvenilmez” demekten çok da farklı gelmiyor
Tabii birebir aynı değil ama benzer hissettirmesinin bir nedeni var
Yazılımda tek gerçek, benim kullanım senaryomda çalışıp çalışmadığıdır. AI'den önce de yazarın titiz ilerleyip ilerlemediğini ya da tutana kadar rastgele denemeler yapıp yapmadığını bilmiyorduk
Başka bir deyişle, yazılımı metodoloji ya da kullanılan araçları inceleyerek değerlendirmiyordum. Test paketi olmayan ya da berbat durumda olan çok yazılım kullandım; bellek güvenliğini seven insanlar da C ile yazılmış araçlar kullanıyor, tersi de geçerli
O yüzden “AI kullanım tarzını beğenmediğim için kullanmayacağım” mantığı, yazarın editör tercihini beğenmediği için kullanmayı bırakacağını söylemek kadar zayıf geliyor
Aksi halde fair trade çikolata/kahve diye bir kavram da olmazdı
Ürünü kullanan müşteriler için bu da bakımcının editör değiştirmesiyle neredeyse aynı, önemsiz bir ayrıntı mı olurdu?
Ama LLM için aynı şeyi söyleyen kişi o kadar da çok olmaz
Vibe Bun eski Bun kadar iyi ya da daha iyi olabilir ama şu anda bunu nasıl bilebiliriz?
Ayrıca “yazılımın titizlikle üretildiğini bilmiyorduk, metodolojiye göre değerlendirmiyorduk” sözü de doğru değil. Bazı insanlar bir projeyi benimsemeden ya da kullanmaya devam edip etmeyeceğine karar vermeden önce kabul edilebilir bir titizlik düzeyi olup olmadığını bizzat kontrol eder. Ben de önemli yerlerde bunu yapıyorum
Daha fazla insan ise itibar sinyallerini kullanıyor; kusursuz olmasalar da korelasyonları var, yeterli olabiliyorlar ve doğrudan elle incelemekten çok daha kolaylar
Geliştirme işinde LLM kullanım biçimini anlatacak yeni bir terime gerçekten ihtiyaç var. “Vibe coding”in katı bir tanımı var ama kimse umursamıyor gibi
Rust portunun özgün tanımdaki gibi %100 “vibe” ile yapılmış olduğuna inanmak gerçekten zor
Olumlu ya da olumsuz, konu duyguların bulandığı bir çamur güreşine döndü ve “vibe coding” ifadesi genel bir LLM kullanım aşağılama sözü gibi kullanıldığında tam olarak hangi sorunun kastedildiğini anlamak çok zorlaşıyor
Ben geliştirmeye yardımcı olması için LLM kullanıyorum ve bir mühendisin önemseyeceği her ölçütte daha iyi işleri daha hızlı yapıyorum
https://x.com/karpathy/status/1886192184808149383
Bu özel port örneğinde süreç o kadar hızlı ilerledi ki insanların çevirinin geçerliliğini doğrulamadığı açık görünüyor. İleride elle doğrulama yapılıp yapılmayacağı da belirsiz
Gerçi Dijkstra ölçütüne göre bakarsak, AI ortaya çıkmadan çok önce de çoğu yazılım projesi zaten “vibe coding” yapıyordu. Yani akışına bırakıp doğruluğun diye bir şey olduğunu unutuyordu
Karmaşık kodun doğruluğunu garanti etmek zordur ama artık veri merkezinin içinde 1 milyar hacker bulunan bir çağdayız ve bu giderek isteğe bağlı bir şey olmaktan çıkacak
Ek: “Bun'ın yayımlanmamış Rust portunda 13.365 unsafe block var”
https://news.ycombinator.com/item?id=48239790
Bu teknoloji çok yeni olduğu için araştırması zor ama iyimser bakıldığında bile ampirik kanıt bazı alanlarda yaklaşık %3 iyileşme dışında pek bir şey göstermiyor
Kod yazmak işimizin nadiren darboğazıdır
İnsanların neden bu karar karşısında bu kadar baskı hissettiğini anlamıyorum. Gerçek bir vibe coding meraklısıysanız, daha iyi bir yt-dlp'yi kendiniz vibe coding ile yapabilir ya da mevcut olanı fork'layıp istediğiniz hale getiremez misiniz?
Hatta insanların her iş için tek kullanımlık kişisel yazılımları vibe coding ile üreteceği de söyleniyordu
O halde vibe coder'ların herhangi bir yazılım kararından şikâyet etmek için bir nedeni olmamalı. Hoşunuza daha çok giden kişisel bir fork'u vibe coding ile yapmak çocuk oyuncağı olmalı, değil mi? Bu vibe coding'in vaadi değil miydi?
Bu, başkalarının zamanı ve emeğiyle ayakta duran projelere karşı insanların sıkça taşıdığı yanlış hak duygusu. Sırf kendi istediği özellik olsun diye başkalarının zamanını ve emeğini gönüllü olarak seferber etme hakkını kendinde görmeleri hâlâ şaşırtıcı
İşi yapanlar karar verme hakkına sahiptir ve beğenmiyorsanız kendiniz fork'larsınız. Bu ekosistem başından beri böyleydi
yt-dlp hâlâ şaşırtıcı derecede kolay kurcalanabilir durumda
İş yerinde de bunun benzerini yaşıyorum; AI konusunda dürüst teknik anlaşmazlığa alan bırakılmaması gerçekten çıldırtıcı
Bun yeniden yazımı hakkında ne hissetmem gerektiğini bilmiyorum
Bir yandan, kod tabanının büyük kısmının gözden geçirilmemiş olması çok korkutucu geliyor
Diğer yandan, duyduğuma göre neredeyse hiç regresyon olmadan testlerden geçiyormuş
Belki bu alanda tecrübem az olduğu içindir ama ben testlere, kodu hiç okumadan tamamen dayanacak kadar güvenmezdim