Perl'i en iyi tanıyorum, o yüzden seçeceğim.
Perl birçok fikir denedi. Bazıları iyiydi. Bazıları kötüydü. Bazıları orjinaldi ve iyi bir nedenden ötürü kopyalanamadı.
Birincisi bağlam fikri - her işlev çağrısı listede veya skalar bağlamında gerçekleşir ve her bağlamda tamamen farklı şeyler yapabilir. Http://use.perl.org/~btilly/journal/36756 de işaret ettiğim gibi, bu her API'yi karmaşıklaştırıyor ve Perl kodunda sık sık ince tasarım sorunlarına yol açıyor.
Bir sonraki, sözdizimi ve veri türlerini bu kadar tamamen bağlama fikridir. Bu, nesnelerin diğer veri türleri gibi maskelenmesine izin vermek için bağın icat edilmesine yol açar. (Aşırı yük kullanarak da aynı etkiyi elde edebilirsiniz, ancak kravat Perl'de daha yaygın bir yaklaşımdır.)
Pek çok dil tarafından yapılan bir başka yaygın hata, sözlükten ziyade dinamik kapsam belirleme ile başlamaktır. Bu tasarım kararını daha sonra geri almak zordur ve uzun süreli siğillere yol açar. Perl'deki bu siğillerin klasik açıklaması http://perl.plover.com/FAQs/Namespaces.html'dir . Bunun Perl'in our
değişkenler ve static
değişkenler eklemeden önce yazıldığını unutmayın .
İnsanlar, statik ve dinamik yazmaya karşı yasal olarak aynı fikirde değiller. Ben şahsen dinamik yazmayı severim. Ancak, yazım hatalarının yakalanmasına izin verecek kadar yapıya sahip olmak önemlidir. Perl 5 bununla iyi bir iş çıkarır. Fakat Perl 1-4 bunu yanlış anladı. Diğer birkaç dilde de aynı şeyi yapan tiftik damaları vardır. Tüy bırakma kontrolünü zorlama konusunda iyi olduğunuz sürece, bu kabul edilebilir.
Daha fazla kötü fikir (çok sayıda) arıyorsanız PHP'yi öğrenin ve geçmişini inceleyin. En sevdiğim hatam (uzun zaman önce çok fazla güvenlik açığına yol açtığı için düzeltildi), herhangi bir değişkeni form parametrelerine geçirerek herhangi bir değişkeni ayarlamaya izin veriyordu. Ancak bu tek hatadan uzak.