meta name="google-site-verification" content="hAAshBJMkge72rbKLRNI6KHLhedahDg0t3G2Ohhhrt8" /> 2012-05-06 | computer from village computer from village: 2012-05-06 google-site-verification: google0eb59b9330e8d235.html meta name="google-site-verification" content="hAAshBJMkge72rbKLRNI6KHLhedahDg0t3G2Ohhhrt8" />

ஞாயிறு, மே 06, 2012



பெரிய அளவுள்ள வீடியோ கோப்புகளை பதிவேற்றம் செய்வதற்கு

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

இந்த தளத்தில் நம்முடைய வீடியோக்களையும் பதிவேற்றம் செய்து மற்றவர்களுடன் பகிர்ந்து கொள்ளும் வசதி உள்ளது.

சாதாரணமாக யூடியுப் தளத்தில் சுமார் 15 நிமிட வீடியோவை தான் பதிவேற்றம் செய்யும் வசதி உள்ளது. இதனால் பெரிய வீடியோ கோப்புகளை பதிவேற்றம் செய்து மற்றவர்களுடன் பகிர்ந்து கொள்ள முடியாத நிலை உள்ளது.

ஆனால் யூடியுப் தளத்தில் 20GB அளவுள்ள 12 மணி நேரம் ஓடக்கூடிய வீடியோ கோப்புகளையும் பதிவேற்றம் செய்யும் வசதி மறைந்து உள்ளது.

இந்த முறையை ஆக்டிவேட் செய்ய நீங்கள் உங்கள் மொபைல் எண்ணை யூடியுப் கணக்கில் கொடுத்து இந்த வசதியை ஆக்டிவேட் செய்ய வேண்டும்.

முதலில் யூடியுப் தளத்திற்கு செல்லுங்கள்.

யூடியுப் தளத்தில் மேல் பகுதியில் Browse, Movies, Upload என்ற மூன்று லிங்க் இருக்கும். அதில் Upload என்பதை கிளிக் செய்யுங்கள். உங்களுக்கு ஒரு விண்டோ வரும்.

இதில் கீழ் பகுதியில் Upload HD videos in various formats in 15 minutes என்ற செய்தி இருக்கும். அதற்க்கு அருகில் Increase your limit என்ற ஒரு லிங்க் இருக்கும். அதில் கிளிக் செய்யவும்.

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

மொபைல் நம்பரை கொடுத்தவுடன் கீழே உள்ள Submit என்ற பட்டனை அழுத்தவும். உங்களுக்கு அடுத்த விண்டோ ஓபன் ஆகும். நீங்கள் கொடுத்த மொபைல் எண்ணுக்கு ஒரு SMS வந்திருக்கும். அதில் Verification Code அனுப்பி இருப்பார்கள்.

Verify பட்டனை அழுத்தியவுடன் உங்களின் யூடியுப் கணக்கில் உங்களின் மொபைல் எண் சேர்க்கப்பட்டு விடும்.

இனி யூடியுபில் பதிவேற்றம் செய்யும் பகுதிக்கு சென்றால் 15 நிமிட லிமிட் என்ற செய்தி மறைந்து இருப்பதை காணலாம். இனி நீங்கள் 20GB அளவுள்ள 12 மணி நேரம் ஓடக்கூடிய வீடியோ கோப்புகளை நேரடியாக யூடியுபில் பதிவேற்றம் செய்து கொண்டு மற்றவர்களுடன் பகிர்ந்து கொள்ளலாம்.







SMS இலவசமாக அனுப்ப





                                                                SMS இலவசமாக அனுப்ப





இலவச SMS சேவையை indyarocks.com வழங்குகிறது. இந்தியா முழுவதும் நீங்கள் SMS அனுப்பலாம். நீங்கள் இந்த தளத்திற்கு சென்று உங்கள் மொபைல் நம்பர்ஐ கொடுத்து கணக்கை ஆரம்பிக்க வேண்டும்.

