பேராலயமும் சந்தையும் 5. முன்னதாக வெளியிடுக, அடிக்கடி வெளியிடுக

முன்னதாக வெளியிடுதல் மற்றும் அடிக்கடி வெளியிடுதல் லினக்ஸ் மேம்பாட்டு மாதிரியின் முக்கியமான அங்கமாகும். பெரும்பாலான நிரலாளர்கள் (நானும்தான்) மிகச்சிறியது தவிர மற்ற திட்டங்களுக்கு இது மோசமான கொள்கை என்று நம்பினர். ஏனெனில் தொடக்கப் பதிப்புகளில் வழு நிறைந்திருக்கும். உங்கள் பயனர்களின் பொறுமையை சோதிக்க விரும்ப மாட்டீர்கள்.

இக்கருத்துதான் பேராலயம்-பாணி வளர்ச்சிக்கான பொதுவான நம்பிக்கையை வலுப்படுத்தியது. பயனர்கள் முடிந்தவரை குறைந்த அளவு வழுக்களைப் பார்ப்பதே முக்கிய நோக்கமாக இருந்தால், நீங்கள் ஆறு மாதங்களுக்கு ஒரு முறையோ அல்லது அதைவிடக் குறைவாகவோதான் ஒரு பதிப்பை வெளியிடுவீர்கள். மேலும் வெளியீடுகளுக்கு இடையில் உள்ள காலத்தில் வழுத்திருத்தத்தில் அதிதீவிரமாகச் செயல்படுவீர்கள். ஈமாக்ஸ் சி கோர் (Emacs C core) இவ்வழியில் உருவாக்கப்பட்டது. லிஸ்ப் நிரலகம் (Lisp library) நடைமுறையில் இவ்வழியில் உருவாக்கப்படவில்லை.  ஏனென்றால் FSF (Free Software Foundation) கட்டுப்பாட்டிற்கு வெளியே செயலில் உள்ள லிஸ்ப் காப்பகங்கள் இருந்தன. அங்கு எவரும் ஈமாக்ஸ் புதிய வெளியீடுகள் மற்றும் மேம்பாடு செய்து கொண்டிருக்கும் நிரல் பதிப்புகளைப் பதிவிறக்கம் செய்ய இயலும்.

இவற்றில் மிக முக்கியமானது, ஓஹியோ மாகாண ஈமாக்ஸ் லிஸ்ப் காப்பகம் (Ohio State Emacs Lisp archive). இன்றைய பெரிய லினக்ஸ் காப்பகங்களைப் போன்ற பல அம்சங்களை முன்செயல்படுத்தியது. ஆனால் நாங்கள் எவரும் என்ன செய்கிறோம் என்பதைப் பற்றியோ அல்லது அக்காப்பகம் இருப்பதால் FSF இன் பேராலயம்-பாணி மேம்பாட்டு மாதிரியில் எழும் சிக்கல்களைப் பற்றியோ மிகவும் கடினமாக யோசிக்கவில்லை. 1992 ஆம் ஆண்டில், அதிகாரப்பூர்வ ஈமாக்ஸ் லிஸ்ப் நிரலகத்தில் ஓஹியோ நிரலை முறையாக இணைக்க நான் ஒரு தீவிர முயற்சியை மேற்கொண்டேன். ஆனால் அரசியல் சிக்கல் காரணமாக நான் பெரும்பாலும் தோல்வியடைந்தேன்.

லினஸின் திறந்த வளர்ச்சிக் கொள்கை பேராலயம் பாணிக்கு முற்றிலும் எதிர் மாறானது

How-to-get-started-with-open-source-project-contribution

திறந்த மூல திட்டப் பங்களிப்பைத் தொடங்குவது எப்படி

ஆனால் ஒரு வருடம் கழித்து, லினக்ஸ் பரவலாகத் தெரியவந்ததால், வித்தியாசமான மற்றும் மிகவும் ஆரோக்கியமான ஒன்று அங்கு நடக்கிறது என்பது தெளிவாகத் தெரிந்தது. லினஸின் திறந்த வளர்ச்சிக் கொள்கை பேராலயம் பாணிக்கு முற்றிலும் எதிர் மாறானது. லினக்ஸின் இணையக் காப்பகங்கள் வளர்ந்து வருகின்றன, பல விநியோகங்கள் (distros) வெளிவருகின்றன. மேலும் இவை அனைத்தும் இதுவரை கண்டிராத குறுகிய கால இடைவெளியில் கருநிரல் (kernel) வெளியீடுகளால் உந்தப்படுகின்றன.

