1 puan yazan GN⁺ 6 시간 전 | 1 yorum | WhatsApp'ta paylaş
  • Niteliksizleştirme, vasıflı emeği daha düşük vasıfla yürütülebilen teknik operasyonlarla değiştirerek maliyeti ve giriş engellerini azaltır; ancak çalışanların pazarlık gücünü de zayıflatır
  • Frontend, son 10 yılda framework’ler ve araçlar yüzünden tarayıcı, erişilebilirlik ve performans bilgisini perdeleyerek front of the frontend uzmanlığını geri plana itti
  • Ajan tabanlı yapay zeka, kodlamayı daha yüksek bir soyutlama düzeyine taşıyor; ancak deterministik değil ve küçük girdi/model değişikliklerinde bile sonuçları büyük ölçüde değişebilen sızdıran (Leaky) bir soyutlama
  • LLM’ler, Stack Overflow kopyala-yapıştır alışkanlığının devamı niteliğinde; uzmanları hızlandırırken yeni başlayanların da çalışan çıktılar üretmesini sağlıyor, ama birinin bu çıktıları anlayıp düzeltmesi yine gerekiyor
  • Yapay zeka daha fazla AI slop ve maliyet düşüşü yaratabilir; ancak kaliteyi, kullanıcıyı ve ödünleşimleri anlayan insanlara olan ihtiyacı ortadan kaldırmaz

Niteliksizleştirme açısından frontend ve yapay zeka ile kodlama

  • Niteliksizleştirme (deskilling), vasıflı emeğin yarı vasıflı ya da vasıfsız çalışanların kullanabileceği tekniklerle değiştirilmesi sürecidir; maliyetleri düşürür ve giriş engellerini azaltır, ancak çalışanların pazarlık gücünü zayıflatır
  • Frontend geliştirme son 10 yılda JavaScript framework’leri ve araçları üzerinden niteliksizleştirme yaşadı; programlamanın genelinde de ajan tabanlı yapay zeka benzer bir dönüşüm yaratıyor
  • Frontend’s Lost Decade ifadesinde olduğu gibi, tarayıcıyı ve kullanıcı ortamını derinlemesine anlayan frontend uzmanlığı, framework merkezli geliştirme karşısında geri itildi

Frontend’de kaybolan uzmanlık

  • Geçmişte frontend geliştirme; semantik HTML, CSS, tarayıcı farkları, erişilebilirlik, progressive enhancement, ağ performansı, arayüz tasarımı ve kullanıcı testleri gibi uzmanlıklar gerektiriyordu
  • Bazı uygulayıcılar bu alanları bugünün “frontend”inden ayırmak için front of the frontend olarak adlandırıyor
  • Frontend’deki niteliksizleştirme, tarayıcıyı JVM ya da iOS gibi uygulama çalışma zamanı benzeri basit bir derleme hedefi olarak ele alan framework ve araçların benimsenmesiyle ilerledi
  • Shadcn radio button gibi bir bileşeni alıp kullandığınızda, altında yatan HTML’i, tarayıcıya özgü incelikleri, sayfa yükleme performansını ya da erişilebilirliği derinlemesine bilmeden de işlev üretebilirsiniz
  • Şirketler, genel amaçlı programcıları frontend işlerine daha kolay kaydırarak maliyetleri azaltabiliyor
  • “Full-stack geliştirici” artık çoğu zaman hem frontend hem backend’i derinlemesine bilen kişi değil, JavaScript framework’leriyle iki tarafı da idare edebilen genel amaçlı geliştirici anlamına geliyor
  • Aynı geliştiriciyi projeler arasında kolayca kaydırmak mümkün oluyor; React Native ve Electron ile native uygulamalar bile ona emanet edilebiliyor
  • Giriş engellerinin düşmesi avantaj sağlasa da çalışanların pazarlık gücü zayıflıyor

