ஆகஸ்ட் 20, 2010

எக்லிப்ஸை ஏன் பயன்படுத்த வேண்டும்? - ஜாவா தொடர்

 எக்லிப்ஸ் ஒருங்கிணைந்த உருவாக்கச் சூழல் ( IDE -Integrated Development Environment) எக்லிப்ஸ் நிறுவனத்தால் (eclipse organization) பராமரிக்கப்பட்டும், மேம்படுத்தப்பட்டும் வருகின்றது.  இது தனியார் மென்பொருள் நிறுவனமல்ல. அப்பாச்சி சாப்ட்வேர் பவுண்டேஷன்  போலவே உலகின் முன்னனி நிறுவன மென்பொருளியலாளர்களையும் வேறு தனியார்/பொது அமைப்புகளையும்,  அதிகளவில் தன்னார்வல மென்பொருள் வல்லுனர்களையும் கொண்ட இலாப நோக்கமற்ற நிறுவனம்.  

ஐ.பி.எம் (IBM - International Business Machines) கோடிக்கணக்கான பணத்தை எக்லிப்ஸ் மேம்பாட்டிற்காக செலவிட்டுள்ளது.  ஐ.பி.எம் இதில் இவ்வளவு அக்கறை காட்ட காரணம் உலகின் அத்தனை ஜாவா நிரலர்களையும் தன்பக்கம் திருப்புவதற்காகவே. 

எக்லிப்ஸின் புதிய பதிப்பு எக்லிப்ஸ் ஹீலியோஸ் (Eclipse Helios) .  நெட்பீன்ஸின் புதிய பதிப்பு v6.9. உபுண்டு இயங்க தளத்திற்கு கருமிக் கோலா, லூசிட் லிங்க்ஸ் போன்று பெயர் வைப்பதைப் போல எக்லிப்சுக்கும் கேனி மேட் (Gany Mede), கலிலியோ (Galileo) , ஹீலியோஸ் (Helios)... என பெயர் வைத்திருக்கிறார்கள்.  நீங்கள் புதிதாக பதிவிறக்கம் செய்வதாயிருந்தால் உங்கள் இயங்குதள பெயருடன் சேர்த்து கூகிளில் தேடி பதிவிறக்கிக் கொள்ளவும். linux eclipse helios download, windows eclipse helios download...

எக்லிப்சை நிறுவதற்கே (installation) தேவையில்லை. எக்லிப்ஸ் சுருக்குக் கோப்பை (compressed file) விரித்தாலே போதுமானது.  எக்லிப்சை முதல்முறை இயக்கிப் பார்ப்பதற்குமுன் உங்கள் கணினியில் ஜே.ஆர்.இ நிறுவப்பட்டிருக்கிறதா என உறுதிசெய்து கொள்ளவும்.  ஏனெனில் எக்லிப்ஸ் ஜாவாவில் உருவாக்கிய மென்பொருள்.  எந்தவொரு ஜாவா நிரலையும்/ மென்கலத்தையும் இயக்க ஜே.வி.எம் மிக மிக அவசியம்.  அந்த ஜே.வி.எம் ஜே.ஆர்.இ க்குள்தான் இருக்கிறது. மறந்துவிடாதீர்கள்.....


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

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

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

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

ஒ.உ.சூ என்று சுருக்கமாகச் சொன்னால் கொஞ்சம் நெருடலாக இருக்கிறது.  எனவே ஐ.டி.இ எனவே இனி குறிக்கிறேன்.   :-) ஹி ஹி.........

எக்லிப்ஸ் மென்பொருள் பார்ப்பதற்கு இப்படித்தான் இருக்கும்.


எக்லிப்சில் ஜாவா நிரல் எழுத முதலில் ஜாவா திட்டம் ஒன்றை உருவாக்க வேண்டும்.
File--->New---->Java Project

