එදා programming language පාඩම කියෙව්වනේ??? ඔන්න එහෙනම් පොරොන්දු උන විදියටම අද මන් කියල දෙන්න යන්නේ මන් බද කාට පුරා අපේ සෙට් එකෙන් ගුටි කන පාඩම...!!!
C vs JAVA
හරි එහෙනම් පාඩම පටන්ගමු. ඊට කලින් මන් කලින් දවසේ කිව්වා ඒවායේ පොඩි
සාරාංශයක් කියන්නම්.මොකද එක අද ඕනේ වෙනවා
රූප සටහන දැක්කම පාඩම මතක් වෙනවනේ ??? මිනිස්සු මුලින්ම හැදුවේ machine
code කියන programming language එක ඊළගට එකම ටික modify කරලා හදාගත්ත assembly
programming language එක, ඊළගට ඉතිහාසය උඩි යටිකුරු කරලා හැදුව human readable
නැත්තම් මිනිස්සුන්ට තේරෙන භාෂාවෙන් code ගහන්න පුළුවන් High level language එක.
අද ඉදන් අපි කතා කරන්නේ මේ high level language එක ගැන. high level
language එකේ ඇතිඋන languages ගොඩක් තියනවා ඒ අතරේ වැදගත්තම 2ක් තමා C කියන
programming language එකයි Pascal කියන programming language එකයි.
C කියන programming language එක එක හැදුවේ Dennis Ritchie. ඒ 1972 දී.
ඒවගේමයි pascal programming language එක හැදුවේ 1970දි Niklaus Wirth විසින් මේ භාෂා
2ක ගොඩක් සමානයි ඒවගේමයි 2කම ඒකාලේ හැටියට ගොඩක් හොඳ language 2ක්. එත් මේ 2ක අතරේ
තිව්නා ලොකු වෙනසක් ඒ තමා, c කියන්නේ system programming type එකේ language
එකක්එත් pascal කියන්නේ object oriented type එකේ මුලික අවදියේ programming
language එකක්. අන්න ඒ නිසා මේ 2කෙම තියන
හොද දේවල් එකතු කරලා මිනිස්සු හැදුව C++ මේක system programming සහ object
oriented programming කියන type 2කෙම අභාෂය ලබාගත්ත කවලම් මැල්ලුමක්. එත් මේ කවලම්
මැල්ලුම කොයිතරම් හොඳට මිනිස්සුන්ට හිතට ඇල්ලුවද කිව්වොත් තවමත් මිනිස්සු C++ කියන
language එක යොදාගන්නවා code කරන්න
ඒ කොහොම උනත් මිනිස්සුන්ට ටික කලක් යනකොට අලුත් වෙනසක් ඕනේ උනා. අන්න ඒ
වෙනස ඇතිකරේ James Gosline. ඒ 1995 දී JAVA කියන සම්පුර්ණයෙන්ම object oriented
සංකල්පය මතම නිර්මාණය උන programming language එක නිර්මාණය කරලා. එදා ඉදන් අද
වෙනකම් JAVA කියන භාෂාව මිනිස්සු භාවිත කරනවා code කරන්න. මොකද java කියන්න code
කරන්න ගොඩක් පහසු language එකක් අන්න එකයි
ගොඩක අය JAVA යොදාගෙන program හදන්න පෙලබිලා ඉන්නේ.java වල මේ තත්වයත් එක්ක James
Gosline, JAVA වල පැවැත්ම ඉස්සරහට ගෙනියන්න හැදුව Sun-microsystem කියන ආයතනය.
පස්සේ කලෙකදී එක ORACLE සමගම විසින් මිලදී අරන් දැන් අපි හැමෝම අසාවෙන් code කරන
java වල අයිතිකාරයා තමා ORACLE ආයතනය. අද වෙනකොට JAVA කොයිතරම් ජනප්රියද කිව්වොත්
java SE,EE ,ME විදියට progrm අවශ්ය වන හැම තැනකටම program හදන්න පුළුවන් විදියට
edition 3ක් ලබාදීලා තියනවා. අන්න ඒ නිසයි අපේ machine එකේ program හදන්න , වෙබ්
site පිටු හදන්න විතරක් නෙමෙයි අපේ 4න් 1ක ඇතුලටත් java වලට රිංගගන්න පුළුවන් වෙලා
තියනවා.
java ඒ තරම් ලොකු ජනප්රියත්වයක් ලබගන්නකොට C++නුත් නිකම් ඉදියේ නෑ. 2001දේ
C# කියල තවත් අලුත් programming language එකක් එලි දැක්වුණා. මේ C# කියන language
එක සම්පුර්ණයෙන්ම වගේ system programming සංකල්පය මත නිර්මාණය උන එකක්.
C++ , C# කියන programming language වලට වඩා JAVA කියන භාෂාව මිනිස්සු අතරට
ගියපු එකට ප්රදානම හේතුව උනේ platform dependancy කියන එක. කට අරුණ
නේ.............????
හරි මොකක්ද මේ programming language වල platform dependancy කියන්නේ?????
අපි එක එක්කෙනා භාවිතා කරන O/S නැත්තම් operating system එකිනෙකට වෙනස්.
මන් windows භාවිතා කරනකොට තව කෙනෙක් Linux භාවිතා කරාවි තව කෙනෙක් macOS , තවත්
කෙනෙක් Ubuntu නැත්තම් fedora කියල එකී මෙකි නොකී O/S භාවිත කරනවනේ... දැන් මන්
මගේ ගාව තියන windows machine එකේ ඉදන් මොකක් හරි program එකක් හදල මගේ යාලුවෙක්ට
දෙනවා
“ මචන් මන් software එකක් හැදුව..! බලපං මගේ වැඩ කොහොමද කියල”
යාලුවත් ඉතින් “ කෝ දියන් බලන්න”
කියල ගෙදර අරන් ගෙහින් දාලා
බලනවා... ටික වෙලාවකින් මට call එකක් එනවා
“ අඩෝ මොකක්ද බන් මේ මගුල වැඩ
කරන්නේ නැනේ ... “ කියල
මොකක්ද මේ උනේ....???????
එතකොට මන් යාලුවගෙන් අහනවා “ උබේ O/S එක මොකක්ද කියල “ බලනකොට ඌ ගව
තියෙන්නේ Ubuntu O/S එක දාපු machine එකක්.
මේ ප්රශ්නේ ට තමා platform dependancy කියල
කියන්නේ C++, C# කියන language වල තියන ප්රධානම අව්ල තමා මේ. අපි බලමු ඇයි මෙහෙම්
උනේ කියල
මන් ගාව තියනවා windows O/S එක තියන machine එකක්. ඒ machine එකේ ඉදන් C++
කියන programming language එක භාවිතා කරලා calc කියල program එකක් ලියනවා. ( අපි C++, C# භාවිත කරලා program
එකක් ලිව්වම එක text file එකක් නෙමෙයි program එකක් සදහා ලිව්ව එකක් කියල
හදුනාගන්න දීපු file extention එක තමා “ .cpp “ ඒ නිසා අපි අපිට තේරෙන භාෂාවෙන්
ලියපු මේ calc.cpp කියන file එකට කියනවා අපේ program එකේ source code file එක
කියල)
ඊළගට අර මන් කිව්වනේ programming language එකත් එක්ක එනවා කියලා compilar
කෙනෙක් උ මොකක්ද කරන්නේ අපි අපිට තේරෙන භාෂාවෙන් ලියපු source code file එක O/S
එකේ ඉන්න C.I ( command interpretor) කියවගන්න පුළුවන් භාෂාවකට හරවලා හදනවා
calc.exe කියන file එක
ඊළගට මන් කරන්නේ මන් ගව තියන calc.exe කියන file එක අරන් පොඩි පරීක්ෂණයක්
කරනවා
හ්ම්ම්ම්ම්ම්ම්ම්.......!! අපි අර source
code file එක compile කරපු machine එකේ තිවනේ windows O/S එක නිසා මේ windows
machine එකෙත් අර calc.exe එක run උනා. එත් linux O/S එක තිවන machine එකේ run උනේ
නෑ. ඒ කියන්නේ මෙතන හුටපටේ තියෙන්නේ O/S එක මත. එහෙම නේද???
ඔව් එක හරි. දැන් අපි බලමු ඇයි මෙහෙම් උනේ
කියල.
මුලින්ම බලමු මේ program එක run වෙන විදිය
අපි C++, C# වගේ platform dependent language
එකක් පාවිච්චිකරලා program එකක් ලියලා compile කරන කොට එයා ඒ source code file එක
compile කරන්නේ O/S එක ඇතුලේ ඉන්න Cammand interpretor ට තේරුම්ගන්න පුළුවන් වෙන්න
බව අපි දන්නවනේ. එත් එක එක O/S ඇතුලේ ඉන්න C.I. ල එකිනෙකට වෙනස්. ඒ කිව්වේ හිතන්නකෝ මෙහෙම C.I. ල හරියට භාෂා 2ක් දන්න translators ල වගේ
එයාලා දන්නේ processor එකත් එක්ක කතාකරන භාෂාවයි තව එයාලගේ මව් භාෂාවයි. දැන් මන්
windows machine එකේ ඉදන් calc.cpp එක
compile කරනකොට එක compile වෙන්නේ windows C.I. ගේ මව් භාෂාව උන english වලින්. ඒ
නිසා දැන් අපේ calc.exe එක ලියල තියෙන්නේ english වලින් දැන් මන් මේක ගෙහින් දානවා
linux machine එකකට linux C.I. කොන්දේ
බැදපු චීනෙක්. මන් ඌට මන් ලග english වලින් ලියල තියන calc.exe එක දීල මේක කියවල
වැඩේ කරපන් කිව්වට ඌට ඒක කියවගන්න බෑනේ.... අන්න ඕක තමා හේතුව.
ඒ කියන්නේ අපි C++, C# පාවිච්චි කරලා program
හදනවනම් windows වලට 1යි, linuxවලට එකයි,ubuntu වලට එකයි කියල program බර ගානක්
හදන්න වෙනවා.... මල පැනල අයෙ මල පනිනවා නේද...????
මෙන්න මේක වලක්වන්න නියම සුත්තරයක් හැදුව James
Gosline. ඒ තමා JAVA
කලින් වගේම මන් program එකක් ලියනවා එත්
මේපාර ලියන්නේ java වලින් ( මේකේ source code file එකේ extention එක “ .java”
එනිසා source code file එකේ නම “ calc.java”)
ඊළගට මන් එක compile කරනවා.ආ.!!!!!!!!!!!!!!!
යකෝ ආවේ ගියපාර වගේ “. exe “ file එකක් නෙමෙයි
“ . class “ කියල file එකක්.
කමක් නෑ මන් අයෙ අර යාලුවට කතා කරලා මගේ calc.class කියන file එක දෙනවා.
ටික වෙලාවකින් call එකක් එනවා “ අඩේ බන් උබනම් සුපිරිම වැඩ කාරයෙක් බන්
....!!” හුරේ වැඩේ හරි. එකියන්නේ java වලට O/S එකෙන් බලපෑමක් නෑ. සුපිරිනේ??????
ඔව් java කියන්නේ platform independent programming language එකක්. කොහොමද එක
උනේ???
අපි බලමු java program run වෙන විදිය
හරි දැන් අපිට තියනවා අපේ java source code file එක calc.java අපි දැන් එක
compile කරනවා.... අපිට ලැබෙන්නේ වෙනද වගේ calc.exe එකක් එනෙයි calc.class කියල
file එකක් ඇත්තම කිව්වොත් මේ calc.class කියා file එක කිසිම command interpreter
කෙනෙක්ට කියවන්න බෑ. එහෙනම් අහවල් එකකටද මේක හැදුවේ???
command interpretor ට කියවන්න බැරි උනාට අපි
java install කරනකොට අපිට එයාල තව program එකක් දෙනවා ඒ තමා JVM නැතම් java vertual
machine. ( දැන් නම් මේක ගොඩක් O/S එක්කම එනවා. එනිසා java නොදැම්මත් java program
run කරවගන්න අපිට පුළුවන්) අපි compile කරනකොට ඒ calc.class කියන file එක හැදෙන්නේ
මේ JVM එකට කියවගන්න පුළුවන් භාෂාවකින්. ඒ භාෂාව තමයි byte code language එනිසා මේ
calc.class file එකට අපි කියනවා byte code file. අපි දැන් මේ calc.class කියන file
එක run කරනකොට වෙන්නේ මේ JVM එක අර අපේ .class file එකේ තියන instruction කියවල
එකින් එක translate කරලා C.I. ට ලබා දෙනවා ( අපි මේකට කියනවා interprite කරනවා
කියල) C.I. එව්වා processor එකට තේරෙන්න translate කරලා processor එකට යවනවා.
මෙන්න මේ නිසා අපි java හදුන්වනකොට කියනවා java කියන්නේ compile & interpreted
programming language එකක් කියල.
දැන් බලමු කොහොමද කියලා මේක platform
independent වෙන්නේ කියල.
දැන් මන් compile කරලා හදාගත්තු calc.class
file එක ලියල තියෙන්නේ byte code language කියන භෂාවෙන් ඒක ඕනෙම JVM එකකට කියවගන්න
පුළුවන්. JVM එකටත් තේරෙන්නේ භාෂා 2යි 1ක් byte code අනික එයා install වෙන වෙලාවේ
බලනවා C.I. ට පුළුවන් මොන භාෂාවද කියල. ඊළගට අන්න ඒ භාෂාව ඉගෙන ගන්නවා. දැන් අපේ
JVM එකට පුළුවන් නේ අපේ calc.class file එකයි C.I. නුයි අතරේ translator විදියට
වැඩකරන්න. ඉත්න් මන් මේ calc.class file එක මොන O/S එකක run කරන්න හැදුවත් ප්රශ්නයක්
නෑ නේද???
අන්න ඒ විදියටයි JAVA කියන programming
language එක platform independent උනේ...
හ්ම්ම්ම්ම්ම්ම්ම්....!!! ඔය කියපුවා එක්ක C ද
java ද හොඳම කියල තීරණය කරන එක ඔයාලට බාරයි.
ඔන්න බාගෙන බලංටකෝ..................................................................................
ඔන්න බාගෙන බලංටකෝ..................................................................................
අපි ඊළගට හමුවෙමු අපේ 1වෙනි JAVA CODING පාඩමත්
එක්ක..........