Yapay zeka ile kodlama daha yüksek bir soyutlama, ama aynı zamanda sızdıran (Leaky) bir soyutlama

  • Programlamanın genelinde bugün yaşanan değişim, web geliştiricilerin daha önce yaşadığı dönüşüme benziyor
  • Elle doğrudan kod yazılan vasıflı işlerin, yarı vasıflı ya da vasıfsız çalışanların kullanabildiği tekniklerle ikame edilmesine doğru bir hareket var
  • Ajan tabanlı yapay zekâyla çalışanlardan nihayetinde hangi yeteneklerin bekleneceği ve iş gücü maliyetleriyle yerel/uzak LLM maliyetlerinin nereye varacağı henüz net değil
  • Şirketlerin bu teknolojiyi maliyet düşürme ve çalışanların pazarlık gücünü zayıflatma amacıyla kullanma ihtimali ise açık görünüyor
  • Yıllarca incelikle geliştirilmiş becerilerin piyasa değerinin düşmesi, zanaatkârların ve el işçilerinin montaj hattı işçileriyle yer değiştirdiği dönüşümü andırıyor
  • Niteliksizleştirme, otomasyon yoluyla verimlilik artışı; yani daha yüksek bir soyutlama düzeyinde çalışma yönündeki değişim olarak da görülebilir
  • Yeni teknoloji ayrıntıları gizler ve operatörün daha büyük resme odaklanmasını sağlar; ancak hangi ayrıntıların “önemsiz” sayılacağı kritik bir karardır
  • Soyutlamanın ayrıntıları sonunda bir gün sızar
  • “Modern” frontend’in sızdıran soyutlaması

    • Soyutlama çoğu zaman performans maliyeti getirir ve geliştirici üretkenliği için çalışma zamanı performansının bir kısmından vazgeçmek, güçlü sunucular ve orta düzey yük altında makul olabilir
    • Ama yavaş ağ kullanan mobil cihazlarda aynı ödünleşim tamamen farklı bir soruna dönüşür
    • React gibi ağır istemci tarafı JavaScript framework’leri ve ekosistem paketleri yoğun kullanıldığında, erişilebilirlik ile düşük donanımlı telefonlar ve yavaş ağlardaki performans soyutlamanın arkasına itilir
    • Sonuç olarak bunlar üzerine düşünülmeyen ve önemsenmeyen seçimlere dönüşür
  • Ajan tabanlı kodlamanın determinizm eksikliği

    • Ajan tabanlı yapay zekâyla bir özellik geliştirirken ya da hata düzeltirken, tüm kodu elle yazmak yerine daha az sözcükle daha yüksek seviyeli değişiklikleri tarif edersiniz
    • Yapay zeka, eğitim verisi ve çevresel bağlama bakarak atlanan ayrıntıları doldurur; bazen doğru tahmin eder, bazen başarısız olur
    • Bunun ne kadar yararlı olduğu, kodlamada neyin önemli kabul edildiğine büyük ölçüde bağlıdır
    • Ajan tabanlı kodlama derleyici gibi deterministik değildir; girdi ya da modeldeki küçük değişimler çok farklı sonuçlar doğurabilir, bu yüzden de mevcut programlama soyutlamalarından çok daha fazla sızdırır
    • Yapay zekânın “junior engineer” ile kıyaslanmasının nedeni de bu determinizm eksikliğidir; fakat insanlar, AGENTS.md ya da SKILL.md dosyalarını sonsuza kadar ince ayarlamadan da öğrenebilir

LLM’ler Stack Overflow kopyala-yapıştır alışkanlığının devamı

  • LLM kullanımına en yakın benzetme, geçmişte Google aramanın kullanılış biçimidir
  • Uygun forum gönderisini ya da Stack Overflow yanıtını ilk sonuç sayfasına getirecek doğru anahtar kelimeleri seçme becerisi de geliştiricilerin öğrenmesi gereken bir yetenekti
  • LLM prompt’ları da eğitim verisinden uygun birleşimleri geri döndürmeye yönelik bir süreçtir ve bulanık bir web aramasında çok yüksek boyutlu uzayda yapılan sorguya benzer
  • Arama sonuçları, ifadedeki küçük değişimlere ve Google arama dizinindeki değişikliklere hassastı; LLM’ler de girdinin ifade edilişine ve model değişikliklerine duyarlıdır
  • Google yakın dönemde aramayı, giriş terimlerini daha güçlü normalize edecek şekilde değiştirdi; bu, Google-fu konusunda deneyimsiz kişiler için aramayı kolaylaştırırken uzmanlar için daha az güçlü hale getirdi
  • Google ve Stack Overflow programlamayı geri döndürülemez biçimde değiştirdi; kılavuz okumak yerine cevapları kopyalayıp yapıştırarak da şaşırtıcı ölçüde sık şekilde az çok çalışan sonuçlar elde edilebilir oldu
  • LLM’ler de aynı akışın devamıdır
    • Ne yaptığını bilenleri biraz daha hızlandırır
    • Ne yaptığını pek bilmeyenlerin de bir ölçüde çalışan şeyler üretmesini sağlar
  • Soyutlamalar bir gün sızar ve o noktada birinin gerçekten ne olup bittiğini derinlemesine anlayıp düzeltmesi gerekir
  • Junior geliştiricilere Stack Overflow yanıtını kullanmadan önce okuyup anlamayı öğrettiğimiz gibi, artık LLM çıktısını da okuyup anlamayı ve mevcut kod tabanına nasıl uyduğunu kavramayı öğretmek gerekir