லினஸ் தனது பயனர்களை இணை நிரலாளர்களாக மிகவும் பயனுள்ள முறையில் நடத்தினார்:

மணிமொழி 7. முன்னதாக வெளியிடுக. அடிக்கடி வெளியிடுக. மற்றும் வாடிக்கையாளர்களுக்கு செவிசாய்க்கவும்.

லினஸின் புதுப்புனைவு (innovation), பல பயனர் பின்னூட்டங்களை உள்ளடக்கி விரைவான வெளியீடுகளைச் செய்ததில் இல்லை (இது போன்ற ஒன்று நீண்ட காலமாக யூனிக்ஸ்-உலக பாரம்பரியமாக இருந்தது). ஆனால் தான் செய்யும் வேலையின் சிக்கலுக்குப் பொருந்தக்கூடிய தீவிரத்தன்மைக்கு அதை வளர்த்து விட்டதில்தான் (scaling it up). அந்த ஆரம்ப காலங்களில் (சுமார் 1991 இல்) ஒரு நாளைக்கு ஒரு முறைக்கு மேல் புதிய லினக்ஸ் கருநிரலை (Linux kernel) வெளியிடுவதும் நடக்காத சங்கதியல்ல! அவர் தனது இணை-நிரலாளர்களின் அடித்தளத்தை வளர்த்துக்கொண்டதால், கூட்டு முயற்சிக்கு மற்றவர்களை விடத் தீவிரமாக இணையத்தைப் பயன்படுத்தினார்.

ஆனால் இது எப்படி வேலை செய்தது? இது நான் காப்பியடிக்கக்கூடிய ஒன்றா அல்லது லினஸ் டோர்வால்ட்ஸின் சில தனித்துவமான மேதை குணங்களை நம்பியிருந்ததா?

நான் அப்படி நினைக்கவில்லை. லினஸ் ஒரு சிறந்த கொந்தர் என்பதில் ஐயமில்லை. நம்மில் எத்தனை பேர் ஒரு முழு உற்பத்தித்தரமான இயங்கு தளக் கருநிரலைப் புதிதாக உருவாக்க முடியும்? ஆனால் லினக்ஸ் எந்தவொரு அற்புதமான கருத்தியல் ரீதியான முன்னேற்றத்தையும் செயல்படுத்தவில்லை. ரிச்சர்ட் ஸ்டால்மேன் (Richard Stallman – NeWS) அல்லது ஜேம்ஸ் கோஸ்லிங் (James Goslingஜாவா) போன்று வடிவமைப்பில் லினஸ் ஒரு புதுப்புனைவு செய்த மேதை அல்ல (அதாவது இதுவரை இல்லை). மாறாக, லினஸ் கணினிப் பொறியியலிலும் திட்டத்தைச் செயல்படுத்துவதிலும் ஒரு மேதையாக எனக்குத் தோன்றுகிறது. வழுக்கள் மற்றும் வளர்ச்சியின் முட்டுக்கட்டைகளைத் தவிர்ப்பதற்கான ஆறாவது அறிவு அவருக்கு இருந்தது. மற்றும் புள்ளி A இலிருந்து புள்ளி B வரையிலான குறைந்தபட்ச முயற்சிப் பாதையைக் கண்டுபிடிப்பதற்கான உண்மையான சாமர்த்தியம் இருந்தது. லினக்ஸின் முழு வடிவமைப்பும் இத்தரத்தை வெளிப்படுத்துகிறது மற்றும் லினஸின் அடிப்படையில் இடரைத் தவிர்க்கும் மற்றும் எளிமையாக்கும் வடிவமைப்பு அணுகுமுறையைப் பிரதிபலிக்கிறது.

