Friday, September 7, 2012

Java ගැන හැඳින්වීමක්...........


Java කියන්නෙ ලෝකෙ දැනට භාවිතා කරන ජනප්‍රියම ක්‍රමලේඛ භාෂාවක්. Java යනු ඉගෙනගන්නට පහසු මෙන්ම විවිධ ක්ෂේත්‍ර ගණනාවක භාවිත වන භාෂාවක්. ඉතින් මම මේ පාඩම් මාලාව මගින් මුල සිට ඉතා සරල ආකාරයෙන් ඕනෑම කෙනෙකුට තේරුම් ගත හැකි ආකාරයෙන් java මගින් programming කරන හැටි කියල දෙන්න බලාපොරොත්තු වෙනවා. තවදුරටත් මේ පාඩම් මාලාව මගින් Oracle ආයතනයෙන් පවත්වනු ලබන  1Z0-851 OCPJP (Oracle Certified Professional JavaSE Programmer) කියන විභාගයට මුහුණ දීමට හැකි ආකාරයෙන් පාඩම් ඉදිරිපත් කිරීමටත්, ප්‍රශ්න සාකච්චා කිරීමටත් බලාපොරොත්තු වෙනවා.


 
 



පරිගණක ක්‍රමලේඛනය පිලිබඳ ඉගෙනගන්න කැමති ඕනෑම අයෙක්ට මෙම blog එක පරිහරණය කිරීමට ආරාධනා කරනව.




අපි හැමෝම එකිනෙකා අතර අදහස් හුවමාරු කරගැනීම සඳහා විවිධ භාෂා යොදාගන්නව. අපේ රටේ නම් ඉතින් සිංහල, දෙමළ, ඉංග්‍රීසි වගේ භාෂා පාවිච්චි වෙනවනෙ. ඒ වගේ ලෝකෙ විවිධ මිනිස්සු විවිධ භාෂා වලින් අදහස් හුවමාරු කරගන්නව. සත්තුත් ඒ ඒ අයට ආවේණික වූ ක්‍රම වලින් අදහස් හුවමාරු කරගන්නව. ඉතින් අපිට පරිගණකය ලවා යම් කිසි දෙයක් කරගන්න අවශ්‍ය නම් පරිගණකය සමඟ අදහස් හුවමාරු කරගන්න සිදුවෙනවා. නමුත් ඒ කාර්යය අපි භාවිත කරන භාෂා වලින් ඉටු කරගන්න අමාරුයි. මොකද පරිගණකයට ඒ භාෂාවන් තේරෙන්නේ නැති නිසා. පරිගණකයට තේරෙන එකම භාෂාව තමයි binary language (machine language) එක. මේ භාෂාවට අයත් වෙන්නෙ 1 හා 0 කියන ඉලක්කම් දෙක විතරයි. ඉතින් අපිට කරගන්න ඕනේ සෑම කාර්යයක් ගැනම පරිගණකයට දැනුම් දෙන්න වෙන්නෙ මේ ඉලක්කම් දෙක භාවිතයෙන් විතරයි. ඔයගොල්ලෝ binary numbers ගැන දන්න හින්ද මම ඒ ගැන වැඩි විස්තර කතා කරන්න යන්නේ නෑ. කොහොම වුනත් මුල්ම කාලයේ පරිගණක ක්‍රමලේඛනය සිදු වුණේ මේ machine language එක භාවිතයෙන් තමයි. නමුත් මෙම machine language ඇසුරෙන් පරිගණකය හැසිරවීම පහසු වුණේ නම් නෑ. ඒ ගැන ඉතින් මම අමුතුවෙන් කියන්න ඕනෙ නෑනෙ. මේ නිසා පරිගණක ඉංජිනේරුවරු වඩාත් පහසුවෙන් මිනිසාට හැසිරවිය හැකි පරිගණක භාෂා තනන්නට උනන්දු වුණා.

