பேராலயமும் சந்தையும் 3. அஞ்சல் போய்ச் சேர்ந்தாக வேண்டும்

1993 ஆம் ஆண்டு முதல் பென்சில்வேனியாவின் வெஸ்ட் செஸ்டரில் செஸ்டர் கவுண்டி இண்டர்லிங்க் (CCIL) என்ற சிறிய இலவச இணைய சேவையகத்தின் தொழில்நுட்ப வேலையைச் செய்து வருகிறேன். நான் CCIL இன் நிறுவனர்களில் ஒருவன். எங்களின் தனித்துவமான பல பயனர் அறிக்கைப் பலகை (multiuser bulletin-board) மென்பொருளையும் நானே எழுதினேன். நீங்கள் அதை locke.ccil.org க்கு டெல்நெட் (telnet) செய்து பார்க்கலாம். இன்று இது முப்பது இணைப்புகளில் சுமார் மூவாயிரம் பயனர்களை ஆதரிக்கிறது. இந்த வேலை CCIL இன் 56K தொடர்பு மூலம் 24 மணி நேரமும் இணையத்தை அணுக என்னை அனுமதித்தது. உண்மையில், இந்த வேலை அதைக் கோரியது!

Eric-S-Raymond

பேராலயமும் சந்தையும் மூல நூலாசிரியர் எரிக் ரேமண்ட்

நான் உடனடி இணைய மின்னஞ்சலுக்கு மிகவும் பழகிவிட்டேன். எனக்கு மின்னஞ்சல் ஏதாவது வந்ததா என்று பார்க்க அவ்வப்போது டெல்நெட் மூலம் லாக் இல் (locke.ccil.org) புகுபதிகை செய்வது எரிச்சலூட்டுவதாக இருந்தது. நான் விரும்பியது என்னவென்றால் எனது அஞ்சல் எனது வீட்டு அமைப்பான ஸ்னார்க்கில் (snark) வந்து சேர்ந்துவிடவேண்டும். வந்தவுடன் எனக்கு அறிவிப்பு வரும். எனது கணினியில் உள்ள எல்லாக் கருவிகளையும் பயன்படுத்தி என்னால் அதைக் கையாள முடியும்.

இணையத்தின் வழக்கமான அஞ்சலை மேலனுப்பும் நெறிமுறை SMTP (Simple Mail Transfer Protocol) இந்த வேலைக்குத் தோதாகாது. ஏனெனில் இதற்குக் கணினிகள் முழுநேரமும் இணையத்தில் இருக்க வேண்டும். எனது கணினி எப்போதும் இணையத்தில் இருக்காது. மேலும் அதற்கு நிலையான ஐபி (IP) முகவரியும் கிடையாது. எனக்குத் தேவையானது என்னவென்றால் எனது இடைவிட்ட அழைப்புவழி இணைப்பு (intermittent dialup connection) மூலம் தொடர்புகொண்டு எனது மின்னஞ்சலை இழுத்துக் கொண்டு வந்து சேர்க்கும் ஒரு நிரலாகும். இதுபோன்ற நிரல்கள் இருப்பதும் மேலும் அவற்றில் பெரும்பாலானவை POP (Post Office Protocol) என்ற எளிய பயன்பாட்டு நெறிமுறையைப் பயன்படுத்துகின்றன என்பதும் எனக்குத் தெரியும். POP இப்போது பொதுவான அஞ்சல் பயனர் மென்பொருட்களால் பரவலாக ஆதரிக்கப்படுகிறது. ஆனால் அந்தக் காலகட்டத்தில் என்னிடமிருந்த அஞ்சல் மென்பொருளில் அந்த அம்சம் இல்லை.

எனக்கு POP3 பயனர் மென்பொருள் தேவைப்பட்டது. எனவே நான் இணையத்தில் தேடி ஒன்றைக் கண்டுபிடித்தேன். உண்மையில் நான் மூன்று அல்லது நான்கைக் கண்டுபிடித்தேன். அவற்றில் ஒன்றைச் சில காலம் பயன்படுத்தினேன். ஆனால் அதில் ஓர் அவசியமான அம்சம் இல்லை. பதிலஞ்சல் சரியான முகவரிக்குத் திரும்பிப் போய்ச்சேருமாறு வந்த மின்னஞ்சலில் உள்ள முகவரிகளைக் கொந்தும் (hack) திறன் இல்லை.

