PHP ölüyor mu ? Hangi dillere geçelim ?

Bayram EKER
4 min readApr 7, 2022

--

  • Önemli olan çorbayı kaşık ile içmektir.

Laravel ile ilgili yazılarım var orada da belirttiğim gibi geliştirici bir dili iyi kullanamıyor diye kullandığı dili kötülemesi önemli değildir, ayrıca dili anlamadan yazmak zaten mantıksızdır.

Öncelikle PHP dilini Python veya Java ile kıyaslamak yerine göre react, angular ve vue gibi modüllerle egale etmek mantıksızdır, çünkü yapacağımız her projede farklılık gösteren avantajlar veya dezavantajlar ortaya çıkacaktır. Örneğin bir photo editor projeniz var bunun için php kullanmak yerine react kullanarak kendi modülleriyle işlem yapmak daha mantıklıdır.

Ek olarak bir image processing yada image detect gibi proje yapmak istiyorsanız python OpenCv veya tensorflow.js kullanmak avantajlıdır.

Bill Gates, Elon Musk veya George Hotz’un da dediği gibi : herhangi bir Dille ilgili değil, doğru iş için doğru araçla ilgili.

PHP gerçekten de Web Geliştirme için harika ve olgun bir araçtır. Symfony , Laravel , CodeIgniter ve hatta Laminas ( eski Zend Framework ) gibi mükemmel çerçeveler var . Ayrıca, yalnızca PHP etrafında inşa edilmeyen, aynı zamanda Revolt , Open Swoole ve Roadrunner gibi, dilin başlangıcından bu yana sahip olduğu (ve hala sahip olduğu) bazı sorunları gideren tüm ekosistemler de vardır.

Her dil, rahatlık alanlarının dışında olduklarında sorun çıkarma eğilimlidir. PHP’nin kendisinin web sitesi yapmak için iyi bir dil olduğunu söyleyebilirsiniz ve bunu tartışmak vakit kaybıdır. Şimdi PHP’yi bir CLI’ye koyun ve artık o kadar harika değil. PHP’yi ağ oluşturma, çoklu iş parçacığı, ikili veri işleme ve HTTP İsteğinden uzak olan her şeyle ilgilenmek için kullanın ve sorunların ortaya çıktığını göreceksiniz. PHP bu senaryolarda çalışabilir , ancak daha az kullanışlı ve çok pürüzlü hale gelir .

Bu sorunlar yüzünden “PHP öldü” gibi açıklamalar yapmak çok saflık olur. Bu, bir Lamborghini’yi arazide mahvetmek gibi bir şey çünkü kayaların üzerinden 10 saniyede 0–100 mil hız yapamıyor ve Twitter’da bağırıyor. Bu çılgınca, ama aynı zamanda antivaxers olan insanlar var, o yüzden bu var.

PHP her şeyi yapmaz. Hiçbir şey yapmaz ?

2022'de bugün hala aktif olan bazı programlama dillerini araştırdıktan sonra, her şey için tek bir dil kullanma fikrini anlayamadım; bir çok firma için tek bir yığına sahip olmayı tercih etse bile sınırlamak imkansız.

Bunun en kötü bilinen örneği WebSockets’tir. PHP, WebSockets’i işleyebilir, ancak çok fazla görünmez ek yük olduğundan Node.js gibi diğer diller kadar performans gösteremez.

Diğer tarafta çimenler daha yeşil

Biraz proje bazlı düşünelim. Patron, akış başına 128 MB tüketmek zorunda kalmadan video akışı yapan bir araç gibi daha cerrahi bir şey istedi ve bu da sunucu faturalarını düşürecek.

The Four Horsemen of Apocalypse ‘ i düşündüğüm gibi ağ, bellek, dosya sistemleri ve hatta bir dereceye kadar veritabanlarına yoğun bir şekilde odaklanmanız gerektiğinde , o zaman yüksek seviyeli diller arka planda kalır. İlkel C’den, eskimeyen C++’dan geçerek, Rust ve Go gibi son zamanlarda halef olmak isteyenlere.