මේ අනුව මිනිසාට කියවා තේරුම්ගත හැකි භාෂාවක් ලෙස assembly language සොයා ගැනුණා. මෙම assembly language මගින් ලියන ලද කේත පරිගණකයට තේරුම් ගත හැකි ආකාරයට machine language එකට හැරවීම සඳහා assembler නම් පරිගණක වැඩසටහනක් භාවිත වුණා. මෙම භාෂාව machine language වලට වැඩ මිනිසාට සමීප වුණත් මෙමගින් ලියන ලද පරිගණක වැඩසටහන් ඉතා දිගු හා තේරුම් ගැනීමට අපහසු වූ අතර මෙම වැඩසටහන් ක්‍රියාත්මක වීමේදී පරිගණකයේ දෘඩාංග සැකැස්ම (computer architecture) බලපෑවා. මේ නිසා පරිගණක ක්‍රමලේඛ ශිල්පීන් හට දෘඩාංග පිළිබඳවද සැලකිලිමත් වීමට සිදු වුණා. මේ නිසා තවත් ඉදිරියට යමින් ඉංග්‍රීසි භාෂාවට වඩාත් සමීප FORTAN, COBOL, C, Pascal වගේ භාෂා බිහි වුණා. මෙම භාෂා high-level languages ලෙසද හඳුන්වනවා. මෙම භාෂා වලින් ලියන ලද කේත machine language බවට හැරවීම සඳහා compiler හෝ interpreter යන වැඩසටහන් උපයෝගී වුණා. මෙම භාෂා වලට තවත් විශේෂ අංග (Object oriented concepts, GUI features) එකතු වීමෙන් C++, Java, Visual C++, C#.net වගේ භාෂාවන් බිහි වුණා.
 
මම මේ සඳහන් කලේ පරිගණක භාෂා වල ව්‍යාප්තිය පිලිබඳ කෙටි සටහනක් විතරයි. මේ පිලිබඳ වැඩි විස්තර ඕනෙ තරම් විවිධ වෙබ් අඩවි වල තියෙනව. අවශ්‍ය අය කියවල විස්තර හොයාගන්න. හොඳයි, අපේ මාතෘකාව java නෙ. අපි දැන් java ගැන කතා කරමු.

එහෙනම් java හැදුන තැනින්ම පටන්ගමුකො........

1991 ජනවාරි මාසෙ Sun Microsystems වල පරිගණක විද්‍යාඥයෝ කිහිප දෙනෙක් ඇමරිකාවේ කොලරාඩෝ වලට එකතු වුණා විශේෂ ව්‍යාපෘතියක් ගැන සාකච්චා කරන්න.මෙම ව්‍යාපෘතිය කිරීම සඳහා පරිගණක ක්‍රමලේඛ භාෂාව තෝරාගැනීමට භාර වී තිබුණේ James Gosling හටයි. මොහු මේ සඳහා මුලින්ම C++ භාෂාව තොරගත්තත් පසුව ඔහුට වැටහුණා C++ මෙම ව්‍යාපෘතිය සඳහා යෝග්‍ය නොවන බව. ඒ නිසා ඔහු මේ සඳහා නව ක්‍රමලේඛ භාෂාවක් හදුන්වා දුන්නා. අන්න එහෙම තමයි java බිහි වුණේ. මේ java කියන නම සකස් වුණේ මෙම ක්‍රමලේඛ භාෂාව සොයාගැනීමට දායක වූ James gosling, Arthur Van hoff සහ Andy bechtolsheim යන අයගේ මුලකුරු වලින්.

Java වල තියෙන වැදගත් කාරණයක් තමයි java language එක WORA (Write Once Run Anywhere) කියන theory එකට අනුව නිපදවා තිබීම. ඒ කියන්නෙ මෙම භාෂාව භාවිතයෙන් කේතයක් එක සැරයක් ලිව්වම ඒක ඕනෑම පරිගණකයක ක්‍රියාත්මක කරන්න පුළුවන් වීම. මේ වගේ තවත් විශේෂ කිහිපයක්ම මෙම java සතු වෙනවා. ඒවා තමයි,

  • ·         Simple
  • ·         Object oriented
  • ·         Distributed
  • ·         Multithreaded
  • ·         Dynamic
  • ·         Architecture neutral
  • ·         Portable
  • ·         High performance
  • ·         Robust
  • ·         Secure
මෙතන තියෙන වචන වල තේරුම තවම තේරෙන්නේ නැතුව ඇති. මේවයේ තේරුම මෙතන පැහැදිලි කරන්න ගියොත් ඔයාලට java ඉගෙන ගන්න එකත එපා වෙයි. ඒ නිසා දැන්ම මේවා ගැන හිතන්න යන්න එපා. ඉදිරියට ඉගෙනගනිද්දී මේවා තේරෙයි. මේවා මෙතන සඳහන් කලේ මේ ගැන අහල තියෙන නිසා ඉදිරි පාඩම් වලදී මේ වචන මුණගැහුනම නුහුරු ගතියක් ඇතිනොවෙන්න.

