Wednesday, January 31, 2007

எளிய முறையில் ஜாவா - பகுதி 1 & 2

எளிய முறையில் ஜாவா - பகுதி1
ஜாவாவின் வரலாறு:-

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

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


1992 ம் வெளியிடப்பட்ட 'பச்சை' '*7' என்றும் அழைக்கப்பட்டது. தொடர்பற்ற கட்டுப்படுத்தியாக (ரிமோட் கண்ட்ரோல்) இது சிறப்பாக செயல்பட்டது. இதனை கேபிள் டிவி பாக்ஸ் லும் ரிமோட் சாதனத்திலும் பயன்படுத்த முடியும் என்று நிரூபித்துக்காட்டினார்கள். இருப்பினும் இதனை வாங்கிக்கொள்ளவோ, விளம்பரப்படுத்தவோ எந்த நிறுவனமும் முன்வரவில்லை. எனவே பேட் ரிக் நாக்ட்டன் தாமே முயன்று கிட்டத்தட்ட 300,000 மைல்களுக்குச் சென்று மக்களிடம் இதன் சிறப்பைப்பற்றி எடுத்துரைத்தார். 1993 ல் மீண்டும் "·ப்ர்ஸ்ட் பர்சன்"என்ற பெயர் மாற்றத்தோடு மக்களிடம் நல்ல வரவேற்பைப் பெற்றது.

1994ல் நெட்ஸ்கேப் -ன் அறிமுகத்திற்குப்பிறகு "ப்ர்ஸ்ட் பர்சன்" முடிவுக்கு வந்தது. ஏனெனில் அந்த சமயத்தில் தான் இணையதளம் மக்களிடையே நன்கு புழங்கலாயிற்று. எனவே கிளையன்ட்-சர்வர் ஆர்க்கிடெக்சருக்கேற்ற சிறந்த பிரவுசரையும் அதற்குரிய துணைக்கருவிகளையும் சார்ந்த ஒரு மென்பொருள் தேவை என்பதை பேட் ரிக் நாக்ட்டன் -ம், ஜானாதன் பேனே -ம் உணர்ந்தார்கள். அதன்படி 1995 ல் 'ஹாட் ஜாவா' பிரவுசரையும் அறிமுகப்படுத்தினார்கள். இது ஜாவா மொழியிலே எழுதப்பட்டது என்பது குறிப்பிடத்தக்கது.

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


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

(ஆர்வலர்கள் ஜாவா டெவலப்பர் கிட் டை www.java.sun.com ல் இலவசமாக பதிவிறக்கிக்கொள்ளலாம்)

எளிய முறையில் ஜாவா - பகுதி 2
ஜாவாவின் சிறப்புகள்:-


1. ஆப்ஜக்ட் ஓரியண்டட் புரோகிராம் (பொருள் சார்ந்த வரைமுறை)
2. இன்ஹெரிட்டன்ஸ் (பரம்பரை குணாதிசயம்)
3. பாலிமார்ப்பிசம் (பன்முக அமைவு)
4. டைனமிக் பைண்டிங் (நேரடி இணைவு)
5. மெசேஜ் கம்யூனிக்கேசன் (செய்தித்தொடர்பு)


1. பொருள் சார்ந்த வரைமுறை:-

ஜாவாவில் ஒவ்வொரு பகுதி/வகுப்பு(க்ளாஸ்) ல் உள்ள ஒவ்வொன்றும் ஒரு பொருளாகக்(ஆப்ஜெக்ட்) கையாளப்படுகிறது. அதாவது நாம் தினசரி வாழ்க்கையில் கையாளும் பொருள்களைப்போல..

எ.டு
உலகம் என்பது வகுப்பானால் அதில் உள்ள அனைத்தும் ஒவ்வொரு பொருளாகும். அவற்றில் நடக்கும் நிகழ்ச்சிகள் அனைத்தும் செய்கைகள் ஆகும்.

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

2. பரம்பரை குணாதிசயம்

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

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

சிங்கிள் இன்ஹெரிட்டன்ஸ்:-
அப்பா/அம்மாவின் முகச்சாயல் பிள்ளைக்கு வருவது
மல்டி லெவல் இன்ஹெரிட்டன்ஸ்:-
அதாவது தாத்தாவின் மூக்கும், பாட்டியின் நிறமும், அப்பாவின் சாயலும் பேரனுக்கு இருப்பதோடு அவனது சொந்த குணங்களும் வெளிப்படுவது.

3. பன்முக அமைவு:-

இது இன்னும் சுவாரசியமானது.
அதாவது நம்ம 'ஜீன்ஸ்' பிரசாந்த்-ஐஸ்வர்யாராய், 'வரலாறு' அஜீத், 'பார்த்திபன் கனவு' சினேகா மாதிரிங்க.. ஒரே ஆள் பல கெட்டப் ல வர்றதுக்கு பேரு பன்முக அமைவு.. இதனால் என்ன லாபம்?
ரொம்ப ஈஸி, கெட்டப் மட்டும் மாத்தினால் போதும். கால்ஷீட்/சம்பளம் ஒன்று தான்.(பயன்பாட்டில் ஒருமுறை வரையறுத்தால் போதும்). இங்கே செய்கைகளும் (மெத்தட்) அப்படித்தான், கெட்டப் மாதிரி தகவல்கள்கள்(இன்·பர்மேஷன்) மட்டும்
மாறும். இதனால் பன்முகபயனும், மீள்பயனும் (ரீயூசபிலிட்டி) கிடைக்கிறது.
மீள்பயன் நேரத்தையும், கணினி நினைவகத்தையும் சேமிக்கிறது.

4. நேரடி இணைவு (டைனமிக் பைண்டிங்):-

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

எ.டு.
நீங்கள் ரயில்நிலையத்தில் முன்பதிவு செய்யப்போகிறீர்கள் என்று வைத்துக்கொள்வோம். 30ம் தேதிக்கு மதுரை பாண்டியன் எக்ஸ்பிரசுக்கும், 7ம் தேதி கல்கத்தா ஹவுரா எக்ஸ்பிரசுக்கும் பதிவு செய்யவேண்டும் என்றால்,
உங்களது செய்கை(மெத்தட்) பதிவு செய்வது(ஒரே செய்கை); ஆனால் வகுப்புகள்(க்ளாஸ்) வெவ்வேறு (மதுரை, கல்கத்தா). ஸ்டேட்டிக் பைண்டிங் -ல் ஒரே சமயத்தில் இருவேறு வகுப்புகளுக்கு ஒரே செய்கையைக்கையாள முடியாது.

ஆனால் டைனமிக் பைண்டிங் -ல் இது சாத்தியம். ஏனெனில் 'நேரடி இணைவு' நேரடியாக நினைவகத்தைச் சுட்டுவதோடு(பாயிண்டிங்), பயன்பாட்டின் இயக்க
நேரத்தில்(ரன் டைம்) மட்டுமே செயல்படுகிறது. இதனால் செயல் முடிந்தவுடன் அதன் இயக்கம் துண்டிக்கப்பட்டு அதே பெயரிலுள்ள அடுத்த செய்கைக்கு வழிவிடுகிறது.

5. செய்தித்தொடர்பு:-

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

'சிறார்கள் கொல்லப்பட்டார்கள்' என்பது செய்தி.
'நொய்டா', '70' என்பது தகவல்.

"நொய்டாவில் 70 சிறார்கள் கொல்லப்பட்டார்கள்" என்று இரண்டையும் இணைப்பது செய்தித்தொடர்பு.

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