பிரச்சினை இதுதான். லாக் (locke.ccil.org) இல் `ஜோ’ என்ற ஒருவர் எனக்கு மெயில் அனுப்பினார் என்று வைத்துக்கொள்வோம். நான் ஸ்நார்க்கில் மின்னஞ்சலைப் பெற்று, அதற்குப் பதிலளிக்க முயன்றால், எனது அஞ்சல் மென்பொருள் அதை ஸ்னார்க்கில் இல்லாத `ஜோ’ வுக்கு அனுப்புவதற்கு முயற்சி செய்யும். இதைக் கையாள்வதற்காக பதில் முகவரி ஒவ்வொன்றிலும் <@ccil.org> சேர்த்துக் கையால் திருத்துவது பெரிய தலைவலியாக ஆகியது.

இது நிச்சயமாக கணினி எனக்குச் செய்து தரவேண்டிய வேலை. ஆனால் அப்போதிருந்த POP பயனர் மென்பொருள் எதற்கும் இதை எப்படிச் செய்வதென்று தெரியவில்லை! இதுதான் நமக்கு முதல் பாடம்:

மணிமொழி 1. எந்தவொரு நல்ல மென்பொருள் திட்டமும் நிரலாளரின் சொந்தத் தலைவலிகளைத் தீர்த்து வைப்பதன் மூலம்தான் தொடங்குகிறது.

தேவையே கண்டுபிடிப்பின் தாய்

இது கண்கூடாகத் தெரிந்திருக்க வேண்டும். “தேவையே கண்டுபிடிப்பின் தாய் (Necessity is the mother of invention)” என்பது நீண்ட காலமாக உள்ள பழமொழிதானே. ஆனால் பெரும்பாலும் மென்பொருள் உருவாக்குநர்கள் தங்களுக்குத் தேவையில்லாத மற்றும் விரும்பாத திட்டங்களில் ஊதியத்திற்காகத் தங்கள் நாட்களைக் கழிக்கிறார்கள். ஆனால் லினக்ஸ் உலகில் இவ்வாறு இல்லை. இது லினக்ஸ் சமூகத்தில் உருவாகும் மென்பொருட்களின் சராசரி தரம் ஏன் உயர்வாக உள்ளது என்பதை விளக்கக்கூடும். 

எனவே, ஏற்கனவே உள்ளவற்றுடன் போட்டியிடும் வகையில் நான் உடனடியாகப் புத்தம் புதிய POP3 பயனர் மென்பொருளை ஆவேசமாக எழுதத் தொடங்கினேனா? நிச்சயமாக இல்லை! நான் கையில் வைத்திருந்த POP பயன்பாட்டு நிரல் தொடர்களைக் கவனமாகப் பார்த்தேன். “நான் விரும்புவதற்கு மிக நெருக்கமானது எது?” என்பதுதான் கேள்வி. ஏனென்றால்:

மணிமொழி 2. நல்ல நிரலாளர்களுக்கு என்ன எழுதுவது என்று தெரியும். தலை சிறந்த நிரலாளர்களுக்கு எதை எடுத்துத் தனக்குத் தோதாக மாற்றி எழுதிக்கொள்வது என்று (மீண்டும் பயன்படுத்தவும்) தெரியும்.

தலை சிறந்த நிரலாளர்களின் முக்கியமான பண்பு ஆக்கப்பூர்வமான சோம்பல்

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

எடுத்துக்காட்டாக, லினக்ஸை (Linux) முதலில் இருந்து எழுத லினஸ் டோர்வால்ட்ஸ் (Linus Torvalds) முயற்சிக்கவில்லை. மாறாக, தனிநபர் கணினிகளுக்கான யூனிக்ஸ் போன்ற ஆனால் சிறிய இயங்குதளமான மினிக்ஸின் (Minix) நிரல் மற்றும் யோசனைகளை மீண்டும் பயன்படுத்துவதன் மூலம்தான் தொடங்கினார். இறுதியில் அனைத்து மினிக்ஸ் நிரல்களும் வழக்கொழிந்து போயின அல்லது முழுமையாக மீண்டும் எழுதப்பட்டன. எனினும் அது இருந்தவரை இறுதியில் லினக்ஸாக ஆகிய படரத் தொடங்கிய கொடியை மினிக்ஸ் பந்தலாகத் தாங்கியது. 