Kalite ile iş dünyası arasındaki mesafe

  • Bazı programcılar Stack Overflow yanıtlarını gerçekten anlama aşamasına hiç geçmedi; sonuç çalışıyorsa yeterli gördü
  • Birçok şirket de bunu açıkça kabul etmese de bu yaklaşımdan memnundu
  • Bugün ise şirketler, ortaya çıkan çıktılara gerçekten bakıyormuş gibi yapma gereği bile duymadan ne kadar çok yapay zeka kullandıklarını alenen öne çıkarıyor
  • LLM’lerin geçerli kullanım alanları elbette var; ama aynı zamanda kodu, kurum içi iletişimi ve süreçleri bozmanın yeni yolları da çoğalıyor
  • Kod incelemesinde olduğu gibi, LLM’lerin iş akışına nasıl dahil edilip entegre edileceğine dair görüş ayrılıkları büyük; ekipte neye değer verildiği konusunda uyum yoksa iş akışında ciddi sorunlar çıkabiliyor
  • Pek çok şirket kötü yazılım üretmeye devam etse de gayet iyi işleyebiliyor
  • Programcıların inanmak istediğinin aksine, iş başarısı ile yazılım kalitesi çok nadiren güçlü biçimde ilişkilidir
  • Çoğu durumda marka, fiyat gibi başka etkenler daha baskındır; yazılım projeleri de başarı ve başarısızlığın benzer olasılıklara sahip olduğu birer kara kutu gibi ele alınır
  • Frontend’de de yavaş web siteleri ve sayısız çerez banner’ı dönüşüm oranını düşürebilir; ancak bu etki, marka sadakati ve fiyat gibi etkenlerden daha küçüktür ve rakiplerin siteleri de çoğu zaman yavaştır
  • “React seçti diye kimse işten çıkarılmaz” türü bir atmosferde, kalite yerine güvenli seçimler tercih edilir
  • Bu, kullanıcıyı ve zanaatkârlığı önemsemeyi bırakmak gerektiği anlamına gelmez; ama bunu yapabileceğiniz bir iş bulmak daha zor hale gelmiştir
  • Abartı dönemi geçip LLM’lerin gerçekten uygun olduğu ve olmadığı işler daha iyi anlaşıldığında bir miktar denge geri dönebilir; ancak mesleğin kendisi artık eskisi gibi olmayacaktır

Sanayileşmeden sonra da kalan beceriler

  • Gündelik ürünler ve binalar sanayi süreçleriyle seri üretilebilir hale geldiğinde, verilen tepkilerden biri geçmiş üslupları taklit ederek el yapımı gibi görünen ürün ve binaları fabrikada üretmek oldu
  • Bu tür tarihselcilik anlayışına karşı 20. yüzyıl başındaki Bauhaus, fabrika işçisi ile zanaatkârı karşı karşıya koymak yerine, ikisinin birlikte çalıştığı ve sanayi üretim süreçlerini veri kabul ederek sanat ile zanaatı yeniden geliştiren bir yaklaşım ortaya koydu
  • Bauhaus, tasarımcının atölyeye geri dönüp malzemeyle doğrudan çalışmasını, ama nihai hedefin seri üretilebilir tasarımlar olmasını savundu
  • Yazılım, yazılan programın ayrı bir üretim aşamasından geçmeden “olduğu gibi” kullanıcıya ulaşması bakımından zanaata; aynı şeyin binlerce kullanıcıya dağıtılması bakımından ise endüstriyel tasarıma benzer
  • Elle kod yazabilme becerisi hâlâ gereklidir; nasıl bir endüstriyel tasarımcı ürünün malzemesini bilmek zorundaysa, web tasarımcısı da HTML ve CSS’e son derece hâkim olmalıdır
  • Google, Stack Overflow, hazır kütüphaneler, LLM’ler yeni başlayanların daha kolay işe koyulmasını sağlıyor; ama aynı zamanda bir şeyi çalıştırmayı zorunlu kılan doğal engelleri de sürekli aşağı çekiyor
  • Sanayileşme, kullanım biçimini ve kullanıcıyı yeterince düşünmeden üretilmiş pek çok ucuz plastik ürünü mümkün kıldı; ama iyi endüstriyel tasarım hâlâ varlığını sürdürüyor
  • Kelime işlemciler kötü biçimlendirilmiş çok sayıda belge üretti; ama tipografi ve grafik tasarım hâlâ var
  • Wix ve Next.js, yavaş ve erişilebilirliği düşük çok sayıda web sitesinin yapılmasını kolaylaştırdı; ama front of the frontend uzmanları da hâlâ var
  • Yapay zeka çok miktarda AI slop üretimini mümkün kılıyor; ama bu, ne yaptığını bilen ve yaptığı işi önemseyen insanlara artık ihtiyaç olmadığı anlamına gelmiyor

Önümüzdeki değişim ve ödünleşimler

  • Diğer sektörlerde olduğu gibi, işi gerçekten düzgün yapmanın toplam içindeki payı daha da küçülebilir
  • Aynı zamanda üretim daha kolay ve ucuz hale geldikçe toplam pazar büyümeye devam edecektir
  • İşini iyi yapan ve bunun karşılığında ücret alan insanların mutlak sayısının artıp artmayacağını şu anda söylemek zor
  • Hızlı prototip ya da MVP çıkarmanın doğru tercih olduğu durumlar vardır
  • Ürün-pazar uyumunu henüz bulmadıysanız, her şeyi geleceğe hazırlamaktan çok hızlı yineleme ve öğrenme daha önemlidir
  • Ancak neyi öğrenmeye çalıştığınızı ve bu öğrenmeyi nasıl doğrulayacağınızı bilmeniz gerekir
  • Uygun an geldiğinde ise çoğu zaman bir adım geri çekilip baştan doğru şekilde yapmak daha iyidir
  • Örneğin kötü mimariye sahip bir frontend’de sonradan iyi performans elde etmek çok zordur
  • Basit bir stack ile başlayıp sonradan özellik eklemek, bunun tersini yapmaktan daha kolaydır
  • Mastro, iyi performansı ve basit bir stack ile başlamayı açıkça teşvik eder
  • İster hizmet satın alın, ister açık kaynak kütüphane kullanın, ister LLM üretimi tercih edin, ister her şeyi kendiniz yazın; sistemin her parçasında hangi ödünleşimleri yaptığınızı bilmeniz gerekir
  • Hype söndüğünde sektör, yapay zekânın araç kutusundaki araçlardan yalnızca biri olduğunu fark edecektir
  • O zamana kadar yapay zeka adı altında çirkin kodlar, bozuk iletişim ve korkunç işten çıkarmalar görmeye devam edebiliriz