எனவே, விரைவான வெளியீடுகளும், இணைய ஊடகத்தின் பயனை உச்சகட்டமாக உயர்த்துவதும் தற்செயலாக நடந்தவை அல்ல. ஆனால் குறைந்தபட்ச முயற்சிப்பாதை பற்றிய நுண்ணறிவு லினஸின் பொறியியல்-மேதையின் ஒருங்கிணைந்த பகுதி என்றால், அவர் எதை மிகுதியாக்கினார்? அவர் இந்த இயந்திரத்திலிருந்து எதைத் தயாரித்துத் தள்ளினார்?

இந்த முறையில் கேட்டால் கேள்விக்குத் தானாகவே பதில் கிடைக்கும். லினஸ் தனது கொந்தர்/பயனர்களைத் தொடர்ந்து ஊக்குவித்து, வெகுமதி அளித்து வந்தார். அவர்களின் தற்பெருமைக்கு (ego) திருப்தி அளிக்கும் வேலைகளில் வாய்ப்பளித்து ஆர்வமூட்டினார். தங்களின் வேலையில் தொடர்ந்த (தினமும் கூட) முன்னேற்றத்தைக் காண்பதன் மூலம் அவர்களுக்கு இந்த வெகுமதி தொடர்ந்து கிடைத்து வந்தது.

“அனேகம் பேர் கவனித்தால் அனைத்து வழுக்களும் எளியவையே” – லினஸின் விதி

லினஸ், வழுத்திருத்தம் மற்றும் மேம்பாட்டிற்கு ஒதுக்கப்படும் நபர்-மணி நேரங்களின் எண்ணிக்கையை மிகுதியாக்குவதை நேரடியான இலக்காகக் கொண்டிருந்தார். நிரலில் உறுதியற்ற தன்மை மற்றும் ஏதேனும் தீர்வுகாண முடியாத தீவிரமான வழு இருந்தால் பயனர் அடித்தளம் முழுச்சோர்வு அடையக்கூடும் என்ற பிரச்சினை இருந்தும்கூட. லினஸ் நடந்துகொண்ட விதத்தைப் பார்த்தால் அவர் பின்வரும் மணிமொழியை நம்புவது போல் இருந்தது:

மணிமொழி 8. போதுமான அளவு பீட்டா-சோதனையாளர் மற்றும் இணை-நிரலாளர் அடித்தளம் இருந்தால், அனேகமாக எந்தவொரு பிரச்சினையும் விரைவாக வகைப்படுத்தப்படும் மற்றும் எவராவது ஒருவருக்கு அதன் தீர்வு தெளிவாகத் தெரியும்.

அல்லது, சுருக்கமாக, “அனேகம் பேர் கவனித்தால் அனைத்து வழுக்களும் எளியவையே” இதை நான் “லினஸின் விதி” என்று அழைக்கிறேன்.

எனது முதல் உருவாக்கம் என்னவென்றால், ஒவ்வொரு பிரச்சினையும் “யாராவது ஒருவருக்கு வெளிப்படையானதாக இருக்கும்” என்றுதான்’. சிக்கலைப் புரிந்துகொண்டு சரிசெய்பவர்தான் அதை முதலில் வகைப்படுத்தியவர் என்று அவசியம் இல்லை, மேலும் வழக்கமாக அம்மாதிரி நடப்பதும் இல்லை என்று லினஸ் விளக்கம் கூறினார். “யாரோ ஒருவர் வழுவைக் கண்டுபிடிப்பார்,” என்று அவர் கூறுகிறார், “வேறொருவர் அதைப் புரிந்துகொண்டு தீர்வு காணுவார். இவற்றில் அதை முதலில் கண்டுபிடிப்பதுதான் பெரிய சவால் என்று என்னால் தீர்மானமாகச் சொல்ல முடியும்.” அந்த வழுத்திருத்தம் முக்கியம்தான், அது எப்படியென்று அதன் நடைமுறையை அடுத்த பகுதியில் இன்னும் விரிவாக ஆராயும்போது பார்ப்போம். ஆனால் முக்கிய சங்கதி என்னவென்றால், இந்த செயல்முறையின் இரண்டு பகுதிகளும் (கண்டுபிடித்தல் மற்றும் தீர்வு காணுதல்) விரைவாக நடக்கின்றன.

பேராலயம்-பாணி மற்றும் சந்தை-பாணியின் அடிப்படை வேறுபாடு லினஸின் விதியில்தான் உள்ளது