Bu araçlarla ilgili sorun, güvenilir bir şekilde yapabilecekleri işlerdir. Rust veya Go ile bir web sayfası yapmaya çalışmanın bir zararı yok, bunun için çerçeveler bile var, ancak diğer dillerin sunduğu kolaylıkların çok gerisinde olduklarını düşünmelisiniz. Bir F1 yarışını izlerken birinin bana söylediği gibi, “ sürücünün arabayı mühendislik harikası yapmamasının bir nedeni var, mühendisin arabayı kullanmamasının bir nedeni var ”.

Daha düşük seviyeli ve C++ ile karşılaştırılabilir görünen Rust, geçen her gün için itibar kazanan harika bir programlama dilidir ve muhtemelen atılımı, Linux Çekirdeği için kabul edilebilir hale geldiğinde olacaktır . Gelecekte Node.js ve PHP’nin C çekirdeklerini modern Rust ile değiştirip değiştirmeyeceğini kim bilebilir?

Go dili öte yandan, bir yardımcı pilot olarak oturuyor gibi görünüyor. Kendi Çöp Toplayıcısına sahip olduğu için bellek yönetimiyle ilgilenmez ve aşırı ek yük olmadan işbirlikçi çoklu iş parçacığı üzerinde çok fazla kolaylık sunar; bu, avantajlarından yararlanmak çok zor bir şeydir — tek iş parçacıklı yüksek seviyeli programlama dillerinin nedeni bu olabilir. herhangi bir geliştirici için çok çekici. Ancak yine de ölçeklenmesi gereken belirli çok görevli yazılımlar oluşturmak için mükemmel bir araç. Go bu yüzden yapıldı.

Örneğin, bir kullanıcının yalnızca PHP ve MySQL kullanarak video akışı yapabilmesi için bir “bilet” aldığı bir web sayfası yapabilirim. Bir Go sunucusu bileti kontrol eder ve arka planda bir Rust kod dönüştürücü tarafından zaten dönüştürülecek olan video dosyalarının akış parçalarını kontrol eder. Bunu PHP’de yapmaya mı çalışıyorsunuz? Nafile. Go dilinde? yıllar alacaktı. Rust’ta mı? Onlarca yıl alacaktı.

Büyük bir yenilik olmadıkça yakında ölmeyecek

PHP ölüyor mu? Web’de olmaz ve PHP Vakfı’nın çalışan beyinleri olduğu sürece, bir sonraki büyük şey gelene kadar uzun bir ömrü olabilir (web sayfaları yerine VR’yi kim söyledi?). Dilin Adobe Flash gibi bir kaynak problemi haline gelmediği için çoğunlukla PHP 7 ve PHP 8'e teşekkür edebiliriz, aksi takdirde şimdiye kadar herkes Node.JS kullanıyor olurdu.

Elbette PHP’nin web olmayan hiçbir şeyde yeri yoktur ve Rust, Go, Node.js ve Python gibi araçlar, kısa sürede işlerini kaybetmemesini sağlamıştır. Emin olun, PHP’nin sunmadığı belirli bir dizi özelliğe sahip olmadıkça, hiç kimse yukarıda belirtilen alternatifleri kullanarak bir web sayfası yapmaya çalışmayacaktır. Bu senaryoda bile, PHP’yi tamamen terk eden bir PHP projesine tamamlayıcı aramak daha iyidir.

Bugün itibariyle “her şeyi iyi yap” diye bir dil olmadığını zor yoldan öğrendim. Diğer işlerde biraz tecrübesiz olsanız bile, tüm işler için tek bir araç kullanmaktansa, iş için doğru aleti seçmek çok daha iyidir. Bu süreçte neler kaçırdığınızı öğrenebilirsiniz.

--

--

No responses yet