மேலும் facebook போன்று இந்த இணையம் அமைந்துள்ளது. இங்கு நீங்கள் இணைக்கும் ஒவ்வொரு வீடியோ (youtube வீடியோ லிங்க் கூட )லிங்கிற்கு 0.05 பைசாவும், நீங்கள் பார்க்கும் ஒவ்வொரு வீடியோவிற்கு 0.05 பைசாவும் வழங்கப்படுகிறது. அதாவது அவர்கள் தங்கள் 'google adsense' வருமானத்தை வாடிகையளர்களுடன் ( members ) பகிர்த்துகொள்வதாக இத்தளம் தெரிவிக்கின்றது.

வாரம் தோறும் இத்தளத்தில் ஆரம்பிக்கப்படும் சிறந்த blog, photos, video விற்கு சன்மானம் வழங்கப்படுகின்றது.

சில பொருட்களுக்கு இலவச பிட்டிங் ( free bidding ) வழங்குகிறது. இத்தளத்தில் உள்ள விளையாட்டுகளை விளையாண்டு அதிக மதிப்பெண் (score) பெருபவருகளுக்கு சன்மானம் வழங்கப்படுகின்றது.



பொனடிக்(ஒலியியல்) முறையில் தமிழ் தட்டச்சிடும் ஜாவா மூல நிரல்

பொனடிக்(ஒலியியல்) முறையில் தட்டச்சு செய்வதற்கான ஜாவா நிரலை http://groups.google.com/group/freetamilcomputingலிருந்து பதிவிறக்கி சோதிக்கவும். தங்களிடம் JRE இருந்தால் போதுமானது. நிரலில் மாற்றம் செய்து அதனை மேம்படுத்த jdk 1.2 அல்லது அதற்கு பிந்தைய பதிப்பு வேண்டும். தங்கள் கணினியில் Latha (அ) Lohit Tamil யுனிகோட் எழுத்துரு இருக்க வேண்டும். அல்லது தங்களுக்கு விருப்பமான யுனிகோட் எழுத்துருவை நிரலில் சுட்டவும்.


நிரலை இயக்க           java TamilPad

compile செய்ய         javac encoding -utf16 TamilPad.java


நிரல்முழுதும் வெறும் if conditionனும், switch statementதான் நிறைந்திருக்கிருக்கும். நீங்கள் ஜாவா புலியாக இல்லாமல் என்னைப்போன்று ஜாவா எலியாகயிருந்தாலும் எளிமையாகக் கற்றுக் கொள்ளலாம்.

a அ aa A ஆ i இ ii I ஈ e எ ee E ஏ ai ஐ o ஒ 
oo O ஓ au ஔ Q ஃ


க் k g ... ன் n.


nj ஞ்ச் ng ங்க் ndh nth ந்த் (Relative consonants)


ka ga க gna; ங ca sa cha ச gna ஞ da ta ட Na n;a na; ண
tha dha d;a t;a ta; da; த na qna ந pa ba ப ma ம ya ய 
ra ர la ல va wa வ za zha ழ La la; l;a ள
r;a ra; Ra ற na ன


ki கி கீ kii kI கு ku கூ kuu ......


ha ஹ sha ஷ Sa c;a s;a sa; ஸ க்ஷ ksha ja ஜ sri ஸ்ரீ



ஒருங்குறியில் ஸ்ரீ என்பது தனி எழுத்தல்ல. நான்கு குறியீடுகளால் ஆனது.
 +  +  + ீ --->; ஸ்ரீ   Ligature எனப்படுகிறது (complex symbol).


என்னக் கொடும சரவணன். இதற்குத்தான் தமிழுக்கு ஒவ்வோர் எழுத்திற்கும் தனியிடம்(யுனிகோடில் TUNE, TACE16) கேட்கிறோம்.




தமிழில் ள,ற,ண,ந,த,ஸ ஆகிய வரிசையிலுள்ள எழுத்துக்களை ஒலியியல் (phonetic) முறையில் தட்டச்சு செய்யும் போது மிகுந்த சிரமத்திற்கு உள்ளாகிறோம். இதற்கு எளிய மாற்றாக TAM99 விசைப்பலகை வடிவமைப்பை பரிந்துரைப்பதும் உண்டு. குறுஞ்செய்திகளில்eppadi macchi irukka என்பதுபோல் ஆங்கில எழுத்திலேயே தாய்மொழியில் நலம் விசாரிக்கும் பாசாக்கார
பிள்ளைகளுக்கு நிச்சயம் ஒலியியல் தட்டச்சுதான் பிடித்து போகும்.

