2 puan yazan GN⁺ 2025-12-08 | 2 yorum | WhatsApp'ta paylaş
  • Perl'in düşüşünün nedeni, teknik bir kısıtlama değil muhafazakâr ve kapalı bir geliştirme kültürü olduğu yönündeki bir analizdir
  • Erken dönem UNIX sistem yöneticisi kültüründen kaynaklanan dışlayıcı tutum ve ‘uzman merkezli’ bir gurur, dilin gelişimini engelledi
  • Perl 6'nın ayrışması teknik bir başarısızlıktan çok, topluluk içi çatışma ve muhafazakârlığın açığa çıktığı bir olay olarak değerlendirildi
  • Aynı dönemde Ruby on Rails, PHP ve Python, daha açık ve erişilebilir bir kültürle büyüyerek Perl'in yerini aldı
  • Perl hâlâ POSIX ortamlarının temel betik dili olarak varlığını sürdürüyor, ancak ana akım geliştirme dili olarak etkisi azalmış durumda

Perl'in kültürel kökenleri ve sınırlamaları

  • Perl, UNIX sistem yöneticisi kültüründen doğdu; ‘RTFM’, ‘luser’ gibi iç şakalar ve kapalı normlar hâkimdi
    • Bu kültür, bilginin tekelleştirilmesi ve giriş engellerinin korunmasını bir erdem sayıyor, zorluğun doğrudan yetkinliğin simgesi olarak görülmesine yol açıyordu
    • Sonuç olarak yeni kullanıcılar veya değişime karşı güçlü bir direnç sergileyen kolektif bir yapı oluştu
  • Bu tutum, **‘kuşatılmış kale kültürü’**ne benzetildi
    • Topluluk üyeleri teknik karmaşıklıklarını bir gurur konusu yaparken, dışarıdan gelen sadeleştirme çabalarını görmezden geldi
    • Bu da ‘yalnızca yetkin olanın girebileceği’ bir kast benzeri yapıya dönüştü

Perl topluluğunun yapısı ve Perl 6'nın ayrışması

  • Perl, TIMTOWTDI(There Is More Than One Way To Do It) ilkesini öne çıkararak esnekliği vurguladı
    • Ancak bu ilke, dildeki değişime karşı muhafazakâr tavrı güçlendirdi; çekirdek dil sabit kaldı ve yenilikler CPAN dışına itildi
    • CPAN odaklı genişleme modeli bağımlılık karmaşasına (dependency hell) neden oldu
  • Perl 6'nın ortaya çıkışı, topluluk içi çatışmanın ve muhafazakârlığın sonucu ve bir bölünme sembolü olarak görüldü
    • Perl 5 pratiklik ve istikrarı, Perl 6 ise yenilik ve idealleri temsil ederek kültürel bir ikilik yarattı
    • Perl 6 geliştirme süreci 15 yıldan fazla gecikti ve ‘en waterfall odaklı açık kaynak projesi’ olarak tanımlandı
    • Bu dönemde Perl, yeni geliştiricilere karşı dostane değildi ve topluluk daha kapalı bir hal aldı

Rakip dillerin yükselişi

  • Ruby, Perl'e benzer sözdizimiyle birlikte ‘geliştirici mutluluğu’ ve nezaketi temel değer yaptı
    • Ruby on Rails, geliştirici dostu araçlar ve tutarlı bir yapı ile çarpıcı bir başarı yakaladı
    • Perl, birçok benzer çerçeve geliştirse de, karşılıklı uyumluluk ve erişim kolaylığının eksikliği nedeniyle yaygınlaşmada başarısız oldu
  • PHP, ‘kullanıcı merkezli bir dil’ olarak, kurulumu ve dağıtımı basit olmasından dolayı geniş kitlelere yayıldı
    • WordPress gibi blog platformlarının temeli oldu ve web geliştirici kuşağının girdi dili konumunu aldı
  • Python, akademik bir geçmişten doğup aşamalı evrim ve net tasarım ilkelerini korudu
    • Google'ın benimsenmesinden sonra istikrarlı bir büyüme gösterdi ve ‘batteries included’ felsefesiyle pratikliği sağlamlaştırdı