அதே நோக்கத்தில், அடித்தளமாகப் பயன்படுத்த, ஓரளவு நல்ல நிரல் கொண்ட ஏற்கனவே உள்ள POP செயலியைத் தேடினேன்.

யூனிக்ஸ் / லினக்ஸ் உலகின் மூலப் பகிர்வு பாரம்பரியம் எப்போதும் நிரல் மறுபயன்பாட்டிற்கு ஒத்தாசையாகவே இருந்து வருகிறது

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

எனக்கும் அது பலன் தந்தது. நான் முன்பு கண்டறிந்தவைகளையும் சேர்த்து, எனது இரண்டாவது தேடலில் fetchpop, PopTart, get-mail, gwpop, pimp, pop-perl, popc, popmail மற்றும் upop ஆக மொத்தம் ஒன்பது சாத்தியக்கூறுகள் கிடைத்தன. நான் முதன்முதலில் தேர்வு செய்தது சூங்-ஹோங் ஓ (Seung-Hong Oh) எழுதிய ஃபெட்ச்பாப் (fetchpop). நான் அதில் எனது தலைப்பு திரும்ப எழுதும் (header-rewrite) அம்சத்தைச் சேர்த்தேன், மேலும் பல மேம்பாடுகளையும் செய்தேன். அதை அதன் படைப்பாளர் தனது 1.9 வெளியீட்டில் ஏற்றுக்கொண்டார்.

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

ஃபெட்ச்பாப்பிலேயே தொடர்வதா அல்லது மாறுவதா? ஒரு சிறந்த மேம்பாட்டு அடிப்படைத் தளத்திற்கு நான் மாறினால் அதன் விளைவாக நான் ஏற்கனவே செய்த நிரல்களைத் தூக்கி எறியவேண்டி வரும்.

மாறுவதற்கு ஒரு நடைமுறை நோக்கம் பல-நெறிமுறை ஆதரவு (multiple-protocol support) இருந்தது ஆகும். POP3 என்பது அஞ்சல்நிலைய வழங்கி நெறிமுறைகளில் பொதுவாகப் பயன்படுத்தப்படுகிறது, ஆனால் அது மட்டும்தான் என்று அல்ல. ஃபெட்ச்பாப் மற்றும் பிற போட்டி செயலிகள் POP2, RPOP அல்லது APOP ஐச் செய்யவில்லை. மேலும் வேடிக்கைக்காக IMAP (Internet Message Access Protocol, மிகச் சமீபத்தில் வடிவமைக்கப்பட்ட மற்றும் மிகவும் சக்திவாய்ந்த அஞ்சல்நிலைய நெறிமுறை) ஐச் சேர்ப்பது பற்றிய லேசான யோசனையும் எனக்கு ஏற்கனவே இருந்தது.

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

மணிமொழி 3. முதல் முயற்சியைத் தூக்கி எறியத் திட்டமிடுங்கள்; எப்படியும் நீங்கள் அதைச் செய்யவேண்டி வரும். (ஃப்ரெட் புரூக்ஸ் (Fred Brooks), ஒரு நபரின் ஒரு மாத வேலை என்ற கட்டுக்கதை (The Mythical Man-Month), அத்தியாயம் 11)

முதல் முறை ஒரு தீர்வைச் செயல்படுத்தும் வரை பிரச்சினையை முழுமையாகப் புரிந்து கொள்ள மாட்டீர்கள்

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

சரி (என்று எனக்கே சொல்லிக் கொண்டேன்), ஃபெட்ச்பாப்பில் செய்த மாற்றங்கள் எனது முதல் முயற்சி. ஆகவே நான் பாப்கிளையன்டுக்கு மாறினேன்.

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

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

உங்கள் மனப்பாங்கு சரியாக இருந்தால், சுவாரசியமான திட்டங்கள் உங்களைத் தானே தேடி வரும்

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

மணிமொழி 4. உங்கள் மனப்பாங்கு சரியாக இருந்தால், சுவாரசியமான திட்டங்கள் உங்களைத் தானே தேடி வரும். 

ஆனால் கார்ல் ஹாரிஸின் மனப்பாங்கு அதைவிட முக்கியமானது. அவர் இந்த மணிமொழியைப் புரிந்து கொண்டார்

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

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

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

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

நன்றி

  1. LWN Feature Article – Eric Raymond Interview

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

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

%d bloggers like this: