Perl का पतन तकनीकी कारण नहीं, बल्कि सांस्कृतिक कारण था
(beatworm.co.uk)- Perl के पतन का कारण तकनीकी सीमाएँ नहीं, बल्कि एक रूढ़िवादी और बंद विकास संस्कृति में था, ऐसा विश्लेषण किया गया है
- शुरुआत की UNIX सिस्टम एडमिन संस्कृति से उपजा बहिष्कारी रवैया और 'expert-centric' गर्व ने भाषा के विकास को रोका
- Perl 6 के विभाजन को तकनीकी विफलता से अधिक समुदाय के अंदरूनी संघर्ष और रूढ़िवादिता को उजागर करने वाली घटना के रूप में देखा गया
- इसी समय Ruby on Rails, PHP, और Python ने अधिक खुली तथा सुलभ संस्कृति के साथ बढ़कर Perl की जगह संभाल ली
- Perl आज भी POSIX वातावरण की एक मुख्य स्क्रिप्ट भाषा के रूप में मौजूद है, लेकिन मुख्यधारा की विकास भाषा के रूप में इसका प्रभाव कम हुआ है
Perl की सांस्कृतिक उत्पत्ति और सीमाएँ
- Perl का जन्म UNIX सिस्टम एडमिन संस्कृति में हुआ, जहाँ ‘RTFM’, ‘luser’ जैसे अंदरूनी मज़ाक और बंदिश भरे नियम हावी थे
- इस संस्कृति में ज्ञान पर एकाधिकार और एंट्री बैरियर बनाए रखना गुण माना जाता था, और कठिनाई को ही कौशल का प्रतीक समझा जाता था
- परिणामस्वरूप नए उपयोगकर्ता या बदलाव के प्रति मजबूत प्रतिरोध वाली एक समूहवादी संरचना बनी
- इसी रवैये की तुलना ‘घेराबंदी किला संस्कृति’ से की जाती है
- समुदाय के अंदर के सदस्य अपनी तकनीकी कठिनाई को गर्व से जोड़ते थे, और बाहर से आने वाले सरलता प्रयासों को हल्के में लेते थे
- इससे ‘सिर्फ योग्य व्यक्तियों’ का प्रवेश वाला वर्गीय ढांचा बन गया
Perl समुदाय की संरचना और Perl 6 का विभाजन
- Perl ने ‘TIMTOWTDI(There Is More Than One Way To Do It)’ सिद्धांत के ज़रिए flexibility को बढ़-चढ़कर पेश किया
- लेकिन इसी सिद्धांत ने भाषा परिवर्तन के प्रति रूढ़िवादिता को मजबूत किया, जिससे core language स्थिर रही और innovation CPAN के बाहर धकेला गया
- CPAN-केंद्रित extension मॉडल ने dependency hell (निर्भरता अराजकता) जैसी स्थिति पैदा की
- Perl 6 का उभरना समुदाय के अंदरूनी संघर्ष का परिणाम और विभाजन का प्रतीक था
- Perl 5 ने व्यावहारिकता और स्थिरता पर ध्यान दिया, जबकि Perl 6 ने innovation और आदर्शों को तरजीह दी, जिससे सांस्कृतिक द्वैधता पैदा हुई
- Perl 6 विकास 15 वर्ष से अधिक विलंबित रहा और इसे ‘सबसे waterfall-टाइप ओपन सोर्स प्रोजेक्ट’ के रूप में भी देखा गया
- इसी दौर में Perl नए डेवलपर्स को आकर्षित करने में अनुकूल नहीं था और समुदाय और अधिक बंद होता गया
प्रतिस्पर्धी भाषाओं का उभार
- Ruby ने Perl से मिलता-जुलता syntax रखते हुए भी ‘programmer happiness’ और सहायता/मित्रता’ को मुख्य मूल्य बनाया
- Ruby on Rails ने developer-friendly tooling और consistent structure के साथ विस्फोटक सफलता पाई
- Perl ने कई समान frameworks बनाए, लेकिन आपसी संगतता और आसान प्रवेश की कमी से इसका प्रसार नहीं हो सका
- PHP को एक ‘user-first भाषा’ के रूप में देखा गया; आसान install और deploy होने के कारण यह व्यापक रूप से फैल गया
- WordPress जैसे ब्लॉग प्लेटफ़ॉर्म की आधारशिला बनकर वेब डेवलपर्स की नई पीढ़ी की प्रवेश भाषा बना
- Python ने शैक्षणिक पृष्ठभूमि से शुरुआत कर क्रमिक विकास और स्पष्ट डिज़ाइन सिद्धांत बनाए रखे
- Google के अपनाने के बाद यह स्थिरता से बढ़ा, और ‘batteries included’ दर्शन से व्यावहारिकता मजबूत हुई
Perl का वर्तमान और विरासत
- Perl अभी भी अधिकांश सिस्टम में pre-installed POSIX स्क्रिप्ट भाषा के रूप में मौजूद है
- कई legacy systems और automation scripts में इसका उपयोग अभी भी व्यापक है
- लेकिन नए projects की default भाषा विकल्प के रूप में लगभग इस्तेमाल नहीं होता
- Perl की प्रमुख देनें
- Regular expression integration और extensible syntax
- इंटरनेट-आधारित package वितरण और signature verification के लिए CPAN
- automated test harness (TAP) तथा CI अवधारणा का प्रसार
- POSIX फीचर्स का एकीकरण जिसने shell और सिस्टम प्रोग्रामिंग की सीमा को मिटाया
- POD documentation system से दस्तावेज़ीकरण में सुधार
निष्कर्ष: संस्कृति ने रची सफलता और पतन
- Perl ने 1990 के दशक के शुरुआती web दौर में दो संस्कृतियों (UNIX एडमिन और web developer) को जोड़कर तेज़ वृद्धि हासिल की
- लेकिन रूढ़िवादी संस्कृति और बंद समुदाय बदलाव के साथ तालमेल न बैठा सके, इसलिए यह मुख्यधारा से हट गया
- फिर भी Perl को आधुनिक सॉफ़्टवेयर विकास की बुनियाद बनाने वाली भाषाओं में से एक माना जाता है
- लेखक का दावा है कि Perl खत्म नहीं होगा; जब तक POSIX मौजूद है, Perl भी मौजूद रहेगा
- आज Rust, TypeScript जैसी नई भाषाएँ भी वही सांस्कृतिक बदलाव का रास्ता दोहरा रही हैं जिसे Perl ने पहले झेला था
2 टिप्पणियां
मुझे लगता है कि अगर किसी लेख में यह बात आ जाए कि Perl और Ruby का syntax एक जैसा है, तो उसकी मौलिकता पर शक होने लगता है। यह क्लासिक दौर के Perl-आलोचना लेखों में उद्धृत होने वाला एक जुमला है, लेकिन वास्तविक इस्तेमाल में मैंने ऐसा कभी महसूस नहीं किया। इसलिए लगता है कि लोग बस किसी तरह सामग्री भरते हुए पुराने लेख कॉपी-पेस्ट कर देते हैं, या बाकी हिस्सा AI से लिखवा देते हैं, और इसी वजह से पुराने legacy Perl-विरोधी लेख बिना किसी आलोचनात्मक नजरिए के स्वीकार कर लिए गए हैं।
Hacker News राय
मुझे Perl कम्युनिटी का ‘भिक्षु और जादूगर’ जैसा सेटअप हमेशा बोझिल लगा
एक-लाइन वाले कोड से खुद को बहुत स्मार्ट दिखाने की संस्कृति भी खास पसंद नहीं थी, और Python कहीं ज़्यादा गंभीर और ‘नॉर्मल’ लगता था
सिंटैक्स ऐसा लगता है जैसे जानबूझकर जटिल बनाया गया हो, और कई हिस्से डॉक्यूमेंटेशन के बिना बिल्कुल समझ नहीं आते
बेशक उस समय कोड की संक्षिप्तता महत्वपूर्ण रही होगी, लेकिन 2025 में यह बहुत अनफ्रेंडली लगता है
जैसे D&D में किसी का अचानक आया हुआ आइडिया हमेशा के लिए rulebook में घुसा दिया गया हो
दूसरी ओर Python ने “एक स्पष्ट तरीका” पर ज़ोर देकर साफ-सुथरे कोड की दिशा दी
Perl को भी सुंदर ढंग से लिखा जा सकता था, लेकिन वह डेवलपर को सचेत रूप से चुनना पड़ता था
Python में indentation की अनिवार्यता की वजह से शुरुआती लोग भी एक तय स्तर की readability हासिल कर लेते थे
लेकिन भाषा खुद इतनी ज़्यादा expressive थी कि shared code के लिए वही बात उल्टा नुकसान बन गई
text processing में Perl अब भी बेहतरीन है, लेकिन collaboration की भाषा के रूप में मुश्किल थी
कम्युनिटी की बढ़ा-चढ़ाकर बनाई गई छवि के विपरीत उनका मानवीय पक्ष प्रभावशाली लगा
Perl की खिलंदड़ प्रकृति उल्टा ज़्यादा ईमानदार और कम गंभीर लगती थी
लेकिन आखिरकार Python मुख्यधारा बन गया और Perl धीरे-धीरे भुला दिया गया
मुझे लगता है Perl कम्युनिटी की अहंकारी संस्कृति ने भाषा के पतन को तेज़ किया
पहले एक दोस्त ने मुझे Linux सिखाया था, वह Perl का जबरदस्त प्रशंसक था, लेकिन कुछ न जानने पर उसका मज़ाक उड़ाने वाला RTFM रवैया ऐसा था कि आखिरकार उससे दोस्ती ही तोड़ दी
मेरा Perl कम्युनिटी से लगभग कोई संपर्क नहीं था, मैं बस उस दौर में इसे इस्तेमाल करता था जब सब कुछ Google पर खोजकर हल कर लेते थे
@, % जैसे symbols बहुत ज़्यादा थे, इसलिए Ruby या Python की तुलना में पहुँच थोड़ी कठिन थी
Ruby शुरू से object-oriented भाषा के रूप में डिज़ाइन की गई थी, इसलिए वह कहीं अधिक नैचुरल लगी
Python की optional type hinting जब सटीक नहीं होती थी, तो वह उल्टा और भ्रम पैदा करती थी
अगर उसे सटीक ही होना है, तो वह फिर अनिवार्य type system हुआ, वैकल्पिक hint नहीं
90 के दशक में IRC पर किसी ने मुझे RTFM कहा था, लेकिन बाद में पता चला कि वह मज़ाक भी था और नए लोगों का स्वागत करने वाला इवेंट भी
मैंने सच में Perl जादूगरों के साथ कॉफी पीते हुए mentorship पाई, और वह अनुभव मेरी programming ज़िंदगी का turning point बन गया
उस समय सुनी एक बात आज भी याद है — “Perl it forward!”
“बहुत संघर्ष के बाद dopamine मिलने पर उसे अच्छा अनुभव समझ बैठने” वाली घटना पूरे कंप्यूटर उद्योग में फैली हुई है
हमेशा उलझन रहती है, और लगातार यही सवाल आता है, “इसे ऐसे क्यों बनाया?”
ईमानदारी से कहूँ तो Perl बस इसलिए गायब हुआ क्योंकि दूसरी भाषाएँ बेहतर थीं
जैसे prototype board से प्रोडक्ट नहीं बनाया जा सकता, वैसे ही Perl प्रयोग का परिणाम था
उदाहरण के लिए
@arrayको scalar के रूप में लेने पर वह सिर्फ उसकी length लौटाता था — यानी context dependency मौजूद थीToyota vs Honda की तरह, असल में यह ज़्यादा पसंद का फर्क था
Perl का reference syntax, असुविधाजनक OO, और use strict; / use warnings; जैसी बार-बार करनी पड़ने वाली सेटिंग्स थकाने वाली थीं
Rails कहीं अधिक संक्षिप्त और सुरक्षित था, और समय भी उसके पक्ष में बिल्कुल सही था
Perl मेरी पहली पसंदीदा भाषा थी, लेकिन 2012 में मैंने पूरी तरह Python अपना लिया
आज भी legacy code में Perl scripts दिखती हैं तो राहत मिलती है कि “अच्छा हुआ मैंने सही समय पर बदलाव कर लिया”
Perl कोड में comments लगभग नहीं होते थे, और regex का अत्यधिक इस्तेमाल readability को बहुत खराब कर देता था
अब मैं ऐसे patterns को Python के object-oriented तरीके से हल करता हूँ
मैंने Perl का खूब इस्तेमाल किया, लेकिन आखिरकार CPAN की quality problems की वजह से Python पर चला गया
CPAN modules अक्सर टूट जाते थे, और कई बार उन्हें खुद ठीक करके इस्तेमाल करना पड़ता था
90 के दशक से 2000 के शुरुआती वर्षों तक यह अंतर काफी बड़ा था
Perl के खत्म होने की वजह यह थी कि दूसरी भाषाओं ने CPAN जैसे ecosystem बना लिए,
और Perl का लचीला syntax team-level collaboration के लिए अनुपयुक्त था
SWIG या जटिल type magic के बिना modules आसानी से distribute किए जा सकते थे,
और Perl 6 की अनंत विकास देरी आख़िरी बड़ा झटका साबित हुई
collaborative माहौल में cognitive load घातीय रूप से बढ़ जाता था
Python ने उस बहस को PEP system के ज़रिए बाहर निकालकर कहीं अधिक कुशल बना दिया