21 puan yazan GN⁺ 2025-07-25 | 5 yorum | WhatsApp'ta paylaş
  • Yapay zeka kodlama araçlarının gelişmesiyle, geliştiricilerin yeni bir dile hızla giriş yapabildiği bir ortam oluşuyor
  • 10 yıl boyunca yalnızca Ruby kullanan bir geliştirici olmasına rağmen, bu yıl yapay zeka kodlama ajanlarıyla (ör. Cursor, Claude Code) iş birliği sayesinde C, C++, Rust gibi sistem dillerine fiilen katkı sunabilir hale geldi
  • Claude Code ve Cursor gibi araçlar özellikle dil sözdizimi, deyimsel kullanım kalıpları ve genel teori konularında büyük destek sağlıyor
  • Yapay zeka, bir kod üreticisinden çok "dil uzmanı bir pair engineer" olarak mevcut deneyimle birleşip gerçek zamanlı soru-cevap, bağlam açıklaması ve örnek analizi üzerinden öğrenme verimini en üst düzeye çıkarıyor
  • Yapay zeka, proje bazlı bağlamı ya da derin iç yapıları tamamen bilmese de dil sözdizimi, tipik kalıplar, standart kütüphaneler gibi konularda anında öneri veriyor; böylece 100 saatten fazla ön çalışma olmadan da gerçek katkı mümkün oluyor
  • Yapay zeka araçlarının kullanımıyla programlama dili uzmanlığına dair geleneksel algı hızla değişiyor ve giderek daha fazla geliştirici için birden çok dilde üretken çalışılabilen bir ortam açılıyor

10 yıllık Ruby geliştiricisinden çok dilli çalışmaya geçiş

  • Yazar, 2014~2024 arasında Ruby ve Rails ekosistemine odaklı bir geliştirici olarak çalıştı
    • Bu süreçte Ruby ekosisteminde Rails, IRB, RDoc, debug gem gibi temel araçların geliştirilmesi ve bakımı konusunda deneyim biriktirdi
  • 2025'ten itibaren Sorbet(C++), RBS parser(C), ZJIT(Rust) gibi Ruby dışındaki sistem katmanı projelerine katkı sunuyor
  • Bu dönüşümü mümkün kılan temel etkenlerden biri yapay zeka kodlama ajanlarının benimsenmesi (Cursor, Claude Code) oldu
  • Shopify içinde de bu yapay zeka araçlarının aktif kullanımı teşvik ediliyor

Fırsatların kusursuz biçimde bir araya gelmesi

  • Bu sadece yapay zeka sayesinde olmadı; birkaç önemli koşul da aynı anda oluştu
    • Ruby DX ekibinin yol haritasındaki değişiklik, Sorbet için RBS desteğini gerekli kıldı → bu da kaçınılmaz olarak C/C++ deneyimi gerektiriyordu
    • Shopify'ın Ruby & Rails altyapı ekibindeki üyeler know-how paylaşımı yaptı ve aktif bir mentorluk ortamı sundu
  • Geçmişte de güçlü mentorlar ve gerçek proje fırsatları vardı, ancak yapay zeka öğrenme bariyerini ve öğrenme eğrisini çarpıcı biçimde kısalttı
Reklam