பிறகு ஜாவா வகை (.class) உருவாக்க வேண்டும்.  நாம் எழுத வேண்டிய நிரல் கட்டளைகளை இந்த கோப்பில்தான் எழுதுவோம்.   எடுத்துகாட்டிற்கு Factorial.java கோப்பை உருவாக்க முதலில் எக்லிப்ஸ் ஜாவா திட்டத்தை (Java project) உருவாக்கிக் கொள்ளுங்கள்.  பின் நீங்கள் உருவாக்கிய திட்டத்தில் வலது கிளிக் செய்து புது ஜாவா class கோப்பை உருவாக்குங்கள்.


கீழ் காண்பிக்கப் பட்டுள்ளதுபோல் ஒரு திரை தோ ன்றும்.  அதில் Factorial (எ.கா) என தட்டச்சு செய்யவும்.   கவனிக்க Factorial.java இல்லை வெறும் Factorialதான்.    public static void main  என்பதை தேர்வு செய்யவும்.


இன்றும் பலர் ஜாவாவில் முதல் வரியிலேயே தவறு செய்வதுண்டு.  ஏனெனில்  ஜாவா case sensitive மொழி.    String என்று எழுதுவதற்கு பதில் string என எழுதுவது. system, Public, Void.. போன்று பல தவறுகளை செய்வோம்.

சிந்தனைக்கு: தவறே செய்யாத மனிதன் புதியது எதையும் செய்திருக்க மாட்டான்.

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




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


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



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



 நிரல் இயங்கிபின்  வெளியீடையும் (output) இருந்த இடத்திலேயே விரைவாக காண முடியும்.


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

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


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

--தொடரும்

ஆகஸ்ட் 17, 2010

ஜாவாவில் புரொகிராம் செய்ய என்னென்ன அவசியம் தேவை? -- ஜாவா தொடர்

ஜாவா குறித்து அடிப்படைத் தகவல்களைக் கொஞ்சம் தெரிந்து கொண்டு விரைவில் நிரலெழுத குதித்து விடலாம்.  அதற்கு முன்னர் ஜாவா மெய்நிகர் கணினி குறித்து சிறிது தெரிந்து கொள்வோம். 

மேலான விவரங்களுக்கு விக்கீபீடியாவிலிருந்து தெரிந்து கொள்ளுங்கள்.
புதியவர்களுக்கு ஒரு தகவல்: தமிழில் தொழில்நுட்ப தகவல்களைப் பெறத் தமிழிலேயே தேடுங்கள். எடுத்துகாட்டிற்கு java tamil tutorial எனத் தேடுவதற்கு பதில் ”ஜாவா கட்டுரை” போன்ற குறிப்புகளைக் கொடுத்து தேடலாம்.

ஜாவா நிரலை இயக்க என்னென்ன தேவை?

ஜாவா நிரலை எழுதுவதற்கு பெரிதாக ஒன்றும் தேவையில்லை. ஏதேனும் ஒரு உரை பதிப்பி (text editor) இருந்தால் போதுமானது.  எடுத்துகாட்டிற்கு விண்டோசில் நோட்பேடிலும் லினக்சில் ஜிஎடிட், கேஎடிட்டர்,  விஐ... போன்ற மென்கலங்களிலும் எழுதிக் கொள்ளலாம்.  அதை கணினிக்கு புரியும்படி எப்படி மாற்றுவது? (கணினிக்கு அவற்றின் மொழியான இரும மொழி தவிர வேறு மொழி தெரியாது).  உயர்நிலை மொழியிலிருந்து இரும மொழிக்கு (binary/machine language) மாற்ற ஒரு மொழிமாற்றி (compiler) தேவைப்படுகிறது. அதை எப்படிப் பெறுவது? என்ன விலை இருக்கும்?


  javac என்பதுதான் ஜாவாவை மொழிமாற்றும் (கம்பைல் செய்யும்) நிரல்.  இந்த பயன்பாடு ஜே.டி.கே (JDK- Java Development Kit) என்னும் மென்பொருள் தொகுப்புடன் வருகிறது.  நீங்கள் ஜாவாவில் புரோகிராம் செய்ய ஜே.டி.கே மிகமிக அவசியம்.  ஜே.டி.கே இணையத்திலிருந்து இலவசமாக பதிவிறக்கிக் கொள்ளலாம்.  அல்லது டிஜிட்,பிசிகுவெஸ்ட்.. போன்ற ஆங்கில கணினி மாத இதழ்களுடன் வரும் குறுவட்டிலிருந்து பெற்றுக் கொள்ளலாம்.


ஜே.டி.கே தொகுப்பில் ஜே.ஆர்.இ (JRE- Java Runtime Engine) என்கிற துணை தொகுப்பு இருக்கிறது.  ஜாவா நிரலை இயக்குவதற்கு ஜே.ஆர்.இ அவசியமானது.  ஜே.ஆர்.இ நிறுவப்படாத கணினியில் ஜாவா நிரலை இயக்குவதற்கான கட்டளையான java என்பதை விண்டோஸ் கமாண்ட் ப்ராம்ப்டிலோ, லினக்ஸ் டெர்மினலிலோ கொடுத்தால் java: command not found, java not installed போன்ற பிழை செய்தி தோன்றும்.  இந்த பிழைசெய்தி உங்கள் கணினியில் தோன்றினால் ஜாவா நிரல்களை இயக்கக் கூடிய ஜே.ஆர்.இ தொகுப்பு உங்கள் கணினியில் இல்லை என்பதைத் தெரிந்து கொள்ளலாம்.


ஜே.டி.கே இல்லாவிட்டாலும் ஜாவா நிரலை இயக்க முடியும், ஆனால்  ஜே.ஆர்.இ இல்லாமல் முடியாது.

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

சற்று உற்று கவணிக்கவும்.  ஜே.டி.கே இல்லையென்றால் நாம் எழுதிய நிரல்களை மொழிமாற்றம்/ கம்பைல் (ஜாவாவிலிருந்து பைட் நிரலிற்கு) செய்ய இயலாது.  ஜே.ஆர்.இ இல்லையென்றால் பிறர் உருவாக்கி வைத்திருக்கும் (ஏற்கனவே மொழிமாற்றி வைத்திருக்கும்) கோப்புகளையும் இயக்க இயலாது.  ஜே.ஆர்.இயை மட்டும் தனியாக நிறுவிக் கொள்ளலாம், அல்லது ஜே.ஆர்.இயையும் தன்னுள் அடக்கிய பெரிய தொகுப்பான ஜே.டி.கேவை நிறுவிக் கொள்ளலாம்.
  • ஜாவாவில் மென்பொருளை/நிரல்களை உருவாக்க ஜே.டி.கே தேவை.
  • ஜாவாவில் உருவாக்கிய மென்பொருளை/நிரலை இயக்க ஜே.ஆர்.இ தேவை.
java கட்டளை ஜாவா நிரலை இயக்க பயன்படுகிறது.  இது ஜே.ஆர்.இ யுடனே வந்துவிடும்.  ஜாவா நிரலை கம்பைல் செய்ய உதவும் javac கட்டளை ஜே.ஆர்.இயுடன் வராது.

javac கட்டளையை இயக்க ஜே.டி.கே நிறுவப்பட்டிருக்க வேண்டும்.  ஜே.டி.கே, ஜே.ஆர்.இ இவை இரண்டுமே அனைத்து இயக்க சூழல்களுக்கும் கிடைக்கின்றன. விண்டோசுக்கு .exe கோப்பாகவும், லினக்சுக்கு .rpm,.deb,.bin... கோப்பாகவும், மேக் இயங்குதளத்திற்கு .dmg கோப்பாகவும் கிடைக்கின்றது.

ஜே.வி.எம் (JVM- Java Virtual Machine) என்பதுதான் ஜாவாவை இயக்குகிற மைய மென்கலம்.  ஜாவாவை இயக்குவதற்கான் இதயம் போன்றது.  தமிழில் இதை ஜாவா மெய்நிகர் கணினி என்று அழைக்கலாம்.  இதன் பயன் என்ன? இதை எப்படி நிறுவது? எனப் பல கேள்விகள் எழலாம்.

ஜே.வி.எம்மை நீங்கள் தனியாக நிறுவ வேண்டியதில்லை.  ஜே.வி.எம் என்பது ஜே.ஆர்.இக்குள் அடக்கம். JDK<----JRE<------JVM.  நீங்கள் எழுதிய ஜாவா நிரலை ஜாவா மெய்நிகர் கணினிதான் இயக்குகிறது.  ஜாவா நிரல்கள் .java என்கிற கோப்பாக இருக்கும். 
javac மொழிமாற்றி அதனை .class கோப்பாக மாற்றித் தரும்.  ஒரு மொழிமாற்றியின் வேலை உயர்நிலை மொழியிலிருந்து இரும மொழிக்கு மாற்றுவதுதான் என ஏற்கனவே பார்த்தோம்.  இன்னொன்றையும் புரிந்து கொண்டால் இதை உள்வாங்கிக் கொள்ள எளிமையாய் இருக்கும்.  


இரும மொழி கோப்புகள் (binary files) எந்த நீட்டிப்பில் (extension) இருக்கும்?  விண்டோசில் .exe என்று இருக்கும்.  லினக்சில் .bin என்று இருக்கும்.  அதுசரி பின்னர் ஏன் .java கோப்பு .exe கோப்பாகவோ .bin கோப்பாகவோ இல்லாமல் .class என்கிற ஒரு புது நீட்டிப்புடன் உருவாகிறது.

இதன் பின்னனியில்தான் இருக்கிறது ஜாவாவின் அடிப்படைத் தத்துவம்.  நேரமின்மையால் கொஞ்சம் கொஞ்சமாகத்தான் பகிர்ந்து கொள்ள முடிகிறது.  அடுத்த பதிவில் எக்லிப்ஸ் மென்பொருளை எவ்வாறு பயன்படுத்தலாம் என விரிவான விளக்கங்களுடன் (படங்களுடன்)  அடுத்த பதிவில் பார்க்கலாம்.  அதுவரை எக்லிப்ஸ் குறித்து கீழ்காணும் பதிவில் மேலோட்டமாகத் தெரிந்து கொள்ளுங்கள்.

--தொடரும்

ஆகஸ்ட் 15, 2010

ஜாவாவும் சுதந்திரமும் - ஜாவா தொடர் 3

ஜாவாவும் சுதந்திரமும் - ஜாவா தொடர் 3
சுதந்திர தின நல்வாழ்த்துகள்



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

ஜாவா இணைய பயன்பாடுகளை(Web applications) உருவாக்குவதற்கு ஏற்ற மென்பொருள்.  தனிமேசை பயன்பாட்டு மென்பொருள் உருவாக்கத்தைவிட இணையப் பயன்பாடு உருவாக்கத்தில் ஜாவா கோலோச்சி நிற்கிறது.  ஜாவா மொழி பலரால் பயன்படுத்தப் படாமாலா இன்று கணினி உலகில் நம்பர் ஒன் மொழியாக இருக்கிறது. 

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



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

ஜாவாவின் அடிப்படைக் கொள்கை ஒருமுறை எழுதிவிட்டு எங்கு வேண்டுமானாலும் இயக்கிக் கொள்ளுங்கள் (WORA - Write once run
anywhere) என்பதே.   

பல பயனுள்ள துணைநிரல்களை (libraries) ஜாவா மொழி தாங்கி வருகின்றது.  இது நிரலாக்கத்தில் அடிக்கடிப் பயன்படும் ஒரு தேவைக்கு ஏற்கனவே நன்கு பரிசோதிக்கப்பட்ட, நம்பகமான, தரமான துணைநிரல்களைப் பயன்படுத்திக் கொள்ளலாம்.  எடுத்துக்காட்டிற்கு தரவு கட்டமைப்பில் (data structure) இருக்கும் அடுக்கு (stack) பயன்பாட்டிற்கு (push/pop) நீங்கள் நிரலெழுதிக் கொண்டிருக்கத் தேவையில்லை.    java.util.* தொகுப்பில் (package) வரும் Stack வகுப்பை (class) பயன்படுத்திக் கொள்ளலாம்.

