தேவாலயமும் சந்தையும் -1

தேவாலயமும் சந்தையும் – 1

எரிக் எஸ் ரேமண்ட்

Home page of Eric S Raymond

Original version ofHYPERLINK “http://web.archive.org/web/20060622233414/http://www.catb.org/~esr/writings/cathedral-bazaar/”The cathedral and the bazaar

தமிழில் : தியாகராஜன் சண்முகம் citizenofgnu@gmail.com

முகவுரை

லினக்ஸ், ஒ௫ புரட்சிகரமான படைப்பு. இணையத்தின் வாயிலாக புவியின் பல்வேறு பகுதியில் இருந்து மென்பொருள் படைப்பாளிகள் உருவாக்கிய ஓர் இயங்குதளம் (Operating system). லினக்ஸுக்கு 1993 ஆம் வருடம் நான் அறிமுகமானேன். இதற்கு முன்பு பத்து வருடங்களாக நான் யுனிக்ஸ் மற்றும் திறமூல மென்பொருள் (Open Source Software) வளர்ச்சியில் என்னை அர்ப்பணித்துக் கொண்டிருந்தேன். திறமூல மென்பொருட்களின் வளர்ச்சி பாதையில் 1980 ஆம் ஆண்டில் இருந்த படைப்புகளில் எனக்கும் பங்கு உண்டு. இணையத்தின் வாயிலாக நெட் ஹேக்(nethack), விசி(Emacs’s VC), குட் மோட்(GUD modes),எக்ஸ்-லைப்(xlife) மற்றும் வேறு சில மென்பொருட்களில் நான் படைப்பாளியாகவும், இணை படைப்பாளியாகவும் பணியாற்றியுள்ளேன். இதன் காரணமாக இந்த மென்பொருட்கள் எப்படி உருவாக்கப்பட்டன என்று எனக்கு நன்றாகத் தெரியும். யுனிக்ஸ் மற்றும் அதன் சார்ந்த சிறு மென்பொருள் உபகரணங்கள் உருவாக்கும் முறையை நான் பறைசாற்றிக் கொண்டிருந்த வேளையில் லினக்ஸ் உருவாக்கும் முறை என் சித்தாந்தங்களை மாற்றி அமைத்தது. இயங்குதளங்கள் மற்றும் இமேக்ஸ் போன்ற மென்பொருட்கள் உருவாக்கும் முறையும், அவைகள் ஒருங்கிணைந்த மென்பொருள் வடிவமைக்கும் முறையும் (Integrated Software Development), மென்பொருட்கள் முழுமையாக வடிவமைக்கும் வரை அதன் பிரதிகள் வெளியிடாமல் அவை முழுமையடைந்த பின் அதனை வெளியிடுதல். இவ்வண்ணம் மென்பொருள் உருவாக்கும் முறைகள் என் சித்தாந்தங்களாக இருந்தன . இவைகளை லினக்ஸ் உருவாக்கும் முறை மாற்றி அமைத்தது.

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

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

தடைகளைத்தாண்டி மின்னஞ்சல்செல்லவழியுண்டா?


1993
ஆம் ஆண்டு வாக்கில், பென்சில்வேனியாவில் உள்ள மேற்கு செஸ்டரில் உள்ள செஸ்டர் கௌண்டி இன்டர் லிங்க் (Chester County InterLink – CCIL), சுருக்கமாக சி.சி..எல் என்னும் இலவச இணைய வசதி சேவை நிறுவனத்திற்கு நான் பணியாற்றினேன். சி.சி..எல்-ஐ உருவாக்கியதில் இணை படைப்பாளியாக, என் பங்களிப்பைத் தந்துள்ளேன். சி.சி..எல்-ல் உள்ள பல பயனர்களின் தகவல் பரிமாற்ற சேவையான பி.பி.எஸ் (Bulletin Board Service – BBS)-ஐ நான் வடிவமைத்துள்ளேன். நீங்கள் locke.ccil.org என்னும் தளத்திற்கு டெல்நெட்(telnet) செய்வதன் மூலம், இந்த சேவையைப் பார்க்கலாம். இன்று சுமார் மூவாயிரம் பயனர்களுக்கு முப்பது தொலைபேசியின் வாயிலாக, பி.பி.எஸ் இணைய சேவையை அளிக்கிறது. இணையத்தின் வாயிலாக மின்னஞ்சல் பெறுவது எனக்குப் பழக்கமான ஒன்று. ஆனால் என் கணினியிலிருந்து (ஸ்நார்க்என் கணினியின் பெயர்) ஒவ்வொரு முறையும் நான் டெல்நெட் முறையில் என் மின்னஞ்சலைப் பார்க்க வேண்டியிருந்தது . இதற்கு ஒரு மென்பொருள் தேவைப்பட்டது. அந்த மென்பொருள் குறிப்பிட்ட கால இடைவெளியில் அவ்வப்போது சி.சி..எல் நெட்வொர்க்கின் locke.ccil.org தளத்தைத் தொடர்பு கொண்டு, எனக்குரிய மின்னஞ்சலை எடுத்து, அதை என் கணினியில் (ஸ்நார்க்கில்) சேர்க்க வேண்டும்.

இணையத்தில் எஸ்.எம்.டி.பி ப்ரோடோகால் வழியாக என் மின்னஞ்சலை எடுக்க இயலாது. ஏனென்றால் முழு நேர இணைய வசதி இருந்தால் தான், எஸ்.எம்.டி.பி ப்ரோடோகால் சிறப்பாக செயல்படும். என் கணினிக்கு முழு நேர இணையத் தொடர்பு வசதியோ, நிலையான ஐபி முகவரியோ கிடையாது. எனவே எனக்குத் தேவையானதெல்லாம், அவ்வப்போது சி.சி..எல் நெட்வொர்க்கைத் தொடர்பு கொண்டு, என் மின்னஞ்சலை எடுத்து, என் கணினியில் சேர்க்க, ஒரு மென்பொருள். இத்தகைய வசதி கொண்ட மென்பொருள் உண்டு என்று எனக்கு தெரியும். இத்தகைய மென்பொருளின் தகவல் பரிமாற்றத்துக்குப் பயன்படுத்தப்படும் சங்கேத மொழியை போஸ்ட் ஆபிஸ் ப்ரோடோகால் (பாப் கிளைண்ட் – POP CLIENT)என்று அழைப்பர் . இன்று பாப் கிளைண்ட் மின்னஞ்சலைக் கையாளும் மென்பொருட்களில் பிரபலமாக உபயோகிக்கப்படுகின்றது. ஆனால் அக்கால கட்டத்தில் என் மின்னஞ்சலைக் கையாளும் மென்பொருளில், பாப் கிளைண்ட் தொழிற்நுட்பம் இல்லை. உடனடியாக எனக்குத் தேவையான மென்பொருளை இணையத்தில் தேட ஆரம்பித்தேன். மூன்று அல்லது நான்கு பாப் கிளைண்ட் தொழிற்நுட்பத்தை கொண்ட மென்பொருளைக் கண்டு அறிந்தேன் . ஆனால் ஒன்று கூட என் தேவையை சரியாகப் பூர்த்தி செய்யவில்லை. நான் இணையத்தில் கண்டறிந்த பாப் கிளைண்டில் சிக்கல் இருந்தது. பிரச்சனை என்னவென்றால், ஜோ என்பவர் locke.ccil.org என்னும் நெட்வொர்க்கிலிருந்து எனக்கு அனுப்பிய மின்னஞ்சலுக்கு நான் பதில் எழுதி அனுப்பினால், அது locke.ccil.org நெட்வொர்க்கில் உள்ள ஜோவிற்கு போகாமல், என் கணினியில் ஜோ என்னும் இல்லாத நபருக்கு பதில் மின்னஞ்சலை அனுப்பியது. இதனால் நான் அனுப்பும் மின்னஞ்சலுக்கு, அதன் முகவரியில் பயனர் பெயருடன் மின்னஞ்சலின் நெட்வொர்க் பெயரும் கட்டாயமானது ( joe@ccil.org). இவ்வண்ணம் நான் எழுதும் ஒவ்வொரு பதில் மின்னஞ்சலுக்கும் அதன் முகவரியில் நெட்வொர்க்கின் பெயரைச் சேர்த்து, கையால் டைப் செய்வது கடினமான வேலையாக இருந்தது. இந்நிலையில் இணையத்தில் எனக்கு கிடைக்கப் பெற்ற மென்பொருட்கள் எல்லாம், என் தேவைக்கு நேரடி தீர்வாக அமையவில்லை. இவைகள் நமக்கு சில படிப்பினையைத் தந்தன.

1. மென்பொருளின் சிறப்பம்சங்கள், அவைகளின் படைப்பாளிகளின் தனிப்பட்டத் தேவையைப் பொறுத்தே அமைகின்றன.

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

2. தன் தேவைக்கேற்ப எப்படி மென்பொருளை வடிவமைப்பது என்று அறிந்தவர், நல்ல நிரலாளர்(Programmer). ஏற்கனவே உள்ள மென்பொருள் நிரல்களை எப்படி மாற்றியமைத்து உபயோகிப்பது என்று அறிந்தவர், சிறந்த நிரலாளர்..

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

என்னுடைய இரண்டாவது தேடல் மூலம் இணையத்தில் இருந்து ஒன்பது திறமூல மென் பொருட்களை கண்டு அறிந்தேன். அவைகள் ஃபெச்பாப்(fetchpop), பாப் டார்ட்(PopTart), கெட்-மெயில்(get-mail), ஜி டபள்யூ பாப்(gwpop), பிம்ப்(pimp), பாப்-பேர்ல்(pop-perl), பாப் சி(popc), பாப் மெயில்(popmail) மற்றும் யூ பாப்(upop). ஃபெச்பாப்-ஐ எழுதியவர் சியாங் ஹாங் ஒ. ஃபெச்பாப், என் தேவையைப் பூர்த்தி செய்வதில் நெருங்கி இருந்தது. இதனை என் தேவைக்கேற்ப மாற்றி அமைத்தேன். இதை இதன் ஆசிரியர் சியாங் ஹாங் தன்னுடைய 1.9 வெளியீட்டில் ஏற்றுக்கொண்டார். சில வாரங்கள் கழிந்த பின், ஃபெச்பாப் மென்பொருளில் சில குளறுபடிகளைக் கண்டறிந்தேன். ஃபெச்பாப், பாப்3(pop3) ப்ரோடோகாலை மட்டுமே கையாளக் கூடியதாக இருந்தது. மேலும் ஃபெச்பாப்-ன் நிரல் மிகவும் அனுபவம் இல்லாத நபர் எழுதியது போல் இருந்தது. சியாங் ஹாங் மதிநுட்பம் கொண்டவராகவும், அனுபவம் இல்லாதவராகவும் இருந்தார். அவருடைய படைப்பின் மூலம் நான் இதை உணர்ந்தேன். கார்ல் ஹாரிஸின் படைப்பான பாப்கிளைண்டை நான் கண்டறிந்தேன். கார்லின் படைப்பு மிகவும் நேர்த்தியாக வடிவமைக்கப்பட்டு இருந்தது. ஆனால் ஃபெச்பாப்பில் உள்ள அம்சங்கள் கார்லின் படைப்பான பாப்கிளைண்டில் இல்லை. ஃபெச்பாப்புடன் இருப்பதா? அல்லது அதை துறப்பதா? துறந்தால், ஃபெச்பாப்பில் நான் எழுதிய நிரல்களை இழக்க வேண்டும். ஒரு நல்ல மென்பொருளை உருவாக்க, துறப்பது சரியா? ஃபெச்பாப்பை துறப்பதற்கு சில முக்கிய காரணங்கள் இருந்தது. அது பல ப்ரோடோகால்களை அந்த மென்பொருளால் கையாள முடியும். ஃபெச்பாப்பில் பாப்2, ஆர் பாப் மற்றும் ஏ பாப் போன்ற ப்ரோடோகால்களுக்கு வசதியில்லை. ஐ மேப் (IMAP- Internet Message Access Protocol)-ஐப் பற்றி எனக்கு சுமாராக தகவல் தெரிந்து இருந்தது. ஆர்வமிகுதியால் என் மென்பொருளில் இந்த வசதியைச் சேர்க்க நினைத்தேன். நல்ல மென்பொருளை உருவாக்க என் முயற்சியில் சிலவற்றைத் துறப்பதில் எனக்கு உடன்பாடு இருந்தது. இது லினக்ஸை தழுவுவதற்கு முன் நான் கற்றறிந்தது.

 

– தொடரும்……

%d bloggers like this: