செப்டம்பர் 18, 2010

மென்பொருள் விடுதலை நாள்

மென்பொருள் விடுதலை நாள்
Software Freedom Day 2010

நாள்:   18-09-2010 சனிக்கிழமை
இடம்: பிர்லா கோளரங்கம், கோட்டூர்புரம், சென்னை.

நண்பர்கள் அனைவருக்கும் வணக்கம்,

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

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

ஓப்பன் சோர்ஸ் - விளக்கம்: புதியவர்களுக்காக ஒரு புதிய கோணத்தில்



இவன்,
ந.ர.செ. ராஜ்குமார்
http://tamilcpu.blogspot.com

செப்டம்பர் 12, 2010

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

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

சி, சி++ நிரல் மொழியைப் போலவே ஜாவாவிலும் main() செயல்கூறிலிருந்து (செயல்கூறு - function) இயங்க ஆரம்பிக்கும்.  எனினும் ஜாவா மொழி சில இடங்களில் வேறு படுகிறது.  ஜாவா மொழி மூலம் தனிமேசைப் பயன்பாடுகள் (desktop applications), இணையப் பயன்பாடுகள் (web applications), செல்லிடப் பயன்பாடுகள் (mobile applications) என அனைத்துவகையான தேவைகளுக்கும் மென்பொருட்களை உருவாக்க முடியும்.

ஜாவா தொலைக்காட்சியிலிருந்து செயற்கைகோள் வரை எல்லா இடத்திலும் இயங்கும்.  காரணம் ஜாவா உருவாக்கத்தின் நோக்கமே இதற்காகத்தான்.  ஜாவாவை உருவாக்கிய சன் மைக்ரோசிஸ்டமஸ் மின்னனு சாதனங்களுக்கான மென்பொருள் தீர்வுகளை வழங்கி வந்தது.  வெவ்வேறு வன்பொருள் கட்டமைப்புகளில் ஒரேமாதிரி இயங்கக் கூடிய தேடலில்தான் ஜாவா மலர்ந்தது.  ஒவ்வொரு வகை மையச் செயலிக்கும் (microprocessor) வெவ்வேறு ஆணை அமைவுகள் (instruction set) இருக்கும். வெவ்வேறு கட்டமைப்புகளில் இயங்குவதற்கு நிரல்களை ஒவ்வொரு முறையும் மாற்றிக் கொண்டிருப்பதற்கு பதிலாக ஒரே முறை எழுதிவிட்டு ஜாவா மெய்நிகர் கணினியில் (java virtual machine) இயக்கிக் கொள்ளலாம்.  சென்ற பதிவிலேயே பார்த்துவிட்ட இந்தத் தகவலை ஏன் மறுபடியும் பார்க்க வேண்டும்?   இதுதான் ஜாவாவின் அடிப்படை. முற்றிலும் புதிதாக கற்றுக் கொள்பவர்களுக்காக மீண்டும் மீண்டும் வலியுறுத்தப் படுகிறது.

உங்களுக்கு ஏற்கனவே சி,சி++ போன்ற மொழியில் பரிட்சயம் இருந்தால் ஜாவா கற்றுக் கொள்வது இன்னும் எளிது. for,while,if,int.. என அங்கொன்றும் இங்கொன்றுமாக படித்து வைத்ததை ஜாவாவிற்கு பயன்படுத்திக்  கொள்ளலாம்.  சி, சி++ படிக்காமலேயும் ஜாவா படிக்கலாம். இல்லையே நாங்கள் கேள்விபட்டவரை புதிதாய் கற்றுக் கொள்பவருக்கு சி தான் ஏற்றது என உங்களில் சிலர் முரண்டுபிடிப்பதைப் பார்க்கிறேன். நிரலாக்கத்திற்கு முற்றிலும் புதியவருக்கும் ஜாவாவை அறிமுகப் படுத்தலாம்.   ஆனால் உரிய கருவிகளைக் கொண்டு.  எடுத்த எடுப்பிலேயே முழுவீச்சில் எல்லாவற்றையும் கற்றுக் கொள்ள வேண்டும் என்பதல்ல.   தேவையானதை மட்டும் அவரவர் தேவைக்கேற்றாற் போல் அறிமுகப்படுத்தலாம்.  எக்லிப்ஸ் போன்ற நிரலாக்க கருவிகளைக் கொண்டு ஜாவா நிரல் எழுதும்போது அனைத்து ஜாவா நிரலுக்கும் தேவையான பொதுவான வரிகளை அதுவே எழுதிக் கொடுத்துவிடும்.  இடையில் உங்களுக்குத் தேவையான நிரல் வரிகளை சொருக வேண்டியதுதான்.