ஜாவாவிற்கு முற்றிலும் புதியவர்கள் புரியாத வரிகளைத் தவிர்த்துவிட்டு தொடரவும்.   இவை ஒவ்வொன்றையும் அடுத்தடுத்த கட்டுரைகளில் அலசி
ஆராய்வோம்.

ஜாவாவை சன் மைக்ரோசிஸ்டமஸ் சொந்தம் கொண்டாடினாலும்,  ஜாவாவுடன் பயன்படுத்தும் நிரலாக்க சட்டங்கள் (frameworks), துணை
நிரல்கள் (libraries) அனைத்திற்கும் அவர்கள் சொந்தக்காரர்கள் அல்ல.  சன் மைக்ரோசிஸ்டம்ஸ் அறிமுகப் படுத்திய ஜாவா விவர வரையறைகளில் (java specifications servlet,ejb etc..) சில மிகக் கடினமாக இருந்தது. அதுவே ஜாவாவை பலர் வெறுப்பதற்கும் காரணம் ஆயிற்று.  

ஜாவாவில் மென்பொருள் உருவாக்குவதை எளிமையாக்க பல்வேறு நிறுவனங்கள் கோடிக்கணக்கான ரூபாயை முதலீடு செய்துள்ளன.  அவர்கள் பணம் வீணாய்ப் போக விட்டுவிடுவார்களா என்ன?  ஐ.பி.எம், கூகிள் போன்ற நிறுவனங்களும் இதில் அடக்கம்.  கூகிள் GWT - Google Web Toolkit என்றொரு நிரலாக்க சட்டத்தை (framework+tools) ஜாவாவிற்கு தருகிறது.  அஜாக்ஸ் (AJAX - Asynchronous JavaScript and XML ) முறையிலான வெப் பயன்பாடுகளை உருவாக்குவற்கு ஏற்றது.  ஜிமெயில், கூகிள் மேப்ஸ் போன்ற பயன்பாடுகளை உருவாக்க GWT பெரிது உதவும்.  இது கட்டற்ற திறமூல மென்பொருள் என்பதால் ஆர்வத்தை அதிகரிக்கின்றது.  ஐ.பி.எம், அப்பாச்சி அறக்கட்டளை... போன்றவற்றின் ஆதரவால் ஜாவா இன்றளவும் முதலிடத்தில் இருக்கிறது.


ஜாவா என்பது நிரலாக்க மொழி மட்டும் இல்லை.  ஜாவா என்பது ஜாவா நிரல் மொழியையும் உள்ளடக்கிய பணிச்சூழல் (java is not a programmiing language alone. java is a platform which includes java programming language itself).

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

சன் மைக்ரோ சிஸ்டத்தைக் கையகப்படுத்தியதன் மூலம் இன்று ஜாவா ஆரக்கிள் நிறுவனத்தின் வசம் இருக்கிறது.  வணிக மென்பொருள் சந்தையில் வெற்றிக் கொடி நாட்டிய ஆரக்கிள் ஜாவாவை சுதந்திரமாக இருக்க அனுமதிக்குமா?

உங்கள் நல்லாதரவுடன் ஜாவா தொடர் ...தொடரும்

ஆகஸ்ட் 14, 2010

புரோகிராமிங் அடிப்படைகள் - ஜாவா தொடர்

ஜாவா தொடர் - 2

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

 

இப்போது கம்பைலர் (மொழி மாற்றி) என்றால் என்னவென்று பார்ப்போம். சி,சி++,ஜாவா,விபி... போன்றவற்றை உயர்நிலை மொழிகள் (high level languages) என்கிறோம்.  ஏனெனில் உயர்திணைகளான மனிதர்கள் புரிந்து  கொள்ளும்படி மனிதர்களால் உருவாக்கப் பட்டவை. 

