பொதுவான மென்பொருள்-பொறியியல் சிக்கல்களுக்குச் செல்வதற்கு முன், ஃபெட்ச்மெயில் அனுபவத்திலிருந்து இன்னும் சில குறிப்பிட்ட பாடங்கள் உள்ளன. தொழில்நுட்பத்தில் நாட்டமற்ற வாசகர்கள் இப்பகுதியைத் தவிர்க்கலாம்.
rc (கட்டுப்பாடு) கோப்பின் தொடரியல் (syntax) விருப்பமைவு செய்யக்கூடிய ‘இரைச்சல்’ குறிச்சொற்களை உள்ளடக்கியது. இவை பாகுபடுத்தியால் (parser) முற்றிலும் புறக்கணிக்கப்படும். இவை அனுமதிக்கும் ஆங்கிலம் போன்ற தொடரியல், பாரம்பரிய சுருக்கமான குறிச்சொல்-மதிப்பு இணைகளை (terse keyword-value pairs) விட, பெரும்பாலும் படிக்கக்கூடியதாக உள்ளது.
rc கோப்பு அறிவிப்புகள் எந்த அளவு ஒரு குறுமொழியை ஒத்திருக்கத் தொடங்குகின்றன என்பதை நான் கவனித்தபோது இவை இரவு நேரப் பரிசோதனையாகத் தொடங்கின. (இதனால்தான் பாப்கிளையன்டின் “வழங்கி (server)” என்ற குறிச்சொல்லை “கேள் (poll)” என மாற்றினேன்).
ஏவல் குறுமொழியை (imperative minilanguage) ஆங்கிலத்தைப் போலவே உருவாக்கலாமா?
அந்த ஏவல் குறுமொழியை ஆங்கிலத்தைப் போலவே உருவாக்க முயற்சிப்பது அதை எளிதாகப் பயன்படுத்த வழி செய்யும் என்று எனக்குத் தோன்றியது. ஈமாக்ஸ் (Emacs), HTML மற்றும் பல தரவுத்தளப் பொறிகள் மூலம் எடுத்துக்காட்டும் வகையில், “அதை ஒரு மொழியாக்கு” வடிவமைப்பு கருத்தில் நான் உறுதியாக இருந்தாலும், நான் பொதுவாக ”ஆங்கிலம் போன்ற” தொடரியல்களின் பெரிய ரசிகன் அல்ல.
பாரம்பரியமாக நிரலாளர்கள் மிகவும் துல்லியமான, கச்சிதமான மற்றும் மிகைமையே (redundancy) இல்லாத கட்டுப்பாட்டுத் தொடரியல்களுக்கு ஆதரவாக உள்ளனர். கணினி வளங்கள் விலையுயர்ந்த காலத்திலிருந்து இது ஒரு கலாச்சார மரபு. எனவே பாகுபடுத்தும் நிலைகள் (parsing stages) முடிந்தவரை மலிவானதாகவும் எளிமையாகவும் இருக்க வேண்டும். ஆங்கிலம், சுமார் 50% மிகைமையுடன், மிகவும் பொருத்தமற்ற மாதிரி போல இருந்தது.
கணினி மொழி கணினிக்கு எளிதாக இருப்பதை விட மனிதர்களுக்கு வசதியாக இருப்பது முக்கியம்
பொதுவாக ஆங்கிலம் போன்ற தொடரியல்களைத் தவிர்ப்பதற்கு இது எனது காரணம் அல்ல. அதைப் பொய்ப்பிப்பதற்காகவே இங்கு குறிப்பிடுகிறேன். கணினிகளின் கணிப்பி அளவு மற்றும் வேகம் மலிவாகி வருவதால், சுருக்கம் ஒரு குறிக்கோளாக இருக்கக்கூடாது. தற்காலத்தில் ஒரு கணினி மொழி கணினிக்கு எளிதாக இருப்பதை விட மனிதர்களுக்கு வசதியாக இருப்பது முக்கியம்.
இருப்பினும், எச்சரிக்கையாக இருக்க நல்ல காரணங்கள் உள்ளன. ஒன்று, பாகுபடுத்தும் கட்டத்தின் கடுஞ்சிக்கல்கள். இது வழுக்கள் மற்றும் பயனர் குழப்பத்தின் குறிப்பிடத்தக்க ஆதாரமாக இருக்கும் அளவுக்கு அதை உயர்த்த விரும்பவில்லை. மற்றொன்று, ஒரு மொழியின் தொடரியலை ஆங்கிலம் போல உருவாக்க முயலும்போது, அது பேசும் ”ஆங்கிலம்” வடிவம் இல்லாமல் கோணலாகியிருக்க வேண்டி வருகிறது. அதனால் இயற்கை மொழியின் மேலோட்டமான ஒற்றுமை பாரம்பரியத் தொடரியல் போலவே குழப்பமடைகிறது. (“நான்காம் தலைமுறை மொழிகள்” மற்றும் வணிகத் தரவுத்தள-வினவல் மொழிகள் (commercial database-query languages) எனப்படும் பலவற்றில் இந்த மோசமான விளைவை நீங்கள் காண்கிறீர்கள்.)
ஃபெட்ச்மெயில் கட்டுப்பாட்டுத் தொடரியல் இச்சிக்கல்களைத் தவிர்க்கிறது, ஏனெனில் மொழியின் களம் மிகவும் கட்டுப்படுத்தப்பட்டுள்ளது. இது ஒரு பொது-நோக்க மொழிக்கு அருகில் இல்லை. இது சொல்லும் சங்கதிகள் மிகவும் சிக்கலானவை அல்ல. எனவே ஆங்கிலத்தின் ஒரு சிறிய துணைப்பிரிவிற்கும் உண்மையான கட்டுப்பாட்டு மொழிக்கும் இடையில் மனதளவில் நகர்வதில் குழப்பம் ஏற்படுவதற்கான சாத்தியக்கூறுகள் குறைவு. இங்கே ஒரு பரந்த பாடம் இருக்கலாம் என்று நினைக்கிறேன்:
16. உங்கள் கணினி மொழி டுரிங் (Turing) முழுமைக்கு அருகில்கூட வராதபோது, தொடரியலை (syntax) எளிமையாக்குவதே சாலச்சிறந்தது.
தெளிவின்மை மூலம் பாதுகாப்பு (security by obscurity) கிடைக்குமா?
மற்றொரு பாடம் தெளிவின்மை மூலம் பாதுகாப்பு பற்றி. சில ஃபெட்ச்மெயில் பயனர்கள் rc கோப்பில் கடவுச்சொற்களை மறைகுறியீடாக்கி (encrypted) சேமிக்குமாறு மென்பொருளை மாற்றும்படி என்னிடம் கேட்டார்கள். ஏனென்றால் ஊடுருவிகள் அவற்றை எளிதாகப் பார்க்க முடியாது.
நான் அதைச் செய்யவில்லை, ஏனெனில் இது உண்மையில் பாதுகாப்பைச் சேர்க்கவில்லை. உங்கள் rc கோப்பைப் படிப்பதற்கான அனுமதிகளைப் பெற்ற எவரும் எப்படியும் உங்களைப் போலவே ஃபெட்ச்மெயிலை இயக்க முடியும்—அவர்கள் உங்கள் கடவுச்சொல்லைப் பின்பற்றினால், அதைப் பெறுவதற்குத் தேவையான குறிவிலக்கியை (decoder) ஃபெட்ச்மெயில் நிரலிலிருந்தே அவர்களால் எடுக்க முடியும்.
.fetchmailrc கடவுச்சொல் மறைகுறியீடானது மிகவும் கடினமாக சிந்திக்காத நபர்களுக்கு இல்லாத பாதுகாப்பு உணர்வைக் கொடுக்கும். இங்கே பொதுவான விதி:
17. ஒரு பாதுகாப்பு அமைப்பு அதன் ரகசியம் அளவுதான் பாதுகாப்பானது. போலி ரகசியங்களில் எச்சரிக்கையாய் இருக்கவும்.
மூலநூல்: The Cathedral and the Bazaar by Eric S. Raymond – version 3.0
தமிழாக்கம்: இரா. அசோகன் ashokramach@gmail.com
நன்றி
இத்தொடரில் அடுத்த கட்டுரை: சந்தை பாணிக்கு அவசியமான முன்தேவைகள்
நிரலாளர்கள் ஓட்டிப்பார்த்து சோதிக்கக்கூடிய நிரல் தொடக்கத்திலேயே இருக்க வேண்டும். நல்ல வடிவமைப்புகளை உருவாக்குவதைவிட மற்றவர்களின் நல்ல யோசனைகளை அடையாளம் காண்பதுதான் முக்கியம். சந்தை திட்டத் தலைவருக்கு நல்ல மானிட உறவு மற்றும் தகவல் தொடர்பு திறன்கள் அவசியம்.