Yapay zeka, frontend’in kayıp 10 yılını tekrar mı ettiriyor?
(mastrojs.github.io)- 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
Seçilmiş teknoloji başlıklarını almaya devam etmek ister misiniz?
Telegram kanalını takip edin. @GeekNewsTR
1 yorum
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
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
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
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 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
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ı
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
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
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ü
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
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
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
“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
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
Yine de bunun AI’dan önce zaten ortadan kaybolduğu konusunda hemfikirim
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
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ı
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
Buradaki şikâyet, bu otomasyonun istenmeyen şeyleri kodlama riski taşımasıdır
Dünyada, şu anda üretebildiğimizden çok daha fazla yazılıma ihtiyaç var
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
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.”
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
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 evetReact 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
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