இங்கு ஜாவா தனிமேசை பயன்பாடுகளுக்கான நிரல் உதவியைக் குறித்துதான் முதலில் காணப் போகிறோம்.  இதற்காக உதவுவது ஜே2.எஸ்.இ (java2 standard edition).  இன்னும் j2ee, j2me, java card.. என நிறைய இருக்கிறது.  இவை அனைத்திலும் இயங்கும் மொழி ஜாவாதான்.  வசதிகள்தான் மாறுபடும்.  எடுத்துகாட்டிற்கு செல்பேசி பயன்பாடுகளுக்கு தனிமேசைக் கணினி செயல்பாடுகளில் இருக்கும் அனைத்து வசதிகளும் தேவைப்படாது.  செல்பேசி பயன்பாட்டிற்கென இருக்கும் java2 micro editionல் என்ன தேவையோ அதுமட்டும் இருக்குமாறு தகவமைக்கப்பட்டிருக்கும்.  நிரல் ஆரம்பிக்கும் மையப் புள்ளி மாறுபடும் அவ்வளவுதான்.  எடுத்துகாட்டிற்கு ஜாவா அப்லெட் (java applets) ஏற்கனவே படித்திருப்பவர்களுக்கு தெரியும்,  அவைகளில் main() செயற்கூறே (function) இருக்காது.  அதற்கு பதிலாக init() இருக்கும். இங்கு நிரலின் ஆரம்பப் புள்ளி ஏன் மாறுகிறது. இதற்கான விடை இந்த ஜாவா நிரல்கள் எங்கு, எதில் இயங்குகிறது என்பதில் இருக்கிறது.  ஆப்லெட்டுகள் உலாவிகளுக்குள்ளே (browsers) இயங்குகின்றன. நீங்கள் எழுதிய நிரல் (ஆப்லெட்) வேறொரு நிரலின் (வலை உலாவி/browser)ன் கட்டுப்பாட்டில் இயங்குகிறது.  தனிமேசை பயன்பாடுகளில் main() செயற்கூறு எழுதக் காரணம் இங்கு கட்டுபாட்டை
நீங்களே ஏற்றுக் கொள்கிறீர்கள்.   அதாவது எங்கிருந்து நிரல் இயங்க வேண்டுமென ஜே.வி.எம் மிற்கு வெளிப்படையாக சொல்ல வேண்டும்.

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

main() செயற்கூறு இல்லாமல் ஜாவாவில் நிரல் எழுதமுடியுமா?
தாரளமாக முடியும்.   ஜாவா நிரல் கோப்பின் பெயர் (java program's file name), நீங்கள் எழுதியுள்ள publi classன் பெயரோடு ஒத்து இருக்கும்.  நீங்கள் எத்தனை classes எழுதினாலும், அவற்றில் ஏதோ ஒரு classல் main() இருந்தால் போதுமானது.  main() செயற்கூறினுள் (inside main function) மற்ற classற்கான ஆப்ஜெக்ட்களை (பொருள்) உருவாக்க வேண்டும்.  ஒரு ஆப்ஜெக்டை உருவாக்கிய பின் அதிலிருக்கும் மற்ற function, properties அனைத்தையும் பயன்படுத்திக் கொள்ளலாம்.

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