லினஸின் செயல்முறையை நுட்பமாக ஆய்வு செய்து, அது ஏன் வெற்றிகரமாக இருந்தது என்பது பற்றிய ஒரு கோட்பாட்டை உருவாக்கினேன். பிறகு, எனது புதிய திட்டத்தில் (லினக்ஸ் அளவுக்குச் சிக்கலானதோ அல்லது பெரிய அளவிலானதோ இல்லை என்றாலும் கூட) இக்கோட்பாட்டைச் சோதிக்கத் தெரிந்தே ஒரு முடிவை எடுத்தேன்.
நிரலை மையமாகவும், தரவுக் கட்டமைப்புகளை நிரலுக்கு ஆதரவாகவும் கருதினார்
ஆனால் நான் செய்த முதல் வேலை, பாப்கிளையன்டை மறுசீரமைத்து எளிமைப்படுத்துவதுதான். கார்ல் ஹாரிஸின் செயலாக்கம் மிகவும் நன்றாக இருந்தது, ஆனால் பல C நிரலாளர்களுக்குப் பொதுவான தேவையற்ற சிக்கலை வெளிப்படுத்தியது. அவர் நிரலை மையமாகவும், தரவுக் கட்டமைப்புகளை நிரலுக்கு ஆதரவாகவும் கருதினார். இதன் விளைவாக, நிரல் அழகாக இருந்தது, ஆனால் தரவுக் கட்டமைப்பு தற்காலிகமாகவும் அசிங்கமாகவும் இருந்தது (அதாவது இந்த மூத்த LISP கொந்தரின் உயர் தரத்தின்படி).
இருப்பினும், நிரல் மற்றும் தரவுக் கட்டமைப்பு வடிவமைப்பை மேம்படுத்துவதைத் தவிர, மாற்றியெழுதுவதற்கு எனக்கு மற்றொரு நோக்கம் இருந்தது. நான் முழுமையாகப் புரிந்து கொண்ட ஒன்றாக அதைப் பரிணமிக்க வேண்டும். உங்களுக்குப் புரியாத திட்டத்தில் வழுக்களைச் சரிசெய்வதற்குப் பொறுப்பேற்பதில் ஏது மகிழ்ச்சி.
புத்திசாலித்தனம் உள்ள தரவுக் கட்டமைப்புகளும் புத்திசாலித்தனம் இல்லாத நிரலும்
சுமார் ஒரு மாதம் வரை, நான் கார்லின் அடிப்படை வடிவமைப்பின் தாக்கங்களை மட்டுமே பின்பற்றினேன். நான் செய்த முதல் தீவிர மாற்றம் IMAP ஆதரவைச் சேர்ப்பதாகும். நெறிமுறை இயந்திரங்களை (protocol machines) ஒரு பொதுவான இயக்கி மற்றும் மூன்று வழிமுறை அட்டவணைகளாக (POP2, POP3 மற்றும் IMAP க்கு) மறுசீரமைப்பதன் மூலம் இதைச் செய்தேன். இதுவும் முந்தைய மாற்றங்களும் நிரலாளர்கள் மனதில் கொள்ள வேண்டிய பொதுவான ஒரு கொள்கையை விளக்குகின்றன, குறிப்பாக இயற்கையாகவே இயங்குநிலை வகைப்படுத்தல் (dynamic typing) செய்யாத C போன்ற மொழிகளில்:
மணிமொழி 9. புத்திசாலித்தனம் உள்ள தரவுக் கட்டமைப்புகளும் புத்திசாலித்தனம் இல்லாத நிரலும், இதற்கு நேர் மாறாக இருப்பதைவிட, மிகவும் சிறப்பாக வேலை செய்கிறது.
ப்ரூக்ஸ், அத்தியாயம் 9: “உங்கள் பாய்வு விளக்கப்படத்தைக் காட்டுங்கள் ஆனால் உங்கள் அட்டவணைகளை மறைத்து விடுங்கள், எனக்குத் தொடர்ந்து மர்மமாகவே இருக்கும். உங்கள் அட்டவணைகளை எனக்குக் காட்டுங்கள், பொதுவாக உங்கள் பாய்வு விளக்கப்படம் எனக்குத் தேவைப்படாது, அது தெளிவாகத்தான் இருக்கும்.” முப்பது வருடக் கலைச்சொற்கள்/கலாச்சார மாற்றத்தைக் கணக்கில் கொண்டு பார்த்தால், இதுவும் அதே கருத்துதான்.
இந்தக் கட்டத்தில் (செப்டம்பர் 1996, தொடங்கியதிலிருந்து சுமார் ஆறு வாரங்கள்) ஒரு பெயர் மாற்றம் செய்தால் நன்றாக இருக்கும் என்று நான் நினைக்க ஆரம்பித்தேன். எல்லாவற்றிற்கும் மேலாக, இது ஒரு POP பயனர் செயலி மட்டும் அல்ல. ஆனால் நான் தயங்கினேன், ஏனென்றால் வடிவமைப்பில் இதுவரை உண்மையிலேயே புதிதாக எதுவும் இல்லை. எனது பாப்கிளையன்ட் பதிப்பு இன்னும் தன் சொந்த அடையாளத்தை உருவாக்கவில்லை.
டோர்வால்ட்ஸ் சரியாகச் செய்ததைப் பற்றிய எனது கோட்பாட்டை எப்படிச் சோதித்தேன்
பெறப்பட்ட அஞ்சலை SMTP போர்ட்டுக்கு எவ்வாறு அனுப்புவது என்பதை பாப்க்ளையன்ட் கற்றுக்கொண்டபோது அந்த நிலை தலைகீழாக மாறியது. நாம் சிறிது நேரத்தில் அதற்கு வருவோம். ஆனால் முதலில், லினஸ் டோர்வால்ட்ஸ் சரியாகச் செய்ததைப் பற்றிய எனது கோட்பாட்டைச் சோதிக்க இத்திட்டத்தைப் பயன்படுத்த முடிவு செய்தேன் என்று நான் முன்பே சொன்னேன் அல்லவா. நான் அதை எப்படிச் செய்தேன் என்று நீங்கள் தாராளமாகக் கேட்கலாம்? இதோ இந்த வழிகளில்:
- நான் முன்னதாகவும், அடிக்கடியும் வெளியிட்டேன் (ஒவ்வொரு பத்து நாட்களுக்குள்; தீவிர வளர்ச்சியின் போது, ஒரு நாளைக்கு ஒரு முறை).
- ஃபெட்ச்மெயில் பற்றி என்னைத் தொடர்பு கொண்ட அனைவரையும் சேர்த்து எனது பீட்டா பட்டியலை வளர்த்தேன்.
- நான் வெளியிடும் போதெல்லாம் பீட்டா பட்டியலுக்கு பயனர்களைப் பங்கேற்க ஊக்குவிக்கும் வகையில் அரட்டையான அறிவிப்புகளை அனுப்பினேன்.
- எனது பீட்டா சோதனையாளர்களின் கருத்துகளுக்குச் செவி சாய்த்தேன். வடிவமைப்பு முடிவுகளைப் பற்றி அவர்களிடம் கருத்துக் கேட்டேன் மற்றும் அவர்கள் ஒட்டு நிரல்கள் (patch) மற்றும் பின்னூட்டங்களை அனுப்பும் போதெல்லாம் அவர்களைத் தட்டிக் கொடுத்து ஊக்கமளித்தேன்.
இந்த எளிய நடவடிக்கைகள் கைமேல் பலன் அளித்தன
இந்த எளிய நடவடிக்கைகளின் பலன் உடனடியாக இருந்தது. திட்டத்தின் தொடக்கத்திலிருந்தே, மற்ற நிரலாளர்கள் கிடைக்காதா என்று ஏங்கும் தரத்தில், வழு அறிக்கைகளைப் பெற்றேன். அவற்றுடன் பெரும்பாலும் நல்ல வழுத்திருத்தங்களும் இணைக்கப்பட்டிருந்தன. நான் சிந்தனைமிகுந்த விமர்சனங்களைப் பெற்றேன். எனக்கு ரசிகர் அஞ்சல்கள் வந்தன. அறிவார்ந்த அம்சப் பரிந்துரைகளைப் பெற்றேன். இவையெல்லாம் அடுத்த மணிமொழிக்கு வழிவகுக்கின்றன:
மணிமொழி 10. உங்கள் பீட்டா-சோதனையாளர்களை உங்களின் மிகவும் மதிப்புமிக்க வளங்களாக நீங்கள் கருதினால், அவர்கள் உங்களின் மிகவும் மதிப்புமிக்க வளங்களாகவே ஆகிவிடுவார்கள்.
ஃபெட்ச்மெயிலின் வெற்றிக்கான ஒரு சுவாரசியமான அளவீடு திட்ட பீட்டா பட்டியலின் (fetchmail-friends) பெரிய அளவு. இந்தக் கட்டுரைத் தொகுப்பின் சமீபத்திய திருத்தத்தின் போது (நவம்பர் 2000) இது 287 உறுப்பினர்களைக் கொண்டிருந்தது மற்றும் வாரத்திற்கு இரண்டு அல்லது மூன்று பேரைச் சேர்க்கிறது.
உண்மையில், மே 1997 இன் பிற்பகுதியில் நான் திருத்தியபோது, ஒரு சுவாரசியமான காரணத்திற்காக பட்டியல் அதன் அதிகபட்சமான 300 உறுப்பினர்களிலிருந்து இழக்கத் தொடங்கியதைக் கண்டேன். ஃபெட்ச்மெயில் அவர்களுக்கு நன்றாக வேலை செய்வதால், இனி பட்டியல் அஞ்சல்களைப் பார்க்க வேண்டிய அவசியமில்லை என்பதால், பலர் தங்களைக் குழுவிலிருந்து விலக்கச் சொன்னார்கள்! ஒருவேளை இது ஒரு முதிர்ந்த சந்தை-பாணி திட்டத்தின் இயல்பான வாழ்க்கைச் சுழற்சியின் (life-cycle) ஒரு பகுதியாக இருக்கலாம்.
மூலநூல்: The Cathedral and the Bazaar by Eric S. Raymond – version 3.0
தமிழாக்கம்: இரா. அசோகன் ashokramach@gmail.com
நன்றி
இத்தொடரில் அடுத்த கட்டுரை: பாப்கிளையன்ட் ஃபெட்ச்மெயில் ஆகிறது
SMTP போர்ட்டுக்கு அஞ்சலை அனுப்பும் அம்சம் – ஒரு பயனர் எனக்கு இந்த அற்புதமான யோசனையை வழங்கினார். லினஸின் முறைகளை மனப்பூர்வமாகப் பின்பற்ற முயற்சித்ததன் மூலம் நான் பெற்ற மிகப்பெரிய பலன். நீங்கள் உண்மையிலேயே அடக்கமாக இருந்தால், கண்டுபிடிப்பை நீங்களே செய்தீர்கள் என உலகம் முழுவதும் நினைப்பார்கள். இதுநாள்வரைத் தவறான சிக்கலைத் தீர்க்க முயற்சித்து வந்திருக்கிறேன். செயல்திறனை இழக்காமல் செய்ய முடிந்தால், பயனற்ற பழைய அம்சங்களை நீக்கத் தயங்காதீர்கள். வழுத்திருத்தம் போல மேம்பாடும் வடிவமைப்பும் கூட இணையாக செய்யக்கூடியவையே (parallelizable).