July 21, 2013

C ද , JAVA ද වැඩිය හොඳ ??...!!




      එදා 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:

Anonymous said...

machn ,me blog 1 nama c sinhalen neda? mekata java patalannepa saho.oyala eka wenama blog 1k vdyta krnnnko.plzzzzzz

Anonymous said...

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

Unknown said...

හරි කට්ටිය java දානවට අකමැතිනම් අපි java නොදැ ඉන්නම් එහෙම හොදයිද???????? අපි java දන්න පටන් ගත්තේ c කියන language එක වැඩි දෙයක් කියල දෙන්න දෙයක් නැති නිසා. ඔයාලගේ කැමැත්ත කියන්න මොකද අපි මේ බ්ලොග් එකට add දාල වෙසක් කුඩුවක් කරන්නේ නැත්තේ මේකෙන් කාට හරි දෙයක් ගන්න පුළුවන් වෙන්න කරන දෙයක් නිසා ඒ නිසා ඔයාලගේ කැමැත්ත කියන්න...

Anonymous said...

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

අතීතයෙන් සොඳුරු තාක්‍ෂණික අනාගතයතට said...

හොඳටම හොඳයි. නියමෙට තේරෙන භාෂාවෙන් ලියල තියෙනවා. Good luck

අතීතයෙන් සොඳුරු තාක්‍ෂණික අනාගතයතට said...

හොඳටම හොඳයි. නියමෙට තේරෙන භාෂාවෙන් ලියල තියෙනවා. Good luck

Post a Comment

image

About C

C is a good language for hardware based applications and is the base of the best selling Windows OS. And is a key subject to most of the university students.

image

About us

We are students from an institute of software engineering, Sri Lanka, and we aim to make this the best blogspot for C language. Thanks!