තවත් java වල තියෙන සුවිශේෂී ලක්ෂණයක් තමයි java වලින් ලියන ලද කේත machine code එකට හැරවීම සඳහා compilation සහ interpretation යන ක්‍රම දෙකම භාවිත වීම. Java source code එකක extension එක තමයි .java ජාවා compiler එක මගින් මෙම source code එක .class extension එක සහිත byte code එකක් බවට පත් කරනවා. මෙම byte code එක interpreter එක මගින් machine code එක බවට හරවනවා.

         
දැන් ඔයාල කල්පනා කරනවා ඇති compiler එකෙයි interpreter එකෙයි වෙනස මොකක්ද කියල. Compiler එකෙන් මුළු source code එකම එකපාර වෙනත් code එකක් බවට හරවල පරිගණකයේ තැන්පත් කරගන්නව. මෙහිදී නම් byte code එකට. සමහර languages වල කෙලින්ම machine code එකට හරවනවා. (උදා: C programming language) interpreter එක කරන්නෙ program එක run කරන ගමන් line එකෙන් line එක machine code එකට හරවන එක. මෙහිදී interpreted code එක පරිගණකයේ තැන්පත් වීමක් සිදු වෙන්නෙ නෑ. මේ නිසා compile කරපු code එක නැවත නැවත පාවිච්චි කරන්න පුළුවන් වුණත් interpret කරන එක run කරන හැම වතාවකදීම සිදු කරන්න වෙනවා.

හොඳයි, මේ ලිපියෙන් java සහ වෙනත් programming languages වල ව්‍යාප්තිය සිදුවුණු අන්දම ගැන වැටහීමක් ලැබෙන්න ඇති. අන්තිමට අර කියපු වචන සෙට් එකෙන් එකක් විස්තර කරල ලිපිය අවසන් කරන්න තමයි හදන්නෙ. ඒක තමයි architecture neutral කියන ඒක. මේකෙන් කියන්නෙ java program එකක් run කිරීම සඳහා එම program ඒක ලියපු පරිගණකයේ හෝ run කරන පරිගණකයේ දෘඩාංග සැකසීම ප්‍රශ්නයක් නොවෙන බවයි. මෙයට හේතුව නම්, java programs run වෙන්නෙ  Java virtual Machine (JVM) කියන program එකක් මත. මෙය Java runtime environment (jre) කියලත් හඳුන්වනව. JVM එකෙන් වෙන කාර්යයන් පිළිබඳව ඉදිරියේදී ඉගෙන ගන්න පුළුවන්. ඊළඟ ලිපියෙන් ඔබේ පරිගණකයට java ස්ථාපනය කරන හැටි සහ programming පටන් ගන්න වටපිටාව සකස් කරගන්න හැටි කියල දෙන්නම්.

40 comments:

  1. වැදගත් ලිපියක්. දිගටම කරන්න සහෝ. මගේන් සුබ පැතුම්..!

    ReplyDelete
  2. බොහොම ස්තුතියි ඉශාන් සහෝ... දිගටම රැදී සිටින්න.....

    ReplyDelete
  3. ඉතාමත් හොඳ ලිපි පෙළක්. කොහොම හරි දිගටම කරගෙන යන්න. මොකද සිංහලෙන් ජාවා ඉගෙන ගන්න තියෙන අවස්ථා අපිට බොහොම අඩුයි. Best Of Luck!

    ReplyDelete
  4. aththatama godak hoda wdasatahank apita godak poroyojawath me lipi.Didatama apita sahayogaya denata kiya mn illlamawa

    ReplyDelete
  5. thnx bro.tz very useful.keep t up!

    ReplyDelete
  6. නියමයි සහෝ...!!!!!! :-)

    ReplyDelete
  7. මේ පාඩමට බොහොම ස්තුතියි !

    ReplyDelete
  8. මේ පාඩමට බොහොම ස්තුතියි !

    ReplyDelete
  9. Java ගැන මෙච්චර විස්තර දැනගන්න ලැබුනා. ස්තූතියි.

    ReplyDelete
  10. aththamay saho....meka digatama karagena yanna....great worka ah..matath igena ganna puluwan

    ReplyDelete
  11. aththamay saho....meka digatama karagena yanna....great worka ah..matath igena ganna puluwan

    ReplyDelete
  12. me post ekatanam matat comment karanna hituna.
    niyama wadak awashya karunu kramanukulawama pelagaswala thiyenawa.
    digatama karagena yanna.api full suport karanawa.jaya weewa!!!!!!!!!!!!!.............

    ReplyDelete
  13. Thanks. Oya java igena gaththa kohomada?

    ReplyDelete
  14. Ela bro... java gene mechchara hodata explain karala thiyanne Oya vitharai bro.. niyamai best luck.. aniwaren sup ekak illanna aniwaren deneva bokkenma

    ReplyDelete
  15. ayye me 2020 mama me wenakm oya tharam lassnata meka gana kiyala dipu kenek hambela ne. jaya wewa ♥♥♥

    ReplyDelete
  16. ගොඩාක් හොඳට ලියලා තියෙනවා.. ඊ ළඟට තියෙන ලිපියට navigation එකකුත් මෙතනින්ම දෙනවනම් වටිනවා.. සුබ පැතුම් !

    ReplyDelete