லினஸின் விதியில்தான் பேராலயம்-பாணி மற்றும் சந்தை-பாணியின் அடிப்படையிலான முக்கிய வேறுபாடு உள்ளது என்று நான் நினைக்கிறேன். நிரலாக்கத்தின் பேராலயம்-பாணி பார்வையில், வழுக்கள் மற்றும் வளர்ச்சி பிரச்சினைகள் சிக்கலான, கேடார்ந்த, ஆழமான நிகழ்வுகளாகும். நீங்கள் அனைத்து வழுக்களையும் பிரித்தெடுத்து விட்டீர்கள் என்ற நம்பிக்கையை உருவாக்க அர்ப்பணிப்புள்ள சிலர் பல மாதங்கள் ஆய்வு செய்ய வேண்டும். இதனால் வெளியீடுகளுக்கு இடையில் நீண்ட இடைவெளிகள் இருக்கும். மற்றும் நீண்டகாலமாக எதிர்பார்த்த வெளியீடுகள் வழுவற்றதாக இல்லாதபோது தவிர்க்க முடியாத ஏமாற்றம் ஏற்படும்.

மறுபுறம், சந்தை பார்வையில், வழுக்கள் பொதுவாக ஆழமற்ற நிகழ்வுகள் என்று கருதலாம். அல்லது குறைந்தபட்சம், ஒவ்வொரு புதிய வெளியீட்டையும் துடிப்புள்ள ஆயிரக்கணக்கான இணை-நிரலாளர்கள் அக்கு வேறு ஆணி வேறாகப் பிரித்துப் பார்க்கும்போது அவை மிக விரைவாக ஆழமற்றதாக ஆகிவிடுகின்றன. ஆகவே, அதிக திருத்தங்களைப் பெறுவதற்காக நீங்கள் அடிக்கடி வெளியிடுகிறீர்கள். மேலும் நன்மை பயக்கும் பக்கவிளைவாக, வெளியீட்டில் எப்போதாவது ஒரு மோசமான வழு தப்பிச் சென்றால், எதிர்பார்ப்பு அதிகமில்லை என்பதால், உங்களுக்கு பாதிப்பும் குறைவு.

லினக்ஸ் தொடர்ச்சியாகப் பல வருடங்கள் கூட மறுஇயக்கம் (reboot) செய்யாமல் இயங்க வல்லது

இவ்வளவுதான். இது போதும். லினஸின் விதி தவறானது என்றால், லினக்ஸ் கருநிரல் (Linux kernel) போன்ற சிக்கலான மற்றும் இத்தனை கைகளால் கொந்தப்பட்ட எந்த ஓர் அமைப்பும், எதிர்பாராத மோசமான செயல்விளைவுகள் மற்றும் கண்டுபிடிக்கப்படாத ஆழமான வழுக்களின் பாரம் தாங்காமல் ஒரு கட்டத்தில் உடைந்து விழுந்திருக்க வேண்டும். மாறாக லினஸின் விதி உண்மையாக இருந்தால், லினக்ஸில் ஏன் வழுக்கள் மிகக்குறைவாக உள்ளன மற்றும் லினக்ஸ் ஏன் தொடர்ச்சியாகப் பல மாதங்கள் அல்லது வருடங்கள் வரை மறுஇயக்கம் (reboot) செய்யாமல் இயங்க வல்லது என்பதை விளக்கப் போதுமானது.

ஒருவேளை இது அவ்வளவு ஆச்சரியமாக இருந்திருக்கக்கூடாது. சமூகவியலாளர்கள் பல ஆண்டுகளுக்கு முன்பு, சமமான நிபுணத்துவம் வாய்ந்த (அல்லது சமமாக அறியாமை கொண்ட) பார்வையாளர்களின் சராசரியான கருத்து, பார்வையாளர்களில் சீரற்ற முறையில் தேர்ந்தெடுக்கப்பட்ட (randomly-chosen) யாராவது ஒருவரின் கருத்தை விட, பெருமளவு நம்பகமான ஒரு முன்கணிப்பு என்று கண்டறிந்தனர். இதை டெல்ஃபி விளைவு (Delphi effect) என்று அழைத்தனர். இது ஓர் இயங்கு தளத்தின் வழுத்திருத்தத்திற்கு கூட பொருந்தும் என்று லினஸ் செய்து காட்டினார் என்று தோன்றுகிறது. அதாவது டெல்ஃபி விளைவு ஓர் இயங்கு தள கருநிரல் அளவு சிக்கலான வேலையில் கூட வளர்ச்சி சிக்கலைக் கட்டுப்படுத்தும்.