ஓரளவிற்கு ஒலியியல் முறையிலேயே வேகமாக தட்டச்சு செய்ய ஷிப்ட் விசையை கொஞ்சம் தவிர்த்தாலே போதுமானது.  


நான் எழுதிய ஜாவா நிரலில் ';' விசையை எழுத்துக்களை மாற்றுவதற்கு பயன் படுத்தியிருக்கிறேன்.  



'ள்' தட்டச்சு செய்ய L என்று உள்ளிடுவதைவிட l; என உள்ளீடு செய்வது எளிமையாக இருக்குமெனக் கருதுகிறேன்.

இப்படி உள்ளீடு செய்து சோதிக்கவும்:
"பள்ளம்" வார்த்தையை pal;lam pall;am என உள்ளிடலாம்.


கண்ணன் kann;an kan;nan 
மஞ்சள் manjaL manjal;


நானாக நானில்லை தாயே naanAga naanillai thaayee
nAnAka nAnillai t;AyE


இந்நிலையில் iqnqnilaiyil q என்பது பழைய மதிப்பை(prevkey) அழிக்க வைத்திருக்கின்றேன்.


நினைவோ ஒரு பறவை ninaivoo oru par;avai
gangai kangai sangu nungu pangu vaangu vankam thangam thangai
kur;inji kaanjipuram banaaras; பனாரஸ் pattu kungumam


''கரத்திற்கு முன்னர் ''கரம்தான் வரும் 'ன'கரம் வராது.

எடு: உண்டு, வண்டு, கண்டு, உண்டியல், பண்டிகை, கொண்டான், கொண்டை, காண்டீபன்...

ஆகவே இதுபோன்று உள்ளீடு செய்ய uNdu, un;du என உள்ளிடுவதற்கு பதில் undu, kondai, mandu.. என உள்ளிட்டாலே போதுமானது.

அதேபோல் ''கரத்திற்கு முன் ‘'கரம்தான் வரும்.

எடு: கன்று, தின்றான், ஒன்று, பன்றி, மன்றம், தென்றல், ஊன்றுகோல், ஏனென்றால்...

indru இன்று inru இதுவும் இன்று எனச் சரியாக வரும்.


ஆகவே onRu என்பதற்கு பதில் onru என உள்ளிடுவது எவ்வளவு சுலபம் பாருங்கள்.


காற்று kaaRRu kaatru kaar;ru karru
rr அழுத்தினாலே "ற்ற்" என உள்ளீடு செய்து விடலாம்.

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

 ர்ர் ர்ரு ர்ரி ர்ரா ர்ரை... என வரவே வராது.


     மெய்ந்நிலை  சுட்டின்  எல்லா  எழுத்தும்
    தம்முன்  தாம்  வரூஉம்  ர, ழ  அலங்கடையே
                                                                               
                                                                               -(30வது பாடல்), தொல்காப்பியம்.


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

orrai என்பதை "ஒற்றை" என வரவழைப்பதில் என்ன சிக்கல்.
மாற்று marru நேற்று neerru nEtru
tr என்பதற்கு ற்ற் போட்டாலும் எளிமைதானே.
குற்றாலம் kutraalam kurraalam


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


ஐந்து aindhu ஷர்மிளா sharmil;aa sharmilaa;
நாதஸ்வரம் naathaswaram சுஜாதா sujaathaa ஹரிணி harini;
tth த்த் முத்தம் muttham சொத்து sotthu
murugan ஞானப் பழம் gnaanap pazam.




        லினக்சில் executable jar கோப்பை திறக்க               
                                                                                                   
right click ---> open with java   
or
     use a custom command
            java -jar            

மொழியியல் மென்பொருள் உருவாக்கத்தில் இலகு மென்நிரல்கள்

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 தளத்தில் தேடிப் பார்த்தால் நம் மொழியைத் தவிர அனைத்து மொழிகளிலும் ஏராளமான கட்டுரைகளும், எடுத்துக்காட்டுகளும் உள்ளது. அத்தளத்தை ஒரு நோட்டம் விடவும்.