கணினி என்பது அஃறினை(உயிரற்றது) என்பதை மறந்துவிடக் கூடாது.  கணினிக்குத் தெரிந்தது இரும மொழிதான் (binary language 0-1) என்று சொல்வதுண்டு. உண்மை என்னவெனில் அவற்றிற்கு எந்த மொழியும் தெரியாது.  இரும மொழியும் மனிதர்கள் புரிந்து கொள்ளவே ஒரு சுருக்குக் குறிப்புகள்தான் (shortcut notations).  கணினி என்பது ஒரு மின்சார கருவி.  அதிலிருக்கும் கோடிக்கணக்கான சிப்புகளில் பாயும் மின்னழுத்தத்திற்கேற்ப வேலைகள் நடக்கின்றன. ஒரு குறிப்பிட்ட அளவு மின்சாரம் இருந்தால் அது 1 எனவும் அதற்கு குறைவாக இருந்தால் 0 என்றும் குறித்து வந்தனர்.  ஆரம்பகட்டத்தில் ஆராய்ச்சி நிலையில் ஒன்றையும் ஒன்றையும் கூட்டினால் இரண்டு என வரவழைப்பதற்கு இரும எண்கள் எளிதாக இருந்தது.

தரவுகள் (data), செயல்பாடுகள் (கூட்டல், கழித்தல்..) என அனைத்தையும் இரும எண்களிலேயே குறித்தனர். ஒரு எடுத்துக்காட்டிற்கு ‘வணக்கம்’ என்று வரவழைப்பதற்கு 01110101011110100001111010101 என்று நிரலெழுதினால் எப்படி இருக்கும் என எண்ணிப் பாருங்கள்.  என்னக் கொடுமை, கணினி முன்னோடிகள் தங்கள் கணியத் தேவைகளுக்கு இப்படித்தான் கட்டளை எழுதினார்கள்.  கொஞ்சம் கொஞ்சமாக கணிக்க வேண்டியவை அதிகரிக்க அதிகரிக்க இரும எண்களுக்கு ஒரு மாற்றாக பொறி மொழியை (assembly language) மனிதன் கண்டுபிடித்தான். 

இவை இரண்டையும் கூட்டு என்று சொல்வதற்கு 111100010101110101011 என்று கொடூரமாக எழுதுவதற்கு பதில் (add a,b) என்று மனிதர்களுக்கு புரியும் மொழியில் எழுதுவது எளிமையாக இருந்தது.  இதை கணினிக்கு எப்படி புரிய வைப்பது. அதற்கு புரிய வைக்க அவற்றிற்கு நாம் ஏற்கனவே சொல்லிக் கொடுத்த இரும மொழியில் மாற்றித் தர வேண்டும்.  அந்த வேலையைச் செய்யும் நிரலுக்கு(பயன்பாடு) பெயர்தான் பொறிமொழி மாற்றி (assembler).  
இப்படிப் படிப்படியாக நிரலாக்கத்தை எளிமை படுத்த ஒவ்வொன்றாக கண்டுபிடித்தனர்.  பொறிமொழி மாற்றி எவ்வாறு பொறி மொழியிலிருந்து இரும மொழிக்கு மாற்றுகிறதோ (assembler converts assembly language to binary code)

மொழிமாற்றிகள் உயர்நிலை மொழியிலிருந்து இரும மொழியாக மாற்றித் தருகின்றன (compiler converts high level language to machine language).

ஒவ்வொரு கட்டமைப்பிலும் சிக்கலின்றி இயங்க அந்தந்த கட்டமைப்புகளுக்குத் தகுந்தவாறு மொழி மாற்றிகள் உருவாக்கப் பட்டது. 
சிலமென்பொருட்களை பதிவிறக்கம் செய்ய முற்படும்போது x86, i382, x86-64 bit... என பலப் பிரிவுகள் இருப்பதைப் பார்க்கலாம்.  ஏன் இத்தனைப் பிரிவுகள். ஒரே மென்பொருள்தான், அதே செயல்பாடுதான் ஆனால் ஏன் வெவ்வேறு வகைகளாக தரவேண்டும். வெவ்வேறு வகையான கணினிகளில் உள்ள மையச் செயலி ஆணை அமைவுகளில் (microprocessor Instruction Set) மாற்றம் இருப்பதால்தான். இதை இத்தோடு நிறுத்திக் கொள்வோம், நம் தொடருக்குத் திரும்பலாம்.