லினக்ஸ் சூழ்நிலையின் ஒரு சிறப்பு அம்சம், டெல்ஃபி விளைவுடன் கண்கூடாக உதவுகிறது. எந்தவொரு திட்டத்திற்கும் பங்களிப்பாளர்கள் சுயமாகத் தேர்ந்தெடுக்கப்பட்டவர்கள் (தானாக உதவியளிக்க முன் வந்தவர்கள்). பங்களிப்புகள் சீரற்ற மாதிரியில் (random sample) இருந்து பெறப்படவில்லை என்று ஓர் ஆரம்ப விமர்சகர் சுட்டிக்காட்டினார். ஆனால் இவர்கள் மென்பொருளைப் பயன்படுத்த ஆர்வமுள்ளவர்கள், அது எவ்வாறு செயல்படுகிறது என்பதைப் பற்றி அறிந்துகொள்பவர்கள், இவர்கள் எதிர்கொள்ளும் பிரச்சனைகளுக்கு தீர்வு காண முயற்சி செய்பவர்கள், மேலும் ஓரளவு நல்ல தீர்வை உருவாக்குபவர்கள். இந்த வடிகட்டிகள் அனைத்தையும் கடந்து செல்லும் எவருக்கும் பயனுள்ள ஏதாவது பங்களிக்க வாய்ப்பு உள்ளது.

லினஸின் விதியை “வழுத்திருத்தம் இணையாக செய்யக்கூடியது (parallelizable)” என மாற்றிச் சொல்லலாம்

லினஸின் விதியை “வழுத்திருத்தம் இணையாக செய்யக்கூடியது” என மாற்றிச் சொல்லலாம். வழுத்திருத்தத்திற்கு சில ஒருங்கிணைப்பு நிரலாளர்களுடன் தொடர்பு கொள்ளத் தேவைப்பட்டாலும், வழுத்திருத்துபவர்களுக்கு இடையே குறிப்பிடத்தக்க தகவல் தொடர்பு தேவையில்லை. எனவே நிரலாளர்களைச் சேர்ப்பது தகவல் தொடர்பு பளு அதிகரிப்பு பிரச்சினையை உண்டாக்காது.

நடைமுறையில், வழுத்திருத்துபவர்கள் ஒருவர் செய்த வேலையை மற்றவர் திரும்பவும் வீணாகச் செய்வது லினக்ஸ் உலகில் ஒரு பிரச்சினையாகத் தெரியவில்லை. ”முன்னதாக வெளியிடு, அடிக்கடி வெளியிடு” கொள்கையின் ஒரு விளைவு, பின்னூட்டங்களில் வந்த திருத்தங்களை விரைவாக வெளியிடுவதன் மூலம் இத்தகைய பயனற்ற வேலைகளைக் குறைப்பதாகும்.

ப்ரூக்ஸ் (The Mythical Man-Month இன் ஆசிரியர்) இது தொடர்பான ஓர் அபிப்பிராயத்தைக் கூறினார்: ”பரவலாகப் பயன்படுத்தப்படும் ஒரு மென்பொருளைப் பராமரிப்பதற்கான மொத்தச் செலவு பொதுவாக அதை உருவாக்குவதற்கான செலவில் 40 சதவிகிதம் அல்லது அதற்கு மேலும் ஆகும். ஆச்சரியப்படும் விதமாக, இந்தச் செலவு முக்கியமாக பயனர்களின் எண்ணிக்கையைப் பொருத்தது. அதிகப் பயனர்கள் அதிக வழுக்களைக் கண்டறிகின்றனர்.” [முக்கியத்துவம் சேர்க்கப்பட்டது].

பயனர்கள் இணை நிரலாளர்களானால் பிரச்சினையை வெவ்வேறு கோணத்தில் அணுகுகின்றனர்