1 yorum

 
GN⁺ 6 시간 전
Hacker News görüşleri
  • OP'nin hayıflandığı derin uzmanlığın aslında birçok kişi için epey rahatsız edici bir şey olduğunu düşünüyorum
    Tarayıcıya göre değişen tuhaflıklar, erişilebilir bileşenleri elle uygulamak, CSS özgüllüğü ustalığıyla geçinmek anlaşılabilir ama bunların çoğu tesadüfi karmaşıklığa daha yakın. Daha fazla insanın bir şeyler üretebilmesi kesinlikle iyi bir şey ve bunun sonucunda ortaya çıkan ürünlerin bir kısmı daha yavaş ya da erişilebilirlik açısından daha zayıfsa, bu seçilebilir bir ödünleşimdir
    Soyutlamaların kullanıcıların seçmediği sonuçları dayattığı söylenebilir ama LLM'nin erişilebilirlik teamüllerini benden daha iyi anlama ihtimali de var

    • Erişilebilirlik, sezgisellik, uyumluluk, tepki hızı, ölçeklenebilirlik, mimari, performans gibi daha az görünür UX/yazılım geliştirme unsurlarını düzgün ele almak her zaman zordu
      Ama çok yüksek seviyeli framework'ler ve artık LLM'ler bu alanları bozarken yarı pişmiş MVP'leri hızla çıkarmayı kolaylaştırdı; bu da “kabul edilebilir” ile “iyi” arasındaki farkı daha da açıyor. “İyi”yi hedefleyenler için “kabul edilebilir”i dayatanlarla rekabet etmek giderek zorlaşıyor
      Sonuç olarak daha fazla fazla mesaiye ve yazılım kalitesinde düşüşe, hatta genel iş tatmininde azalmaya yol açıyor. Bugünlerde temel işlevleri geri getirmek için geliştirici araçları ve uBlock ile bozuk web sitelerini düzeltmek veya dikkat dağıtıcı şeyleri kaldırmak zorunda kalıyorum; burada da aynısını yaptığını söyleyen insanlar gördüm(https://news.ycombinator.com/item?id=47042747). Eskiden Flash ya da ilk tarayıcı dönemlerinde bile böyle elle müdahale etmek gerekmiyordu
      Daha az anekdotsal bir örnek de var: https://news.ycombinator.com/item?id=47390945
      Daha kötüsü, bu kesintilerle tasarruf edilen paranın çoğunun yalnızca organizasyonun en tepesindekilere gitmesi
    • AI, animasyon nesnelerini blur nesnelerinin arkasına koyma hatasını tekrar tekrar yapıyor ve bu da tarayıcının sürekli yeniden çizim yapmasına neden oluyor
      Google'ın AI mode'unda da bu vardı; başka web siteleri de belli ki vibe coding ile benzer şeyler eklemiş
      Başta GPU kullanımının neden fırladığını ve fanların neden bu kadar hızlandığını anlamakta zorlanmıştım ama artık bunun AI'ın sık yaptığı bir hata olduğunu ve kimsenin doğru dürüst test etmediğini görüyorum. İnsanlar da böyle hatalar yapabilir ama şu ana kadar hayatım boyunca buna neredeyse hiç rastlamamıştım
      240Hz monitör kullandığım için tarayıcı saniyede 240 kez yeniden çizim yapmaya çalıştı ve bunu ancak uBlock Origin ile engelleyebildim. Tam bir saçmalık
    • “Zanaatkârlığımızı kaybediyoruz” türü yazılar hep aynı karamsar yapıya sahip
      Daha da kötüsü, ortalarına doğru kendi tezlerini kendileri çürütüyorlar
      Mesela “hangi ayrıntıların önemsiz sayılacağı son derece önemli, bazen öznel bir karardır ve sonuçta ayrıntılar her zaman dışarı sızar” denmiş; öyleyse bu yeni teknolojinin de sonuçta derin teknik anlayışı ödüllendirdiği anlamına gelir. Çünkü bundan kaçış yok. Buna katılıyorum. Ama o zaman neden genel ton “AI benim becerilerimi ucuz bir metaya dönüştürüyor” oluyor?
      Web siteleri teknik olarak 10 yıl öncesine kıyasla genel olarak daha iyi. Daha fazla özellik var, daha hızlılar ve SSL/erişilebilirlik/duyarlı tasarım artık daha güçlü varsayılanlar. İçerik çiftlikleri, SEO ve haber siteleriyle ilgili sorunlar reklamların ve kurumsal teşviklerin yarattığı ayrı ve korkunç bir başarısızlık biçimi; React'in suçu değil
    • “LLM'nin erişilebilirlik teamüllerini benden daha iyi anlayacağı” düşüncesi, daha doğrusu, başka insanların bunları anlayıp yazmış olmasından kaynaklanıyor
      LLM bazen bundan yararlanabiliyor. Ama insanlar artık yazmayı bırakırsa sonra ne olacak?
      Daha fazla insanın bir şeyler üretmesinin iyi olduğuna katılıyorum. Diğer her şey eşitse, ne kadar çok olursa o kadar iyi. Eğer “AI” tartışmasız iyileştirmeler yüzünden her yere nüfuz etmiş olsaydı, durum ve genel hava çok daha farklı olurdu
      Yine de insanlar çalışmalarından “üretilen” bilgi üzerinde doğal bir hakka sahip değildir. Atıf ve ödüllendirme ciddi biçimde ele alınsa ve yalnızca veriyi üreten kişilere ödeme yapılmış materyallerle eğitim yapılabilse, o zaman doğrudan CSS öğrenmek muhtemelen çok daha hızlı ve ucuz olurdu
    • “Derin uzmanlığı” görmezden gelip hack'ler ve tembel soyutlamalar üstüne convenience inşa etmek, bana göre modern çok MB'lı framework'lere ve Electron'a kadar uzanan bir gerileme
      Elbette kimse kullanıcının bilgisayarını/bellek kullanımını, kötüleşen deneyimi, boşa harcanan bant genişliğini, 8 milyar insana yayılan ek enerji maliyetini ve çevresel etkisini umursamıyor
      Daha fazla insanın kamusal altyapı inşa etmesi de mi “kesinlikle iyi bir şey”? Sonuç daha kötü yollar, daha kötü köprüler, başarısız olan sistemlerse? Yazılım da aynı ve aslında çoğu şey için bu geçerli
  • Bu yazının relevance’ını kaybettiği söylenen “frontend teknolojisi”nin önemli bir kısmı, sezgisel olmayan istisnalar, tarayıcı uyumsuzlukları, tarihsel yükler ve istisnanın istisnasının istisnasıyla dolu bir mayın tarlasında ilerlemekti
    Modern frontend, yani “sızdıran soyutlamalar kulesi”, sonunda web geliştirme için sağduyulu bir zihinsel modele daha yakın. Web standartları ve teamülleri denen tuhaflık patlayıcısının üstüne zorla kaplanmış bir şey ama yine de çalışması ve sadece biraz sızdırması bile başlı başına bir başarı

    • “Web geliştirme için sağduyulu zihinsel model” ifadesi kendi içinde çelişkili. Ya mayın tarlası gibi bir istisnalar dünyasındayızdır ya da sağduyulu bir model vardır; ikisi birden olamaz
      Hâlâ istisnalarla dolu bir mayın tarlasındayız ve frontend üretmek için kullanılan teknolojilerin temiz, öngörülebilir ve tarihsel yüklerden arınmış hâle geldiğini söylemek zor
      Yaptığımız şey sadece temeldeki hataların ve uyumsuzlukların üstünü sıvamak oldu; çözmek değil. React, HTML’in bir UI araç kutusu olarak tasarlanmamış olduğu gerçeğini çözmüyor. Next.js, JavaScript’in güvenli, aklı başında ve makul bir dil olmasını engelleyen tasarım hatalarıyla dolu olduğu gerçeğini çözmüyor. Tailwind, CSS’in stil verme için tasarlanmamış bir işaretlemeyi süslemek amacıyla alelacele devreye sokulmuş olma sorununu çözmüyor
      Şu anda LLM’in yaptığı şey, sıvanın altındaki dehşeti istatistiksel modelin içinde “biliyor” olmaktan ibaret. O model, önceki sıva katmanlarının çatlaklarını yeniden dolduran örneklerin %99 olduğu bir dönemin örnekleriyle eğitildi
    • Uzman değilim ama halkın gördüğü frontend’i dağıtmayı deneyince, frontend bana Oz Büyücüsü’ndeki sarı tuğlalı yolu hatırlatıyor
      Küçük ama iyi bir en iyi uygulamalar kümesinin dışına çıkmazsanız, sıkıcı ama kanıtlanmış birkaç kütüphaneyle bile gayet iyi bir deneyim sunabilirsiniz
      Ama günün modası frontend framework’üne, ya da daha kötüsü dünün modası framework’e bulaşırsanız, belirli bir yöntemde ısrar eden başka geliştiricilerin tuhaf tercihleriyle uyum sağlamak zorunda kalırsanız ya da umut ve koli bandıyla bir arada tutulan “dahiyane” hack’lerle uğraşmaya başlarsanız, karmaşıklık ve etkileşim biçimleri katlanarak artar
    • Orijinal metin, aslında hiç var olmamış bir altın çağın kaybına ağıt yakıyor
      O dönemi yaşadım. IE6’ya özel saf JavaScript, bol hatalı jQuery ile değiştirildi; sonra bakımı imkânsız Angular tek sayfa uygulamalarına, ardından da canavar gibi React kod tabanlarına dönüştü
    • Cehaleti ele veren bir söz gibi görünüyor
      Gerçekte bundan çok daha fazlası var
      Mülakata Next.js uzmanı olarak gelen çok fazla insan gördüm ama çoğu onun dışındaki hiçbir şeyi yapamıyordu. Bu bir beceri değil, sadece bilgi ve bugün bedava her yerde bulunuyor
    • O sızdıran soyutlamanın hangi kulede, hangi katta, hangi odada olduğunu anlama becerisi hâlâ çok değerli ve LLM’in göremeyebileceği bir şey olabilir
      Bir şeyin bir komite tarafından baştan kusursuz tasarlanmamış olması, her şeyi unutup kitabı kapatıp hesabı makineye bırakabileceğiniz anlamına gelmez
      Ben de ikincisini yaptığım için neyi yanlış yaptığını biliyorum ama bu, bakım yapılamaz bir keşmekeş üretilecek kadar kandığım anlamına gelmiyor. Ajanlar raydan her çıktığında frontend becerilerim gerçekten çok işe yarıyor
  • “Frontend; anlamlı HTML, CSS, tarayıcı farkları, erişilebilirlik, aşamalı iyileştirme, ağ performansı, arayüz tasarımı, kullanıcı testi vb. bilmeyi gerektiren son derece uzmanlaşmış bir beceriydi” sözü, önceki nesil frontend geliştiricilere, yani C/C++ geliştiricilerine, epey komik gelecektir
    Web, giriş engelini ciddi biçimde düşüren ve beceriyi vasıfsızlaştıran bir şey olarak görülüyordu. Assembly programcıları da muhtemelen C/C++ geliştiricileri hakkında benzer düşünüyordu

    • Her katman kendisinin en önemli, en uzmanlaşmış ve en yüksek beceri gerektiren katman olduğunu düşünür
      Ama bütün katmanlar yanılıyor. Çünkü her katman, altındaki katmanın soyutlamaları üzerine kuruludur. Fizik ve matematiğe kadar indiğinizde, küme kuramcılarının bile bazı aksiyomları varsaydığını görürsünüz. Mantıkçıların ne yaptığıysa kimsenin bildiği bir şey değil
    • Bu alıntı yazıdan gelmiyor ve yazıyla da ilgili değil; neler olduğunu gerçekten anlamıyorum
  • “Yeni süreç daha düşük kaliteli sonuçlar üretiyor ve kimsenin buna aldırmıyor gibi görünmesi üzücü” türü mantık, AI’dan önce bu işlerin çoğunun kaliteye adanmış usta zanaatkârlar tarafından yapıldığı varsayımına dayanıyor gibi
    Bu sektörde gerçekten çalışmış ve dürüst olan herkes bilir ki gerçek öyle değildi. Çok fazla ortalamanın altı iş vardı
    Ayrıca “kalite”yi nasıl tanımladığınıza bağlı olarak, AI çıktısının daha düşük kaliteli olduğundan da emin olmak zor. AI, rahatsız edici bir tekdüzelik üretebilir ama aynı zamanda modelin öğrendiği teamüller, sevseniz de sevmeseniz de çoğu son kullanıcı için “çalıştığı” için oldukça işe yarar sonuçlar da ortaya koyabiliyor

    • Bu daha çok “duvara bir tuğla daha koymak” gibi
      Zaten asgari gereksinimleri karşılayıp bunu başarı ilan etme yönünde büyük bir baskı vardı. Şimdi o baskı dayanılmaz hâle gelmiş gibi
    • AI’dan önce kaliteye adanmış usta zanaatkârlar olduğu varsayımı konusunda, kariyeri boyunca birkaç kez şans eseri böyle dönemler yaşamış insanlar da var
      Yine de bunun AI’dan önce zaten ortadan kaybolduğu konusunda hemfikirim
    • Kalite çıtası korkunç derecede düşük görünüyor
    • Evet. jQuery ve Bootstrap öncesi web tam bir dağınıklıktı ve kod yazması da keyifli değildi
      Düşük kaliteden söz edeceksek, aslında o dönem daha yaygındı
  • Son zamanlarda ben de benzer şeyler düşündüm
    En az 10 yıldır neredeyse hiç frontend geliştirme yapmadım, ama 2000’lerin sonlarında bir anda herkesin web GUI’lerini elle yapmak yerine framework kullanmaya başladığı ve hâlâ HTML/CSS/JS ile veritabanı sorgularını elle yazanların alay konusu olduğu dönemi hatırlayacak yaştayım. İş ilanları da bir anda PHP/HTML/CSS/SQL/JS yerine Ruby on Rails, Django, Spring, GWT, daha sonra da Angular istemeye başlamıştı
    Bugüne tuhaf derecede tanıdık geliyor. Derin bilgi olmadan bile birkaç dakika içinde çalışan bir web uygulaması yapabiliyordunuz ve bu büyü gibi geliyordu. Sonra belgeleri şöyle bir tarayıp aramalarla framework içinde özelleştirme yaparken bir noktada tıkanıyordunuz. Çünkü içeride işlerin nasıl yürüdüğünü hiç bilmiyordunuz. Vibe coding web uygulamaları gibi, öğleden sonra alelacele birleştirilmiş standart framework web uygulamaları da uzaktan bakınca hemen tanınırdı ama yöneticileri fazlasıyla etkilerdi
    İlginç olan, geliştiricilerin sık kullandıkları en ileri model hakkında konuşma biçimlerinin, 15-20 yıl önce GUI geliştiricilerinin sevdikleri web framework’leri hakkında konuşma biçimine benzemesi. Aracı kişileştiriyor, hatta onunla özdeşleşiyorlar; X sürümünde olan şeyin X.1’de bozulmasına hayıflanıyorlar; “artık 10 kat hızlı geliştiriyorum”, “XYZ’yi yine elle yazarım” gibi laflar tekrar edip duruyor

    • Öte yandan sonraki framework kullanımı standartlaşma için iyi bir girişimdi de
      Kimsenin elleyemediği şirket içi bir GUI’nin avantaj sayılması da doğru değil
      Kişisel olarak Nuxt/Next gibi fazla büyük “hissettiren” şeyleri sevmem ama Vue’yu seviyorum. Yine de artık JavaScript’i büyük ölçüde ortadan kaldırmak istediğim için server-side template’lerle birlikte HTMX ya da Alpine tarzı çözümlere yönelmeye çalışıyorum
      Bana göre kullanılan teknoloji ne kadar azsa o kadar iyi. Eskiden daha tek satır özel kod eklemeden web uygulamasının içine her türlü gereksiz şeyin dolduğu zamanlar da vardı
    • Zaten 2000’lerin başında bile web geliştiricileri her şeyi elle kodlamaktan bıkmıştı ve framework ya da CMS gibi otomasyonlar arıyordu
      2004’te de dizin ağacına txt koyup PHP’nin bunları satır sonları yerine etiketler ekleyerek HTML’e gömdüğü çok temel bir yaklaşımla site yaptığım olmuştu. O zamanın alternatifi ağır içerik yönetim sistemleriydi
      İş yerinde lead developer’ların yaptığı iki korkunç PHP framework’ünden geçip Django’ya geldiğim için, Django gibi framework’ler daha kademeli bir geçişti ve çok daha keyifliydi
      Tabii işi daha da ileri götürüp nesnelere sürüm kontrolü eklemek gibi şeylere kalkınca aşırı çetrefilli hale geliyor, çalışacağı da garanti olmuyor ve düzeltmenin yolu da kalmıyordu
      Yine de tavrın kendisi bugüne benziyor
  • Biz yazılım sektöründeyiz. Bu sektörün özü, son derece tekrarlı işleri otomatikleştirmektir
    Frontend projeleri çok tekrarlıdır ve artık bunu AI yapıyor. Harika bir şey; daha ilginç şeyler inşa etmek için epey zaman açıyor
    Artık pek de alakalı olmayan bir becerinin değersizleşmesi, bilgisayarın icadından beri bu sektörde olan bir şey. Çünkü sorun AI ile ya da başka bir yolla çözülmüştür
    Devam edip yeni teknolojiler öğrenmek gerekir. Aslında AI’yi etkili kullanmak da bazı insanların zorlandığı bir beceri. Hâlâ hiçbir şey kendiliğinden ortaya çıkmıyor. Doğru prompt’u verirseniz yapabiliyor ama gerçekten doğru prompt’u mu veriyorsunuz? Araç gerçekten istediğinizi mi yapıyor? Bunu nasıl biliyorsunuz? Kontrol ettiniz mi? Ben de AI’ye prompt vermek için muazzam zaman harcıyorum; kesinlikle daha iyiye gidiyorum ama hâlâ neredeyse tam zamanlı iş gibi
    10 yıl kadar sonra dönüp bunun yazılım üretmenin son derece verimsiz bir yolu olduğunu düşüneceğiz. Araçlar daha iyi olacak ve AI daha özerk hale gelecek. Bütün gün aynı prompt’ları tekrar etmeye zaman harcıyorsanız, birinin ya da bir şeyin bunu da otomatikleştirmesi gerekir

    • Yazılımın amacı, insan iradesini makinelerin iletişim kurabileceği bir duruma kodlamaktır
      Buradaki şikâyet, bu otomasyonun istenmeyen şeyleri kodlama riski taşımasıdır
    • Frontend’den vazgeçmek yerine, AI’nin getirdiği yeni verimlilik frontend ve backend’i daha da ileri taşımak için kaynak açmalı
      Dünyada, şu anda üretebildiğimizden çok daha fazla yazılıma ihtiyaç var
    • “Frontend projeleri çok tekrarlıdır” sözüyle ne kastedildiğini gerçekten anlamıyorum
      Nereden itiraz etmeye başlayacağımı bilemediğim kadar kötü bir görüş. Tekrarlı olan şey, her UI’da buton bulunması mı yani?
      İnsanlar buna gerçekten inanıyorsa, UX’in neden 90’lardan beri kötü olup sonrasında daha da kötüleştiğini anlamak kolaylaşıyor
    • İnşa edilecek o kadar da çok “ilginç şey” olmadığını öğrenince şaşırabilirsiniz
  • AI ile kodlama, ürün prototipleri yapmak için çok faydalı ama aynı zamanda uzaktan bakınca bile AI tarafından yapıldığı belli olan ürünler de ortaya çıkarıyor
    Az önce de bir startup uygulamasını tanıttı ve uygulamada tam bir vibe coding UI havası vardı
    Aldıkları geri bildirim soğuktu ama yerindeydi: “Oldukça iyi sayılır ama AI ile yapıldığı çok belli; öyleyse bunu isteyen başka biri de AI ile çok hızlı yapabilir, dolayısıyla satmaya çalıştığınız şeyin pek değeri yok.”

    • Keşke bu daha sık olsa. Hem LLM’in yaptığı UI’lara hem de bunları yeterli bulan insanlara katlanmak zor
    • Komik olan, temel bir design system ve CSS kurduğunuz anda AI’nin ürettiği frontend kodunun aslında oldukça doğal biçimde yerine oturması
      Ama çoğu kişi buna yetecek en temel özeni bile göstermiyor
      Yuvarlatılmış köşeler hâlâ hiç bitmeyen bir moda ve zaten iyi tanımlanmamış ne varsa sanki hepsi bu şekle bulaşıyor
    • Bu gerçek bir olaydan çok zihinde kurulmuş bir fantezi gibi geliyor
      Yetkin bir yatırımcı böyle anlamsız bir geri bildirim vermez. İyiyse iyidir; AI ile yapılıp yapılmamasının ne önemi var? Aynı kalitede bir ürün olsaydı da vibe coding kokmasa kabul mü edilecekti? Bu, ancak AI’ye ideolojik olarak karşı olanların önemseyeceği bir şey
  • Bazen 2000’lerin başında AJAX ya da DOM manipülasyonu olmadan HTML ile karmaşık kullanıcı arayüzleri oluşturulan tekniklerin, piramit inşa etme teknikleri gibi fiilen kaybolduğunu hissediyorum
    Genç full-stack geliştiricilerde bir miktar “vasıfsızlaştırma” var; örneğin form doğrulaması yapmak için JavaScript gerektiğini düşünen çok kişi bulunuyor
    AJAX kullanıp DOM’u manipüle etmeye başladığınız anda, asenkron iletişimin karmaşıklığı kaçınılmaz olarak React’e benzer ölçekte bir şeye dönüşebiliyor. document.title="A new title" gibi yazabilseniz ve bir şey çekmeniz gerekmese bile, frontend’i sadece “sunucudan veri gelince UI’ı güncellemek” olarak görseniz dahi, karmaşık uygulamalarda UI’ın birden çok bölümünü güncellemeniz gerekir ve bir noktada iletişim ya da durum yönetimi veri yolu gibi bir şey kurarsınız. Farklı şekilde yapılabilir miydi? Elbette evet
    React ekosisteminde bir sorun varsa, bu başka soyutlamaların üstüne bir soyutlama kurması değil, bu soyutlamanın sızdırmasıdır. Çok basit bir şey yapıyor ve görünüşünü önemsemiyorsanız, CSS’yi anlamadan da Bootstrap ya da MUI kullanabilirsiniz. Ama müşteriye sunulacak profesyonel düzeyde bir iş yapmak istiyorsanız, HTML, CSS, JS ve projede kullanılan tüm framework’leri anlamanız gerekir

    • Özellikle HN’de React’in, genel olarak interaktif web’e yönelik daha geniş hoşnutsuzluğun yerine geçen dört harfli bir küfür gibi kullanıldığını sık sık hissediyorum
      React’i eleştirenlerin çoğu, React’in hangi sorunu çözdüğünü gerçekten anlamıyor. Yeterince karmaşık ama React’e dayanmayan bir web uygulamasının kaynak kodunu gösterirseniz, içinde elle yapılmış bir React benzeri bulabilirsiniz
  • NextJS’in sunucu tarafı render, lazy loading vb. özelliklerini kullanan bir frontend uygulamasını işletmenin, sadece HTML, JS ve CSS kullanılan dönemden daha “kolay” olduğuna katılmıyorum
    Karmaşıklık düzeyi ve kullanıcı beklentileri tamamen farklı bir yerde
    Üstelik yetkin mühendis sayısı yaklaşık 1000 kat arttı ve küresel pazarla rekabet etmek gerekiyor. 2000’lerin başında rekabet neredeyse yoktu. İşçilerin becerileri genelde piyasanın talep ettiği seviye ile gevşek bir korelasyona sahip olur, ama bugün durum son derece rekabetçi