சி++ மொழி கணினி மென்பொருட்களை உருவாக்க பெரும் புரட்சியைச் செய்ததென்று சொல்லலாம்.  ஜேன் ஸ்ட்ரூஸ்டரப் (Bjarne Stroutstrup) உருவாக்கிய சி++ பொருள் நோக்கு நிரலாக்க (OOP-object oriented programming) மொழியாகும்.  பொருள் நோக்கு நிரலாக்கம் மென்பொருள் உருவாக்கத்தில் பெரும் புரட்சியை செய்கின்றது.  பொருள் நோக்கு பகுப்பாய்வும் வடிவமைப்பும் (OOAD- Object oriented analysis and design) சி++ மொழிக்கு மட்டும் சொந்தமல்ல. பொருள் நோக்கு வடிவமைப்பு என்பது ஒரு தத்துவம்,

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

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

தொடரும்...

ஆகஸ்ட் 13, 2010

ஜாவா புரோகிராமிங் -- புதிய தொடர்

ஜாவா மொழியை எளிதாய் கற்றுக் கொள்ள நினைப்பவர்களுக்காக இந்த தொடர் கட்டுரை.


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


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


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


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




இதற்கு முக்கியமாக இரண்டு காரணங்கள்தான் இருக்கும்,

  1. ஆங்கிலத்திலேயே அருமையான உதவிகள் கிடைக்கப்பெருகின்றது, பின்னர் பிறமொழியில் படிக்க அவசியமென்ன என்ற மனோபாவம்.
  2. மற்றொன்று அவற்றைத தமிழில் தேடினாலும் கிடைப்பதில்லை.
எடுத்துகாட்டிற்கு ஜாவா நிரலாக்கம், ஜாவா புரோகிராம், tamil java, tamil javascript... என்று எப்படி மாறி மாறித் தேடினாலும் தேடுவது கிடைப்பதில்லை.  தமிழில் கணினி தொழில்நுட்பம் குறித்து நிறைய நூல்கள் உள்ளது.   இருப்பினும் நம் மணம் முதலில் தேடுவது இலவசங்களைத்தான்.  அனைத்து புத்தகங்களையும் வாங்கிப் படிப்பதற்கு எங்கே வசதி இருக்கிறது.


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


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


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


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


காரணம் அம்மொழியைக் கொண்டு நம் கணினியுடன் பேசலாம், விளையாடலாம்.  System programmingற்கு இதை அடித்து கொள்ள இன்னொரு மொழி பிறக்க வேண்டும்.  


இன்னும் எத்தனையாயிரம் மொழிகள் வந்தாலும் அடிப்படை மொழிக் கூறுகள் பெரும்பாலும் இம்மொழியைச் சார்ந்தே இருக்கும்.  ஒரு மொழியில் if, while, for, main()... எனப் படித்துவிட்டு முற்றிலும் புதிதான நிரல் தொடர்களைக் கற்பது கடினம்.   எழுதப்படாத இச்சட்டங்களை மீறி  முற்றிலும் புதியாதாக உருவாக்கும் எந்த நிரல் மொழியும் வெற்றியடையாது.  இருப்பினும் சி மொழி உருவான காலகட்டம் வேறு, தற்போது உள்ள அதி நவீன வசதிகளை மேலும் மேலும் எதிர்பார்க்கும் காலகட்டம் முற்றிலும் வேறு.  இன்று இருக்கும் சிக்காலான அமைப்புகளை அன்று 1970..(எழுபதுகளில்) கற்பனை கூட செய்து பார்த்திருக்க மாட்டோம்.


தொடரும்....