6 comments:
machn ,me blog 1 nama c sinhalen neda? mekata java patalannepa saho.oyala eka wenama blog 1k vdyta krnnnko.plzzzzzz
kalin comment 1 dapu sahodaraya ho sahodarige comment 1ta mamath ekagai. c nam c, java nam java . c HINDAI API ME BLOG 1TA EKATHU UNE
හරි කට්ටිය java දානවට අකමැතිනම් අපි java නොදැ ඉන්නම් එහෙම හොදයිද???????? අපි java දන්න පටන් ගත්තේ c කියන language එක වැඩි දෙයක් කියල දෙන්න දෙයක් නැති නිසා. ඔයාලගේ කැමැත්ත කියන්න මොකද අපි මේ බ්ලොග් එකට add දාල වෙසක් කුඩුවක් කරන්නේ නැත්තේ මේකෙන් කාට හරි දෙයක් ගන්න පුළුවන් වෙන්න කරන දෙයක් නිසා ඒ නිසා ඔයාලගේ කැමැත්ත කියන්න...
c java compare karana 1 hari na ne? c low level language 1k ne. low level 1ka idala igena ganna 1 hoda kylai matanam htenne
හොඳටම හොඳයි. නියමෙට තේරෙන භාෂාවෙන් ලියල තියෙනවා. Good luck
හොඳටම හොඳයි. නියමෙට තේරෙන භාෂාවෙන් ලියල තියෙනවා. Good luck
Post a Comment