மொழியியல் மென்பொருள் உருவாக்கத்தில் இலகு மென்நிரல்கள்
Language computing with lightweight Scripting languages
நிரல் மொழிகள் மூலம் எப்படிப்பட்ட மென்பொருளையும் உருவாக்க இயலும். இப்படி எல்லா செயல்பாடுகளையும் பெறுவதற்காக சிலயிடங்களில் சில சமரசங்களையும் (அளவு, வேகம், சார்பு/ dependency) செய்துகொள்ள வேண்டியுள்ளது. இவற்றில் பெரும் தலைவலியாக இருப்பது சார்பு. அது ஒரு இயக்கச்சூழலைச் சார்ந்ததாகவும் இருக்கலாம். அல்லது மென்பொருள், துணைநிரல்கள்(libraries/ frameworks), பயனர் மொழி (ஒருங்குறிக்கு/unicode ஆதரவில்லாமல் இருப்பது)என எதையோ சார்ந்து பிரச்சனைகளைக் கூட்டிக்கொண்டே போகலாம்.
சி, சி++, சி#, ஜாவா, விபி, விபி.நெட்... போன்றவை நிரல் மொழிகள் பிரிவில் வருபவை.
ஜாவா ஸ்க்ரிப்ட், பேர்ல், விபி ஸ்க்ரிப்ட் போன்றவற்றை இலகு மென்நிரல்கள் எனக் கொள்ளலாம்.
இன்னும் பி.எச்.பி, பைத்தான்... என திறமூல உலகிலிருந்து பெற்றவையும் ஏராளம்.
இதில் எந்த மொழியில் மென்பொருட்களை உருவாக்குவது?
இவை ஒவ்வொன்றிலும் அதன் சாதக பாதக அம்சங்கள் தனித்தன்மையுடன் நிறைந்திருக்கின்றன. இந்த தலைப்பிற்கும் தமிழ் மென்பொருட்களுக்கும் என்ன சம்பந்தம் என்று கேட்கிறீர்களா. இல்லாவிட்டால் தொடர்பு படுத்திக் கொள்வோம்.நிரல் மொழிகளில் உள்ள அதீத திறன் நிரல் உருவாக்குபவர்களை பெரிதும் கவர்கிறது. அதற்குத் துணை புரியும் வகையில் என்னற்ற நிரலாக்க கருவிகளும் (programming tools/IDE) கிடைக்கின்றன. ஆனால் இதன் அடுத்தப் பக்கத்தில், இதில் உருவாக்கப்படும் நிரல்கள் சாமாணியப் பயனாளரை எளிதில் சென்றடைவதில்லை. பெரியளவில் மென்பொருட்களைத் தயாரிக்கும் மென்பொருள் நிறுவங்களில் இவற்றின் தேவைக்கு என்றும் குறைவிருக்காது என்பதற்கு எந்தவொரு மாற்றுக் கருத்தும் இல்லை.
எனினும் நிரல் மொழிகளைவிட இலகு மென்நிரல்களை அனைத்து இயக்கச் சூழல்களிலும் இயக்குவது சற்று சுலபமாகும். புதிதாய்க் கற்றுக் கொள்பவரும் எளிதாகக் கற்றுக் கொள்ளலாம்.
தேடுபொறிகள்(search engines), எழுத்திலிருந்து பேச்சோலி(text to speech), பேச்சிலிருந்து எழுத்து (speech to text), நிறுவனப் பயன்பாடுகள் (enterprise applications) போன்றக் கடினமான பணிகளுக்கு நிரல் மொழிகளில்தான் எளிவானத் தீர்வைத் தரயியலும். ஏனெனில் இலகு மென்நிரல்களில் அதற்கான வாய்ப்புகள் குறைவே. அதற்காக இலகு மென்நிரல்களின் வீச்சையும் ஒரேயடியாக ஒதுக்கிவிட முடியாது. இன்று பெரும்பாலும் இடைமுகப்பு(interface) பணிகளுக்கு மட்டுமே(அதிலும் இணையத்தில் இதன் பங்கு பெரிது) பயன்படுத்தப்பட்டு வருகின்றது.
இந்தக் கட்டுரையின் நோக்கம் அன்றாடப் பயன்பாடுகளுக்கான சிறுநிரல்களை இலகு மென்நிரல்களில் கிடைக்கச் செய்திடல் வேண்டும். எடுத்துக்காட்டிற்கு தமிழ் தட்டச்சை எடுத்துக் கொள்வோம். தமிழ் மட்டும் என்றல்ல எந்தவொரு மொழியையும் (ஆங்கிலத்திற்கு இயல்பாகவே கிடைத்து விட்டது) கணினியில் உள்ளீடு செய்வதற்கு ஒரு சிறப்பு மென்பொருள் (keyboard driver/IME-Input Method Editor) வேண்டும். இவற்றை இணையப் பக்கங்களிலிருந்து நேரடியாகவே உள்ளீடு செய்வதற்கும் வசதிகள் உள்ளன (suratha,quillpad) போன்ற இணைய தளங்கள். அதே பயன்பாடு இலகு மென்நிரலில்(ஜாவா ஸ்க்ரிப்ட் எடு: ILC Indian Language Computing தீர்வுகள்) நம் கணினியில் இருந்தால் இணைய இணைப்பு இல்லையென்றாலும், அதனை எளிமையாகப் பயன்படுத்திக் கொள்ள முடியும். மேலும் இலகு மென்நிரல்கள் குறைந்த அளவு இடத்தையே எடுத்துக் கொள்ளும். கணினியை இயக்க பயப்படுவர்கள்கூட (பெரியவர்கள், வேறு துறையைச் சார்ந்தவர்கள்...) மிக எளிமையாக பயன்படுத்திக் கொள்ளமுடியும்.
அவர்களிடம் நிறுவதற்கு .நெட் வேண்டும், ஜாவா வேண்டும், க்யூடி, இடம், இணையம்,அது-இது-தைரியம் எல்லாம் வேண்டும் என பயமுறுத்துவதற்கு பதில் சொடுக்கினால் (click & use)பயன்படுத்த ஆரம்பித்துவிடலாம் என்பதுபோல் தந்திடல் வேண்டும். இல்லையெனில் இயக்கச் சூழலிலேயே அவற்றை உட்பொதிந்து கொடுக்கப் படவேண்டும். அவ்வாறு செய்தால் மட்டும்தான் அது கணினியில் தாய்மொழியை உள்ளீடு செய்வதற்கு ஏற்ற சூழலாக அமையும்.
ஜாவா ஸ்க்ரிப்டில் செய்தால் மட்டும் அனைத்து உலாவிகளிலும் இயங்கி விடுமா என்ன? அதற்குத்தான் இருக்கவே இருக்கின்றன துணைநிரல்கள். தங்கள் மென்பொருள் உருவாக்கத்திற்கு துணைநிரலையும்(எடு: jQuery...) திறமூலத் தீர்வாக தேர்ந்தெடுப்பது அவசியம். யார் வேண்டுமானாலும் மென்பொருளில் மாற்றம் செய்யலாம் என்பது எவ்வளவு பெரிய சுதந்திரம். தொட்டதெற்கெல்லாம் சி#, விபி.நெட் ... போன்ற தனியார் தீர்வுகளின் அவசியமென்ன?
ஜாவா ஸ்க்ரிப்ட் (ECMA Script தகுதரப்படுத்தப் பட்டது/standardized) அறிந்த நண்பர்கள் கொஞ்சம் மனது வையுங்கள். இல்லையேல் கற்றுக் கொள்ளுங்கள் உங்களுக்காகவும், ஊருக்காகவும். jQuery தளத்தில் தேடிப் பார்த்தால் நம் மொழியைத் தவிர அனைத்து மொழிகளிலும் ஏராளமான கட்டுரைகளும், எடுத்துக்காட்டுகளும் உள்ளது. அத்தளத்தை ஒரு நோட்டம் விடவும்.
http://www.tamilcpu.blogspot.com/
http://groups.google.com/group/tamilcpu
http://groups.google.com/group/freetamilcomputing