PHP neden bu kadar nefret ediliyor? [kapalı]


17

Son zamanlarda PHP'nin ne kadar korkunç olduğu hakkında birkaç şaka ve çizgi romanla karşılaşıyorum.

Dili tam bir cahil olarak, neden bu? Bu benim kendi algım mı yoksa programlama topluluğu hakkındaki genel duygu mu?


2
C # dilinde yazılım yazıyorum ve tüm Microsoft eleştirilerini duyuyorum, hemen hemen diğer dili
Scott Selby


4
@Andy Jeff'in bloglar mesajlarını unutmamalı: PHP Singularity ve PHP Sucks, Ama Önemli değil

5
İki tür dil yok ... herkesin nefret ettiği diller ve hiç kimsenin kullanmadığı diller.
GrandmasterB

2
@HerrK (benim dahil) cevap verilebilir tek yolu neden php berbat olduğunu düşünüyorum hakkında görüş olduğunu. Ayrıca üretken olmayan tartışmalara yol açacaktır (berbat! Hayır değil! Java kadar berbat!). Sorusu için optimize değil iyi (bu iyi bir cevap gelmez şu anda yazıldığı gibi cevaplar olamaz yazılabilir). Bir yanı sıra, tartışma ve görüş soruları sormak için iyi bir yer Yazılım Mühendisliği Sohbet olduğunu . Php ve sektördeki algıları hakkında kendi Yannis ile sohbet etmek özellikle yararlı olacaktır.

Yanıtlar:


29

Not: Bu, son derece görüşlü bir duruşla yazılmıştır.

Ayrıca bakınız: PHP: Kötü Tasarım fraktal

Uzun zaman önce, web gençken, perl'de bir web uygulaması yazdınız. Gerçekten böyleydi. ( C gerçekten dizeleri ile çalışma sevmedikçe) bu tek seçenek oldu . (Ve evet, ASP ve benzeri büyük alanlar üzerinde parlıyorum ... O günleri unutmayı tercih ederim.) Perl ile yazılmış web'in büyük ve büyük uygulamaları vardı. Ve perl'de yazılmış çok, çok ... parça vardı. Eğer bakarsanız Hala bunları bulabilirsiniz - hatta gelmediği birisi araya tokatladı arabası CGI komut yakın girdilerini sterilize etmek.

Web daha girişimsel hale geldikçe, büyük ve büyük uygulamalar binlerce bağlantıyı daha iyi ele almak için daha iyi tasarlanmış diğer çerçevelere taşındı (o zaman perl değildi). Yeni bir dil öğrenebilenler Java'ya geçtiler (birçok çerçeve için en iyi seçim buydu). Yapamayanlar, perl'e çok benzeyen ve bazı şeyleri daha iyi yapan bu dil vardı (her istek için bir süreci çatallamaya gerek yoktu). Php oldu.

Php, organik olarak büyüdü ... Eğer bir Frankenstein canavarı organik diyebilirsen. Çok sayıda kesmek (işlev adları için orijinal karma işlevinin çaldığını biliyor muydunuz ?). Bugün hala orada kalan temel dile (kütüphanelere değil) kısmi şeyler eklendi. O kadar da güzel değil. (Poke reddit en az / r / lolphp bildin ... bu inconstancies çoğunun eğlenceli pokes hangi -1 montholduğu her zaman 30 gün ?)

Ve php'de büyük ve çok büyük şeyler inşa edilmiş olsa da (örnek olarak wordpress'e bakın), hala esoterica ile örtü altında bir şeylerin nasıl çalıştığı (ya da çalışmadığı ya da şeylerin en çok hangi bölümlerinde çalıştığı) süresi).

Öğrenmek hızlı ve kolay bir dildir, bu yüzden bir dili öğrenmek için zaman harcamak istemeyen birçok insan bunu kullanır. Ve sonra kırar ve ne zaman sen şimdi sürdürmek zorunda? Ne yaptıklarını her zaman anlamayan kodlayıcılardan bu tür bir disiplinin olmamasına izin veren bir dil, bazı 'ilginç' hatalar yaratır.

Onun hızlı web siteleri ve yarı pişmiş wordpress eklentileri attı dili. 16 yaşındaki bir çocuğun komşusunun kodunu 20 dolar ya da bir üniversite öğrencisi için bira parası yazdığı ... bir daha asla bakmayacaklarını bilerek. Stack Overflow'un php etiketine biraz göz atın ve bu kodu bir gün koruduğunuzu düşünün.

Herkesin hatırla başkasının kod her zaman berbat. Ve php başkasının kodu ile uğraşmak zorunda kalırsanız - bu berbat.


6
şaşılacak bir şey insanlar örnek olarak wordpress alırlarsa php'den nefret ederler ... Symfony gibi çerçeveler ya da Pimple gibi sınıflar daha iyi tutmak istediğim temiz php komut dosyalarıdır. symfony.com/components pimple.sensiolabs.org
Félix Gagnon-Grenier

Her dilin içinde hatalar var. PHP, bu hataların bir ton vardı. Bazıları sıralanır, bazıları olduğu gibi, ancak alternatif oluşturulur. PHP zamanla gelişti. AMA sorun topluluktur. Noobs ve amatörlerle dolu bir topluluğa sahiptir. Benim kıdemli bir zamanlar "5 yıllık tecrübesi olsa bile kimse php bilmiyor" dedi. Bu php geliştiricileri yarısından fazlası OOP kavramını bilmiyorum doğrudur. sadece stackoverflow kopyalanan dizi ve dize işlevlerini kullanarak iş olsun.
tejas.jaiswal
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.