Sistem programlamanın karmaşıklığı

  • ZJIT (yeni bir JIT Ruby derleyicisi) projesi örneği:
    • Aynı anda çok çeşitli bilgi ve beceriler gerekiyor
    • Rust(ana dil), C(Ruby'nin çekirdek uygulama dili), JIT/derleyici teorisi, ZJIT'e özgü yapı ve tasarım, Ruby'nin iç çalışma mantığı, Ruby build sistemi (autoconf, Makefile vb.)
    • Tek bir Pull Request bile aynı anda 2~4 alanı kapsayabiliyor
  • Claude Code'un verimliliği
    • Sözdizimi, genel derleyici teorisi, Rust/C/C++ gibi dil grameri ve ifade kalıpları konusunda yüksek doğruluk gösteriyor
    • Projeye özgü bağlam, Ruby'nin iç uygulaması ve karmaşık build sistemi desteğinde ise bir miktar sınırlı
    • Buna rağmen öğrenme sürecinin giriş bariyeri yarıdan fazla azalıyor
  • Yapay zeka, dil sözdizimi/teori/örüntü öğrenimini anında destekliyor; projeye özgü bağlam ise insanların payına düşüyor

Yapay zekayla pair programming

  • Yapay zekayı basit bir kod üreticisi değil, tamamlayıcı bir partner olarak görmeye başladı
  • Gerçek iş birliği biçimi
    • Geliştirici, görevin gereksinimlerini ve bağlamı aktarır
    • Yapay zeka, kalıpları bulur ve dil uzmanı rolünü üstlenir
    • Geliştirici, tasarım gerekçelerini sorar
    • Yapay zeka kodu değiştirir ya da teoriyi araştırıp sonucu sunar
    • Etkileşimli öğrenme sayesinde hem dilin kendisi hem de pratik kullanım biçimi aynı anda öğrenilir
  • Örnek: Ruby bytecode komutlarını profilleme görevinde, yapay zekadan geçmiş PR'ları araması ve satır satır açıklama yapması istenebilir
    • "Aptalca sorular" bile rahatça sorulabilir ("JIT derleyicisinin neden profillemeye ihtiyacı var?" gibi)
    • Alışılmadık sözdizimiyle ilgili anında geri bildirim alınabilir
  • Başarısız örnekler de var
    • Proje yönü yanlışsa sonunda yine ekip arkadaşlarından mentorlukla düzeltme gerekiyor
    • Sonuçta insan uzmanların rotayı düzeltme becerisi hâlâ vazgeçilmez
    Reklam

Programlama dili bariyerlerinin çözülmesi

  • Artık yeni bir C projesine katkı sunmak için 100 saatlik ön öğrenmenin şart olduğu bir çağda değiliz
    • C, Rust gibi "giriş bariyeri yüksek dillerde" bile yapay zekanın yardımıyla hemen katkı verilebiliyor
  • Yapay zeka, acemi hatalarını (sözdizimi hatası, tip hatası, araç kullanımının yanlış anlaşılması vb.) hızla yakalayarak doğrudan anlamlı katkı sunmayı mümkün kılıyor
  • Derin uzmanlık hâlâ önemli, ancak çoklu dil üretkenliğine daha fazla geliştirici ulaşabilir hale geliyor
  • Grameri/standart fonksiyonları/kalıpları yapay zekaya bırakıp geliştiricinin gerçek problem çözmeye odaklanması mümkün oluyor
  • Benim gibi yalnızca Ruby odaklı bir geliştiricinin 1 yıl içinde çok dilli bir geliştiriciye dönüşmesi çığır açıcı bir trend
    • "Tek dil kullanan geliştirici"den "çok dilli üretici"ye geçiş artık somut bir gerçek
    • Bu, ileride dil bazlı uzmanlık kavramının kendisinin değişeceği akımın başlangıcı olabilir

Sonuç

  • Yapay zeka kodlama ajanları programlama dillerine giriş bariyerini keskin biçimde düşürüyor ve
    geliştiricilerin birden fazla dilde anında üretken biçimde çalışabildiği yeni bir çağın kapısını aralıyor

5 yorum

 
tested 2025-07-25

Kod üretimi bir yana, peki kod denetimini ya da incelemesini kim yapacak...

 
3ae3ae 2025-07-27

Yeterince hakim olmadığınız bir dili yazamasanız bile çoğu zaman kabaca okuyabiliyorsunuz; bu yüzden eskisine kıyasla zaman kazandırdığı doğru gibi görünüyor.

 
girr311 2025-07-25

Daha önce kullanmadığım teknolojiler ya da deneyimlemediğim alanlarda, eskisine kıyasla gerçekten çok daha hızlı ilerleyebildiğimizi düşünüyorum.

 
GN⁺ 2025-07-25
Hacker News görüşleri
  • Yapay zekanın öğrenme eğrisini mi değiştirdiğini, yoksa sadece deneyimi daha rahat hale mi getirdiğini merak ediyorum
    10 yıl boyunca sadece Ruby kullanıp 1 yıl içinde çok dilli bir geliştirici haline gelmeyi devrimsel bulan birinin deneyimi için, ben bunu daha çok “10 yıl boyunca denememiş olmak” diye düşünüyorum
    İlk programlama dilini öğrenmekle, zaten birkaç yıllık deneyim biriktirmişken yeni bir dil öğrenmek tamamen farklı deneyimler

    • Ben de tamamen aynı fikirdeyim
      10 yıl boyunca tek bir dil kullanan geliştiriciyle empati kurmak zor
      İlk zamanlarda seçtiğin dile dair kimlik duygusu güçlüydü ama gerçekten deneyimli geliştiricilerden “dil sadece bir araçtır” fikrini öğrendim
      Birden fazla dille karşılaşınca bakış açın inanılmaz genişliyor ve kelimelerle anlatması zor bazı farkındalıklar oluşuyor
      Böyle bir deneyim yaşamış olmak gerçekten mutluluk verici

    • “Yapay zeka olmasa da 1 yılda birden fazla dil öğrenmek zaten mümkündü” görüşünün belli ölçüde doğru olduğunu düşünüyorum
      Benim deneyimimde, o4 ile küçük Python projeleri yaparken ilginç uç durumlarla karşılaştım ve yapay zeka olmasa bunlar yüzünden birçok iş yarıda kalırdı
      Örneğin unraid'in xml vm işleme biçimi ya da dockers tarafında çıkan problemler gibi şeyler; bunları tek başına kazmak bazen bir günü alıyor
      Artık yapay zeka bu konularda yol gösterdiği için bunları çok daha akıcı şekilde geçebiliyorum
      Bu yönü biraz ürkütücü ama gerçekten iyi çalışıyor
      Bu arada benim ilk programlama dilim eski BASIC'ti

  • Yapay zeka ana akım dilleri daha da popüler hale getiriyor
    Yapay zekanın en az hata yaptığı diller genelde büyük toplulukları ve devasa veri setleri olan Python, JS, Ruby gibi diller
    Bu yüzden niş diller için erişilebilirlik artışı o kadar büyük olmuyor
    Çünkü çoğu programcı niş dillerde küçük hataları yakalayacak kadar yetkin değil
    Makine öğrenmesinden çıkan ders gibi, sonunda eğitim verisi bol olan taraf avantajlı oluyor

    • Yapay zeka örüntü eşleştirmede güçlü
      Problemi mevcut örüntülere uydurabilirsen hemen iyi kod örnekleri verebiliyor
      Ama problem ne kadar karmaşık ya da sıra dışıysa, yapay zeka o kadar az faydalı oluyor
      İnsanlar daha soyut ve dinamik kavramları esnek biçimde ele alabiliyor

    • Niş dilleri kullananlar genelde popülerlikten çok başka değerlere önem veriyorlar (ör. verimlilik, para, öğrenme vb.)
      Eğer bir dilin popülerleşmesi isteniyorsa, uzmanlar deyimlere uygun iyi örnek kodlar üretip yapay zekanın bunların çeşitli varyasyonlarını oluşturmasını sağlarsa giriş bariyeri hızla düşebilir
      Küçük ölçekli kodlama kolaylaştıkça insanlar dilin kendisine daha fazla ilgi duymaya başlayabilir

    • LLM'ler niş dillerde daha sık saçmalama eğiliminde
      Ben bir Scala geliştiricisiyim ve yapay zekanın ne kadar işe yaradığına dair tartışmaların büyük kısmının kullanılan dile bağlı olduğunu düşünüyorum
      JS gibi bir dilde belki daha faydalı olabilir

    • Yeni bir dil ya da framework çıktığında yapay zekanın doğru destek verememesi yüzünden insanların değişimden kaçınmasından endişe ediyorum
      İnsanlar getirisinden çok zahmetini hissedebilir
      Her yeni sürümle birlikte yapay zekaya uygun MCP belgeleri ya da ek kaynaklar neredeyse zorunlu hale geliyor

    • Benim açımdan claude ve Elm ile çok olumlu bir deneyim oldu
      Statik tip sistemi sayesinde doğruluk yüksekti ve çok yardımcı oldu
      Tabii bazen garip cevaplar da geliyor ama sanırım bunu herkes yaşıyordur

  • Büyük diller arasında artık fiilen neredeyse hiç engel kalmadığını düşünüyorum
    Bugün uygulama geliştirmede yaygın kullanılan 10 dile bakınca, çoğunun C ya da ALGOL ailesinden geldiğini ve benzer sözdizimi, call-by-reference ile otomatik bellek yönetimi gibi ortak noktalara sahip olduğunu görüyorsun
    Profesyonel bir geliştirici bu diller arasında çok zorlanmadan geçiş yapabilir
    Bellek yönetimini ilk kez öğrenmek biraz zor olabilir ama tanıdık örüntüler, uyarılar ve linter'larla gayet idare edilir
    Gerçekten öğrenme eğrisi sert olan diller Rust, Ada SPARK, Lisp, Forth, ML gibi diller ve bunlar da ana akım değil

  • Yapay zekayı yardımcı bir programlama partneri olarak kullanıyorum
    Yapay zekanın “geniş ama sığ bilgisi” ile önce keşif yapıyor, sonra belirli bir alana derinlemesine gireceğim zaman destek alıyorum
    Yeni programlama dillerinden çok yeni kavramları ya da teknolojileri öğrenmekte aktif kullanıyorum (ör. webauthn backend'i, passkey entegrasyonu uygulaması)
    Yeni başlayan biri açısından da yapay zeka çok yardımcı oluyor
    Ancak yapay zekanın yanlış örnekler verdiği de oldu (ör. kullanımdan kalkmış bağımlılıklar); ama bu da sonuçta daha derin bir anlayış geliştirmeme yardımcı olduğu için iyi bir deneyimdi
    Yapay zekaya uygulamayı tamamen otomatik geliştirme işini bırakmak istemem
    Sık sık ufak hatalar yaptığı için mutlaka gözden geçirmek gerekiyor

  • Yakın zamanda yeni karşılaştığım bir Swift codebase'ini anlamakta yapay zeka çok yardımcı oldu
    Merak ettiğim şeyleri hızlıca çözüp öğrenme hızımı artırıyor
    Ama karmaşık bir projeye gerçekten katkı sunmak için hâlâ beceri ve deneyim şart
    Bildiğim dillerde bile birçok yanlış üretirken, bilmediğim bir dilde bunu gözden geçirmek daha da zor

    • Bilmediğin bir dilde yapay zekanın çıktısına nasıl güven duyulabildiğini anlamakta zorlanıyorum
      Her yeni dile dalışta çıktıyı incelemek istiyorsan, alışana kadar ciddi zaman harcaman gerekiyor
      Dil engelinin azaldığı söyleniyor ama pratikte WhatsApp'ın masaüstü uygulama yerine web uygulamasına geçmesi gibi örnekler de var; yani engeller tamamen ortadan kalkmış değil
  • Microsoft'un geçmişte .Net platformunu öne çıkarıp J#, Fortran.Net, Cobol# gibi farklı dillerle tek bir ekipte işbirliği hedeflediği denemeleri hatırlatıyor
    Bu yaklaşımla üstün #Intercal yeteneklerinin bile verimliliğini dört kat artırabileceğini pazarlıyorlardı

    • Keşke gerçekten buna inandığımız günlere geri dönebilsem
  • Yapay zeka nedeniyle programlama dillerinin güçlü bir Hindley Milner tip sistemi taşıyan yöne evrileceğini düşünüyorum
    Haskell öğrenmesi zor ama veri seti yeterince büyük olursa kodlama ajanları için kusursuz bir hedef olur
    Yüksek seviyeli, biçimsel olarak doğrulanabilir ve dil sunucusuyla yapay zekayı kolayca birleştirmeye uygun

    • Gerçekte ise tam tersi; Haskell sanki yapay zeka desteğinde dışarıda kalacakmış gibi görünüyor
      Fonksiyonel dilleri seviyorsan, doğal dil ile programlamanın neden çekici bulunduğunu düşünmek gerekiyor
      Doğal dil sonuçları muğlak biçimde ifade etmeye izin veriyor ve makine de o kısmı otomatik dolduruyor
      Gerçek yenilik için güçlü mantık sistemi + belirsizlik barındıran bir programlama yaklaşımı, örneğin MTL benzeri mantık temelli yapılar gerekebilir
      Ne yazık ki bu alandaki araştırmalar neredeyse durmuş durumda ve sinir ağları baskın

    • Haskell, LLM açısından derin dil özellikleri fazla olduğu için daha az uyumlu
      Sonuçta LLM'ler esas olarak metin örüntüleri ile çalışıyor
      Basit özellikler ve anlaşılır derleyici hataları sunan dilleri (ör. Go) yapay zeka daha iyi ele alıyor
      Ben şahsen tip çıkarımı güçlü olan dilleri seviyorum ama yapay zekanın bakış açısı farklı

    • LSP MCP aracı + LLM denedim ama biraz hayal kırıklığı yarattı
      LSP aslında insanlar için tasarlandığından yapay zekayla kusursuz bir uyum göstermiyor
      LLM'ler örüntü eşleştirmede iyi ve tip yapısı basitse neredeyse hiç tip hatası üretmiyorlar
      Karmaşık yapılarda ise LLM ya çözemiyor ya da kullanıcı ne olduğunu anlayamıyor

    • “Haskell ile büyük ölçekli biçimsel doğrulama örnekleri var mı?” diye soranlar da var; seL4, CompCert gibi örneklerin çoğu C ya da Coq+OCaml tabanlı

    • Bağımlı tipli dillerin (ör. Agda) kullanımı artabilir
      Ancak veri seti çok küçükse yapay zekanın bilgi transferi yapması zorlaşabilir

  • Yapay zekaya eşli programlama partneri gibi yaklaşmak iyi sonuç veriyor
    Kullanıcı öğrendikçe yapay zekanın rolü de değişiyor; başta temel açıklamalar ve küçük kod üretimi, sonrasında ise ileri seviye tartışma + daha büyük parçalar halinde kod üretimi ve kod incelemeye kayıyor
    Zamanla kişi kendi başına daha fazla hata yakalamaya başlıyor

  • Yapay zekayı sadece bir kod üreticisi değil, tamamlayıcı becerilere sahip bir partner olarak görürsen gerçekten faydalı oluyor
    Bilmediğin bir dildeyse, yapay zekanın sunduğu çözümü ince ince sorgulamak gerekiyor
    “Neden bunu böyle yapıyorsun?”, “Başka senaryolarda ne olur?” gibi somut sorular sormak öğrenme açısından gerçekten çok yardımcı

    • Soru sorunca yapay zeka düşüncelerimi doğruluyor ama bunu birkaç kez tekrarlayınca ona tamamen güvenmenin zorlaştığını hissediyorum

    • Bir de “yapay zekaya net sorular sormasını söyleme alışkanlığı” edinmek faydalı olabilir
      Böylece kendi anlayışındaki hata ya da mantık boşluklarını daha en başta fark edebilirsin

  • Gemini'nin kod üretme yeteneğini test etmek için bir bash betiği istedim ama hatalar vardı
    Neyse ki bash bildiğim için düzeltebildim ama eğer bilmediğim bir dil olsaydı bunun dil engelini ortadan kaldırdığını söylemek zor olurdu

    • Bunun daha çok bash'e özgü bir mesele olduğunu düşünüyorum
      Mesela Go ile benzer bir otomasyon işini LLM'e verdiğimde tek seferde düzgün çalışıyor

    • Bunu bash'ten çok Gemini'nin sorunu olarak görmek de doğru değil; yapay zeka modeli hakkında kesin bilgi olmadan sadece marka adına bakarak eleştirmek bana makul gelmiyor
      Gerçekten de “Gemini 2.5 Pro (Jan 2025), temperature 0.15” gibi bir ayarla harika bir idiomatic bash script üretiyor
      (örnek kod atlandı)
      Ama WSL2'de Windows Notepad ile düzenlenmiş dosyalarda satır sonu işleme problemi yaşadım; Gemini buna da nazikçe bir çözüm sundu
      İlginç olan şu ki, bash'te son satırda satır sonu karakteri yoksa düzgün işlenmemesi bash'in kendi kısıtı
      PowerShell'de ise neredeyse tek satırlık bir komutla aynı iş yapılabiliyor ve sonda satır sonu olmasa da sorun çıkmıyor
      Gemini'nin yardımıyla PowerShell tarafını da kısa kodla optimize edebildim

 
stadia 2025-07-25

https://ruby-news.kr/articles/…
Benim geliştirdiğim hizmetteki özet. Çevrilmiş bir metindi; benzer ama GeekNews biraz daha iyi düzenlenmiş ve okunması daha hoş.