हम जादूगर थे – Learning Perl (1993) की एक भूमिका
Perl “जादुई” और अभिव्यक्तिपूर्ण के रूप में
- बहुतों को Perl एक ऐसी भाषा के रूप में याद है जो “stream-of-consciousness” प्रोग्रामिंग के लिए अनोखे ढंग से उपयुक्त थी: विचार बहुत कम औपचारिकता के साथ सीधे कोड में बहते चले जाते थे।
- इसका लचीला syntax, sigils, और शक्तिशाली regexes इसे प्रोग्रामर के मन के विस्तार जैसा बनाते थे, खासकर text और glue code के लिए।
- कुछ लोग इसे practical linguistics की इसकी जड़ों और context तथा ambiguity के प्रति सहनशीलता से जोड़ते हैं, उन भाषाओं के विपरीत जो अधिक औपचारिक रूप से डिज़ाइन की गई थीं।
उत्पादकता बनाम रखरखाव
- कई किस्से ऐसे Java projects का वर्णन करते हैं जो विफल और भारी थे, और जिन्हें हफ्तों में छोटे Perl teams या यहाँ तक कि एक अकेले developer ने बदल दिया।
- समर्थकों का तर्क है कि खराब code एक लोगों की समस्या है, भाषा की नहीं, और अनुशासन के साथ उच्च-गुणवत्ता, maintainable Perl संभव है।
- आलोचक कहते हैं कि भाषा की अभिव्यक्तिपूर्णता और उसके कई sharp edges “cowboy coding” और write-only code को सक्रिय रूप से बढ़ावा देते हैं, खासकर बड़े, लंबे समय तक चलने वाले systems में।
भाषा डिज़ाइन और सुरक्षा
- प्रशंसक unit tests, strict modes, tainting/safe modes, और दीर्घकालिक backwards compatibility के शुरुआती और मजबूत समर्थन को रेखांकित करते हैं।
- अन्य लोग बाद में जोड़े गए OO, awkward error handling, signal handling, great REPL की कमी, और conceptual bloat की आलोचना करते हैं।
CPAN, Ecosystem, और Dependency Sprawl
- CPAN की प्रशंसा एक शुरुआती, अनुकरणीय internet-native package ecosystem के रूप में की जाती है, जिसमें अच्छा tooling, docs, और tests हैं।
- यह चिंता भी है कि “there is more than one way to do it” के कारण कई overlapping modules (multiple OO systems, JSON libs, HTTP clients) एक ही runtime में साथ-साथ मौजूद रहते हैं और dependencies को जटिल बनाते हैं।
Perl बनाम Python और अन्य
- कुछ लोग Perl और Python को बहुत समान मानते हैं लेकिन अलग तरह से optimized: Perl का लक्ष्य computer को human के अनुसार ढालना है, Python का human को computer के अनुसार।
- Perl को terse one-liners और ad-hoc stream processing के लिए बेहतर माना जाता है; Python को बड़े systems और teams के लिए अधिक स्पष्ट।
- Perl के पतन के कारणों में एक प्रमुख web company द्वारा Python को standard बनाना, scientific/data stack, और Perl 6 / Raku के इर्द-गिर्द भ्रम और देरी शामिल बताए जाते हैं।
वर्तमान niche, ubiquity, और विरासत
- Perl Unix-like systems पर व्यापक रूप से installed बना हुआ है और अभी भी cross-platform scripting के लिए पसंद किया जाता है जहाँ sed/awk या shell अलग-अलग व्यवहार करते हैं।
- कई टिप्पणीकार अभी भी छोटे से मध्यम आकार के scripts के लिए नियमित रूप से Perl का उपयोग करते हैं, लेकिन उन्हें नए greenfield opportunities बहुत कम दिखती हैं।
- Perl पर किताबें और पत्रिकाएँ असाधारण रूप से मज़ेदार, opinionated, और कई प्रोग्रामरों के करियर पर प्रभावशाली के रूप में याद की जाती हैं.