புரோகிராமிங்கை எளிமையாக்கும் ஒருங்கிணைந்த உருவாக்கச் சூழல்கள்

              நிரலெழுதுவதை எளிமையாக்க ஏகப்பட்ட ஒருங்கிணைந்த உருவாக்கச் சூழல்கள் (IDE's-Integrated Development Environment) உள்ளன.  பெரும்பாலான பிரபல திறமூல மென்பொருட்கள், அனைத்து இயக்கச் சூழல்களிலும் சுதந்திரமாகப் பயன்படுத்துமாறு வெளிவருகின்றது.  சி, சி++, ஜாவா, பி.எச்.பி..., என அடிக்கிக் கொண்டே போகும் நிரல் மொழிகளுக்கு (programming languages) ஏற்றவாறு நிரலாக்க பணித்தளங்களங்களும் திறமூல உலகில் கொட்டிக் கிடக்கின்றது.  நான் பயன்படுத்திப் பார்த்த இரு ஒருங்கிணைந்த உருவாக்கச் சூழல்கள் எக்லிப்சும், நெட்பீன்ஸம் (Eclipse, Netbeans).

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

பிரபல வணிக மென்பொருட்களுக்கு நிகராக இவற்றின் தரம் இருக்கின்றது.  ஒரு அலுவலகப் பதிப்பாகட்டும் (office suite: MS office, OpenOffice etc..), அல்லது வேறொரு மென்பொருளாகட்டும் அவற்றின் முழு வசதிகளையும் நாம் பயன்படுத்துவதில்லை.  உண்மை என்னவெனில் இவற்றிலிருக்கும் அடிப்படை வசதிகளைக்கூட நாம் அறிந்து வைத்திருப்பதில்லை.

பல மாணவர்களுக்கு விபியும், எச்.டி.எம்.எல் லும் பிடித்திருக்கக் காரணம் தவறாக நிரல் எழுதினாலும் (syntax error) விரைவாக களைந்து விடும் வசதியால்தான். 


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


விண்டோசில் நோட்பேடிற்கு பதிலாக நோட்பேட்++ போன்ற மாற்று டெக்ஸ்ட் எடிட்டர்களைப் பயன்படுத்தும் போது நிரல் பல வண்ணங்களில் காட்டப்படும்.  சரியான வண்ணம் வரவில்லையென்றால் அதில் ஏதோ பிழையிருக்கலாம் என யூகித்து விடலாம்.



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

அது தெரியாவிட்டால் பிறகு சிக்கல்தான்.  ஒரு வெப் சர்வரை நிர்வகிப்பதாகட்டும், அல்லது நிரலை கம்ப்பைல் செய்வது முதல் டேட்டாபேஸில் (தகவல் தளம்) இருக்கும் தகவல்களை எளிய இடைமுகப்பில் அனுகவது வரை எனப் பலத்தரப்பட்ட மென்பொருள் உருவாக்கக் கட்டங்களை (software development phases) ஒரே இடத்தில் செய்தால் எப்படி இருக்கும்.  இதற்கு உதவுவதுதான் ஒருங்கிணைந்த உருவாக்கச் சூழல்கள்.  இவற்றைப் பயன்படுத்தி நிரலெழுதும்போது மொழிக்கூறு பிழைகளை (syntax errors) எளிதாகத் தவிர்த்து விடலாம்.

நான் கணினி அறிவியல் இளங்கலை (Bsc Computer Science) பட்டப் படிப்பு படிக்கும்போது செய்முறை வகுப்புகளிலும், ஜாவா செய்முறைத் தேர்வுகளிலும் ஒருங்கிணைந்த உருவாக்கச் சூழல் மென்பொருட்களை பயன்படுத்த அனுமதிக்குமாறு எவ்வளவு கேட்டுக்கொண்டும் பயனில்லை.  அதற்கு அந்த ஆசிரியரிடமிருந்து வந்த திடுக்கிடும் பதில், ”நிரல் எழுதுவது எளிமையாகிவிட்டால் பிறகு கற்றுக் கொள்வதற்கு என்ன இருக்கிறது ?!”).  பாடங்களைக் கற்றுக் கொள்வதே எளிமையாக புரிந்து கொண்டு அதை செயல்படுத்தி பார்க்கத்தானே. கல்லூரி அளவிலேயே விழிப்புணர்வு இப்படி இருக்கையில் பள்ளிகளில் கேட்கவா வேண்டும்.  