Perl'in bugünü ve mirası

  • Perl hâlâ birçok sistemde varsayılan olarak kurulu olan POSIX betik dili olarak varlığını sürdürüyor
    • Sayısız eski sistemde ve otomasyon betiğinde hâlâ kullanılıyor
    • Ancak yeni projelerin birincil seçimi olarak neredeyse kullanılmıyor
  • Perl'in bıraktığı temel yenilikler
    • Düzenli ifade entegrasyonu ve genişletilmiş sözdizimi
    • CPAN ile internet tabanlı paket dağıtımı ve imza doğrulaması
    • Otomatik test çerçevesi (TAP) ve CI kavramının yayılması
    • POSIX özelliklerinin entegrasyonu ile kabuk ile sistem programlaması arasındaki sınırın kaldırılması
    • POD belgeleme sistemi sayesinde dokümantasyon yeniliği

Sonuç: Kültürün yarattığı başarı ve düşüş

  • Perl, 1990'ların erken web döneminde iki kültürü (UNIX yöneticileri ve web geliştiricileri) birleştirerek patlayıcı bir büyüme yaşadı
  • Ancak muhafazakâr kültür ve kapalı topluluk değişime uyum sağlayamayıp ana akımdan düştü
  • Yine de Perl, modern yazılım geliştirme temellerinden biri olarak değerlendirilmektedir
  • Yazar, Perl'in ortadan kalkmayacağını ve POSIX var olduğu sürece Perl'in de var olacağını savunuyor
  • Bugün Rust, TypeScript gibi yeni diller, geçmişte Perl'in yaşadığı kültürel geçiş yolunu yeniden izliyor

2 yorum

 
kh0324 2025-12-10

