मैं पर्ल को सबसे अच्छी तरह से जानता हूं, इसलिए मैं इसे चुनूंगा।
पर्ल ने कई विचारों की कोशिश की। कुछ अच्छे थे। कुछ खराब थे। कुछ मूल थे और अच्छे कारण के लिए व्यापक रूप से कॉपी नहीं किए गए थे।
एक संदर्भ का विचार है - प्रत्येक फ़ंक्शन कॉल सूची या स्केलर संदर्भ में होता है, और प्रत्येक संदर्भ में पूरी तरह से अलग चीजें कर सकता है। जैसा कि मैंने http://use.perl.org/~btilly/journal/36756 पर बताया है कि यह हर एपीआई को जटिल करता है, और अक्सर पर्ल कोड में सूक्ष्म डिजाइन मुद्दों की ओर जाता है।
अगला सिंटैक्स और डेटा प्रकारों को पूरी तरह से बांधने का विचार है। यह टाई के आविष्कार के लिए वस्तुओं को अन्य डेटा प्रकारों के रूप में बहाने की अनुमति देता है। (आप अधिभार का उपयोग करके समान प्रभाव भी प्राप्त कर सकते हैं, लेकिन पर्ल पर्ल में अधिक सामान्य दृष्टिकोण है।)
एक और आम गलती, कई भाषाओं द्वारा की गई है, लेक्सिकल के बजाय डायनेमिक स्कूपिंग की शुरुआत करना है। बाद में इस डिजाइन के फैसले को वापस लेना कठिन है, और लंबे समय तक चलने वाले मौसा की ओर जाता है। पर्ल में उन मौसाओं का क्लासिक विवरण http://perl.plover.com/FAQs/Namespaces.html है । ध्यान दें कि यह पर्ल our
और static
वेरिएबल्स के जोड़े जाने से पहले लिखा गया था ।
लोग स्थिर बनाम गतिशील टाइपिंग पर कानूनी रूप से असहमत हैं। मुझे व्यक्तिगत रूप से गतिशील टाइपिंग पसंद है। हालांकि टाइपोस को पकड़ने के लिए पर्याप्त संरचना होना महत्वपूर्ण है। पर्ल 5 सख्त के साथ अच्छा काम करता है। लेकिन पर्ल को 1-4 से यह गलत लगा। कई अन्य भाषाओं में लिंटर चेकर्स हैं जो सख्त के समान काम करते हैं। जब तक आप लिंट चेकिंग को लागू करने के बारे में अच्छे हैं, तब तक यह स्वीकार्य है।
यदि आप अधिक बुरे विचारों (उनमें से बहुत से) की तलाश कर रहे हैं, तो PHP सीखें और इसके इतिहास का अध्ययन करें। मेरी पसंदीदा पिछली गलती (बहुत पहले से तय है क्योंकि इसमें बहुत सारे सुरक्षा छेद हैं) डिफ़ॉल्ट रूप से किसी को भी किसी भी चर को पैरामीटर पैरामीटर में सेट करने की अनुमति देने में चूक गया था। लेकिन यह एकमात्र गलती से दूर है।