ஒருங்கிணைந்த மென்பொருட்களைப் பயன்படுத்தி நிரலெழுதும்போது நேரமும் மிச்சமாகும், சுயசிந்தனையுடனும் (own idea/creativity) நிரல்களை எழுதமுடியும்.  பள்ளி அளவிலிருந்தே திறமூல மென்பொருட்களைப் பயன்படுத்தவும், எளிமையாக நிரலெழுதுவதற்கானக் கருவிகளைப் பயன்படுத்தவும் மாணவர்களை ஊக்குவிக்க வேண்டும்.  

நாம் வேலைக்கு செல்லும்பொது அங்கு வணிக மென்பொருளைப் பயன்படுத்தினாலும் தற்போது கற்கும் திறமூல மென்பொருட்கள் நல்ல அடித்தளம் அமைக்கும்.  எடுத்துக்காட்டிற்கு வணிக மென்பொருளான சன் ஸ்டூடியோ திறமூல மென்பொருள் தொகுப்பான நெட்பீன்ஸை அடிப்படையாகக் கொண்டது, ஜே2ஈஈ (j2ee) பணித்தளதிற்கு ஏற்ற ஐ.பி.எம் வெப் ஸ்பியர்  ஸ்டூடியோ எக்லிப்ஸை அடிப்படையாகக் கொண்டது.  பகட்டான இணைய மென்பொருட்கள் (RIA - Rich Internet Application) உருவாக்கத்திற்கு பயன்படும் அடோப் நிறுவனத்தின் ப்ளெக்ஸ் மென்பொருளும் எக்லிப்ஸை அடிப்படையாகக் கொண்டதுதான்.



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

ஜாவா தொடர் - 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)... போன்றவை அடிப்படைத் தத்துவங்களாக உள்ளது. மரபுரிமம் என்பது தாத்தா சொத்தில் பேரப் பிள்ளைகளுக்கு உரிமை என்பதைப் போன்றது.  நீங்கள் ஒரு நிரல் எழுதியுள்ளீர்கள். அதிலிருக்கும் சில வசதிகளை பிறர் பயன்படுத்தலாம் என்று கொடுக்கிறீர்கள் என வைத்துக் கொள்வோம், எங்களுக்கு வேண்டிய வசதிகள் அதிலிருந்தால் நாங்கள் அதை அப்படியே பயன்படுத்திக் கொண்டு இல்லாத வசதிகளுக்கு மட்டும் நிரல் எழுதிக் கொள்ளலாம்.  நமக்கு அனைத்து வசதிகளும் தேவையில்லையெனில் தேவையற்றதை நீக்கிக் கொண்டு நம் தேவைக்கேற்ப மாற்றிக் கொள்ளலாம்.

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



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


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


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


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


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




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

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


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


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


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


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


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


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






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

 எக்லிப்ஸ் ஒருங்கிணைந்த உருவாக்கச் சூழல் ( 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) இருந்த இடத்திலேயே விரைவாக காண முடியும்.


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

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



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

மேலான விவரங்களுக்கு விக்கீபீடியாவிலிருந்து தெரிந்து கொள்ளுங்கள்.
புதியவர்களுக்கு ஒரு தகவல்: தமிழில் தொழில்நுட்ப தகவல்களைப் பெறத் தமிழிலேயே தேடுங்கள். எடுத்துகாட்டிற்கு 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 என்கிற ஒரு புது நீட்டிப்புடன் உருவாகிறது.

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



ஜாவாவும் சுதந்திரமும் - ஜாவா தொடர் 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" என்று குறிப்பிடுமாறு கேட்டுக் கொள்கிறேன்.