Bir yazıda Perl ile Ruby’nin sözdiziminin benzer olduğundan bahsediliyorsa, o yazının özgünlüğünden şüphe duyarım. Bu, klasik dönem Perl eleştiri yazılarından alıntı olarak kullanılan bir ifade; gerçek kullanımda ise bunun böyle olduğunu hiç hissetmedim. Sanki biraz içeriği doldurmak için eski yazıları kopyalayıp eklemişler ya da geri kalanını yapay zekaya bırakmışlar da, eski legacy Perl eleştiri yazıları eleştirel süzgeçten geçirilmeden kabul görmüş gibi geliyor bana.

 
GN⁺ 2025-12-08
Hacker News görüşü
  • Perl topluluğundaki “keşişler ve büyücüler” gibi kurgusal hava bana hep ağır gelirdi
    Tek satırlık kodlarla zeki görünmeye çalışma kültürü de pek hoşuma gitmiyordu; Python ise çok daha ciddi ve “normal” hissettiriyordu

    • Bu aralar Perl öğreniyorum ve gerçekten büyücüler tarafından yapılmış bir dil gibi geliyor
      Sözdizimi sanki bilerek karmaşık tasarlanmış gibi ve belgeler olmadan anlamanın imkânsız olduğu pek çok kısım var
      Elbette o dönemde kodun kısalığı önemliydi ama 2025'te bu fazlasıyla kullanıcı düşmanı
      Sanki D&D'de birinin anlık fikri sonsuza kadar kural kitabına kazınmış gibi
    • Perl, ifade gücünün derinliğine yatırım yapan bir dildi ve bunun sonucu olarak aynı şeyi 1000 farklı şekilde yazmak mümkün oldu
      Buna karşılık Python, “tek bir açık yöntem”i vurgulayarak temiz kodu teşvik etti
      Perl de güzel yazılabiliyordu ama bunu geliştiricinin bilinçli olarak seçmesi gerekiyordu
      Python ise girintiyi zorunlu kıldığı için yeni başlayanların bile belli bir okunabilirlik düzeyini yakalamasını sağladı
    • Perl topluluğunun dünyanın ilk modül deposu olan CPAN'i kurduğunu kabul ediyorum
      Ama dilin kendisi fazla ifade gücüne sahip olduğu için paylaşılan kod açısından bu bazen ters etki yarattı
      Metin işleme konusunda Perl hâlâ en iyisi ama ekip çalışmasına uygun bir dil olmakta zorlanıyordu
    • Larry Wall ile bir röportaj dinledim; tam bir eğlenerek deney yapan eksantrik geliştirici gibiydi
      Topluluğun abartılı imajının aksine, insani yönü etkileyiciydi
    • Python da bir dönem boşluk kuralları ve tip sistemi tartışmaları yüzünden gürültülüydü
      Perl'in oyuncu tavrı ise bana daha dürüst ve daha az kasvetli geldi
      Ama sonunda ana akım olan Python oldu, Perl ise yavaş yavaş unutuldu
  • Bence Perl topluluğunun ukala kültürü dilin çöküşünü hızlandırdı
    Bana zamanında Linux öğreten bir arkadaşım Perl fanatiğiydi; bilmeyene tepeden bakan RTFM tavrı yüzünden sonunda arkadaşlığımız bitti

  • Perl topluluğuyla neredeyse hiç temasım olmadı; sadece Google'layarak çözdüğümüz dönemde kullandım
    @, % gibi semboller çok fazlaydı ve bu yüzden Ruby ya da Python'dan daha az erişilebilir geliyordu
    Ruby en baştan nesne yönelimli bir dil olarak tasarlandığı için çok daha doğaldı
    Python'un optional type hinting özelliği doğru olmadığında ise sadece kafa karıştırıyordu

    • Zaten optional type hinting'in amacı tam olarak bu
      Kesin olmak zorundaysa bu artık zorunlu tip sistemi olur, isteğe bağlı ipucu değil
  • 90'larda IRC'de biri bana RTFM demişti ama sonradan bunun şaka ve yeni başlayanları karşılama etkinliği olduğunu anladım
    Gerçekten Perl büyücüleriyle kahve içip mentorluk aldım ve bu deneyim programlama hayatımda bir dönüm noktası oldu
    O zaman duyduğum sözü hâlâ hatırlıyorum — “Perl it forward!”

    • Bunun gerçek mi yoksa şaka mı olduğunu anlayamadım
    • Şu Software Local 2142 hikâyesini daha fazla duymak isterim
  • “Zorlanmanın sonunda dopamin alınca bunu iyi bir deneyim sanma” durumu bilgisayar sektörünün geneline yayılmış durumda

    • Aslında bu tüm geliştirme işinin özü gibi
      Her zaman kafa karıştırıcı ve sürekli “Bunu neden böyle yapmışlar?” sorusuyla dolu
  • Dürüst olmak gerekirse Perl, sadece başka diller daha iyi olduğu için yok oldu

    • Perl, deneysel bir dil olarak harikaydı ama pratikliği düşüktü
      Nasıl prototipleme kartıyla ürün yapılamazsa, Perl de deneylerin ürünüydü
    • “do what I mean” felsefesinin altında çok fazla gizli karmaşıklık vardı
      Örneğin @array bir skaler olarak alındığında sadece uzunluğunu döndürmesi gibi bağlama bağımlı davranışlar vardı
    • Perl'in kötü olduğuna dair yargının basit bir moda söz gibi yayıldığını düşünüyorum
      Toyota vs Honda gibi, gerçekte bu daha çok zevk farkıydı
    • Perl topluluğunun bir parçasıydım ama beni Python'a geçiren şey Django oldu
    • Steve Yegge'nin “Ancient Languages: Perl” yazısı bunu iyi açıklıyor
      Perl'in referans sözdizimi, zahmetli OO yapısı, use strict; / use warnings; gibi tekrar eden ayarları yorucuydu
      Rails çok daha kısa ve güvenliydi, ayrıca dönemin zamanlaması da kusursuzdu
  • Perl benim ilk göz ağrısı dillerimden biriydi ama 2012'de tamamen Python'a geçtim
    Bugün bile legacy kod içinde Perl betikleri görünce “iyi ki geçmişim” diye rahatlıyorum
    Perl kodunda neredeyse hiç yorum olmazdı ve düzenli ifade aşırı kullanımı yüzünden okunabilirlik berbattı
    Artık bu tür kalıpları Python'un nesne yönelimli yaklaşımıyla çözüyorum

  • Perl'i çok kullandım ama sonunda CPAN'in kalite sorunları yüzünden Python'a geçtim
    CPAN modülleri sık sık bozuluyordu ve çoğu zaman kendin düzeltip kullanman gerekiyordu

    • Ben ise Perl'in betik çalıştırma hızı yavaş olduğu için Python'a geçtim
      90'larda ve 2000'lerin başında bu fark epey büyüktü
  • Perl'in ölmesinin nedeni, diğer dillerin CPAN benzeri ekosistemler kurması
    ve Perl'in esnek sözdiziminin ekip halinde çalışmaya uygun olmamasıydı

    • Ben Ruby'ye geçtim; MRI genişletilebilirliği devrim niteliğindeydi
      SWIG ya da karmaşık tip sihirleri olmadan modülleri kolayca dağıtabiliyordunuz
      Ayrıca Perl 6'nın bitmek bilmeyen geliştirme gecikmeleri son darbeyi vurdu
    • Perl'in serbest evrim kültürü çekiciydi ama
      işbirlikçi ortamlarda bilişsel yük katlanarak artıyordu
      Python ise bu tartışmayı PEP sistemi ile dışsallaştırarak çok daha verimli davrandı
    • npm hariç tutulursa bugün bile CPAN kadar güçlü bir depo neredeyse yok