அதிகப் பயனர்கள் அதிக வழுக்களைக் கண்டறிகின்றனர், ஏனெனில் அதிகமான பயனர்களைச் சேர்ப்பது நிரலை பளுச்சோதனை செய்யும் பல்வேறு வழிகளைச் சேர்க்கிறது. பயனர்கள் இணை நிரலாளர்களாக இருக்கும்போது இந்த விளைவு பெருக்கப்படுகிறது. ஒவ்வொருவரும் வழு வகைப்படுத்தல் பணியை சற்று வித்தியாசமான உட்புரிதல் மற்றும் பகுப்பாய்வுக் கருவித்தொகுப்புடன், பிரச்சினையின் வெவ்வேறு கோணத்தில் அணுகுகின்றனர். இந்த மாறுபட்ட அணுகுமுறை காரணமாக “டெல்ஃபி விளைவு” துல்லியமாக வேலை செய்கிறது. வழுத்திருத்தத்தின் குறிப்பிட்ட சூழலில், இந்த மாறுபட்ட அணுகுமுறை வீண்வேலையைக் குறைக்கிறது.

எனவே அதிக பீட்டா-சோதனையாளர்களைச் சேர்ப்பது நிரலாளரின் பார்வையில் தற்போதைய ”ஆழமான” வழுவின் சிக்கலைக் குறைக்காது. ஆனால் இது இந்த வழுவுடன் யாராவது ஒருவரின் கருவித்தொகுப்பு பொருந்தக்கூடிய நிகழ்தகவை (probability) அதிகரிக்கிறது. அந்த நபருக்கு இந்த வழு ஆழமற்றதாக இருக்கும்.

கடுமையான வழுக்கள் இருந்தால் இழப்பிலிருந்து பாதுகாத்துக் கொள்ளவும் லினஸ் வழி ஏற்படுத்தியிருக்கிறார். வழுக்கள் நீக்கப்பட்ட லினக்ஸ் கருநிரல் பதிப்புகள் ”நிலையானவை” என்று குறியிடப்பட்டிருக்கும். புதிய அம்சங்களைப் பெற விரும்பினால் பயனர்கள் புத்தம் புதிய பதிப்பைத் தேர்வு செய்யலாம். ஆனால் இதில் கடுமையான வழுக்கள் இருக்கக்கூடிய இடர் உண்டு என்று தெரியும். இந்த உத்தி இன்னும் பெரும்பாலான லினக்ஸ் கொந்தர்களால் முறையாகப் பின்பற்றப்படவில்லை, ஆனால் ஒருவேளை இதை மற்றவர்களும் பின்பற்றவேண்டும். இந்த இரண்டு தேர்வுகள் உள்ளன என்பது இரண்டையும் மிகவும் கவர்ச்சிகரமானதாக ஆக்குகிறது.

மூலநூல்: The Cathedral and the Bazaar by Eric S. Raymond – version 3.0

தமிழாக்கம்: இரா. அசோகன் ashokramach@gmail.com

நன்றி

  1. How to Contribute to Open Source Projects – A Beginner’s Guide

இத்தொடரில் அடுத்த கட்டுரை: எத்தனை பேர் கவனம் வைத்தால் சிக்கலை அடக்கியாள முடியும்

மூல-விழிப்புணர்வு இல்லாத (non–source-aware) பயனர்கள் வழுவை மீள்உருவாக்கும் செயல்படிகளைத் தருவதில்லை. மூல-நிரல் அளவில் வழு நிலைகளின் கோடி காட்டும் குணாதிசயத்தை வைத்தே புரிந்துகொள்ள இயலும். மென்பொருள் திட்டம் தாமதமாகிறதே என்று கூடுதல் நிரலாளர்களைச் சேர்த்தால் அது மேலும் தாமதமாகும். மூல-நிரல்-நிலையில் வழு அறிக்கை செயல்திறன் மிகுந்ததாக இருப்பதற்குப் பல காரணங்கள் உள்ளன. தடயப் பாதைகளைப் (trace paths) பின்தொடரப் பலர் இணையாக முயற்சி செய்வதால் வழு நீக்கல் எளிதாகிறது.

%d bloggers like this: