ඔයාලා හිතන විදිහට හොඳම Programming Language එක මොකද්ද?

GreenCoder
GreenCoder
මම programming ඉගෙන ගන්නවා තාම. මම දැනට ඉගෙන ගන්නේ python. එත් මම තව අහල තියෙනවා Java, PHP, Javascript, C++ වගේ තව ගොඩක් programming languages. ඔයාල හිතන විදිහට හොඳම programming language එක මොකද්ද?
Tagged:

Comments

  • krrp
    krrp
    Senior Level
    hama programming language ekakma hondai... eka eka languages ganne eka eka wada walata.

    Milliseconds walin execute wenna oni programs code karanna oni C++ walin.
    Web developing nam itin javascript, php, python, ruby wage languages hondai.
    Windows base softwares nam VB.net, C#.net, Java wage ewwa hondai..
    AI developing nam Prolog, LIPS hondai

    oya oya serama igena ganna one na. eka language ekak hariyata igena ganna. etakota anith languages dawasin deken igena ganna puluwan oyata oni unoth.
  • wind
    wind
    Senior Level
    godak aya kiyanne java kiyala neda ?
  • sAsItHa
    sAsItHa
    Senior Level edited September 2016
    wind wrote:

    godak aya kiyanne java kiyala neda ?

    හොදම එක නෙවේ මේ කාලය තුල ජනප්‍රියම එක java.ඉදිරියේදී ඒ තැන python හෝ c++ වේවී.
  • krrp
    krrp
    Senior Level
    කිව්වා: හොදම එක නෙවේ මේ කාලය තුල ජනප්‍රියම එක java.ඉදිරියේදී ඒ තැන python හෝ c++ වේවී.
    aniwaryenma e thana python gannawa. Python walin karanna bari godak dewal thiyenawa. e dewal karanna C++ language eka bhawitha wewi
  • sAsItHa
    sAsItHa
    Senior Level
    ShujaRafi wrote:
    හැම එකක්ම හොඳයි එකක් හරියට ඉගෙනගත්තොත් අනික්වා ලේසියෙන් අල්ලගන්න පුළුවන්, ආරම්භයක් විදිහට python හොඳයි, (මං නෙවෙයි කියන්නේ ලෝකේ ඉන්න දක්ෂම programmer Linus Torvalds) java, python වගේ ඒවා ගත්තොත් Java වැඩකරන්න real time byte code translate කරමින්, ඒකට අම්බානක resources ඕන, එනිසා එදිනෙදා සාමාන්‍ය සහ මද්යපරිමානයේ ඒවාට java භාවිත කරන එක එච්ච්ර සුදුසු නැහැ. නමුත් අවුරදු 10ක් තිස්සේ කරන විශාල project එකක හදිස්සියේ processor architecture එක මාරු කරන්න උනොත් Virtual Machine මත ක්‍රියාත්මක වන භාෂාවක වටිනාකම ලොවෙත් නැහැ. මොකද virtual machine එක අදාළ processor architecture එකට ක්‍රියාත්මක වන විදිහට සැකසීම භාෂාව හා අදාළ මනං කල්පිත යන්ත්‍රය දියණු කරන්නන්ගේ කාර්යක්. එනිසා ඒ මත ලියපු කේත VM එක වැඩකරන ඕනෑම් processor එකක ධාවනය කරන්න පුළුවන්. VM එක හරහා එනකොට කොහොමත් මන්ද ගාමීතත්වයක් තියෙනවා ඒක නැහැ කියන්න බැහැ (Android වල ඇනගෙන තියෙන්නේ :( ..) නමුත් බොහෝ වෙලාවට VM නිර්මාණය කරන්නේ පල්ලෙහා මට්ටමේ බශාවක සිට (පල්ලෙහා මට්ටම කිඋවේ භාෂාවේ හැකියාව නොවේ) උදාහරණයක් විදිහට JVM එක නිර්මාණය කරලා තියෙන්නේ C++ මත, අනික් කාරණය byte code භාවිත කරන බාශාවකින් kernel එකට driver එකක් හඳුන්වා දීම අසීරු කාර්යයක් එක් පැත්තකින් මන්දගාමීත්වය, driver එකක් ලියන්න නම් අනිවා c, c++, assembly, machine code එකකට යන්නම ඕන c c++ වගේ ඉහල මට්ටමේ භාෂාවක් මත ඉඳලා ඔයා code කරත් එය compiler එකෙන් හරවන්නේ ඍජු එලෙක්ට්‍රොනික භාෂාවට එනිසා hardware හැසිරවීමේදී පහසුයි, නමුත් debug කිරීමේදී ජෝන් ප්රෝස්පෙර් එකෙර්ට්, විලියම් මූච්ලි, ඩෙනිස් රිට්චී රිචේර්ඩ් ස්ටෝල්මෙන් යන යුග පුරුසයින්ගේ මවු පිය පාර්ශවය සිහිපත් කිරීම පරිගණක විද්‍යාව පිළිඹඳ සාමාන්‍ය න්‍යාය කියලා අපි සරලව හඳුන්වනවා :D :D
    අනික් කාරනවා ඔයා compiler එකක් භාවිතා කරලා amd64 එකට රචනා කරන කේතයක් ARMel architecture එකේ processor එකක් මත ක්‍රියාත්මක වෙන්නේ නැහැ සරලව කිඋවොත් desktop එකේ අරින software එක phone එකේ අරින්න බැහැ, ඒකට cross compiler එකක් භාවිත කරලා අර කේතය මේ processor මත ක්‍රියාත්මක වන විදිහට වෙනස් කිරීමකට ලක් කල යුතුයි (තව ටිකක් ඒගැන වැඩිපුර දැනගන්න ඕන නම් comment කරන්න) නමුත් python වලදී සුට්ටක් කතන්දරේ වෙනාස් වෙනවා python කේතයක් ධාවනය කරන පළමු අවස්ථාවේදී පහල මට්ටමේ කෙතගොනුවක් තියාගෙන ඉන්නවා ප්‍රධාන කේතයේ වෙනසක් වන තුරු එනිසා python හෙන සාර්ථක විසඳුමක් ඇයි කිඋවොත් දෙවන අවස්ථාවේදී code එක run වෙද්දී ආයේ runtime enviroment එකෙන් ඉල්ලා නොසිටින නිසා, නමුත් java හාවා එහෙම නෙමයි ගෙඩිය පිටින් memory එකෙන්(RAM) බඩු ඉල්ලයි.

    මෙතනින් පල්ලෙහා තියෙන එක මං වෙන තැනක දාපු එකක් චුට්ටක් හරි අදාළ වෙයි කියලා හිතන නිසා මෙතන දානවා.

    Android Linux සහ iOS XNU
    ප්‍රධාන ප්‍රශ්නය apple fan boy ලා ගේ සාමාන්‍ය පොර talk හැට හුටා මාර ඇතුලේ තියෙන පලවෙනි කතන්දරේ apple වල ram අඩු උනත් පට්ටම speed ය android බොකෑස් ය කාලයක් යද්දී හිරවෙනවාය ඔහොම කතන්දර, ඒ අතරේ තමන් සියල්ල දත් පස්සපත්තෙත් දත් කියලා හිතාගෙන තමන් advance ios users ලා යැයි කියාගන්න ඩයල් Benchmark කර පෙන්වා Android Linux බවත් ios UNIX බවත් Linux slow බවත් kernel ටෝක්ස් දීමට එති මුන් තමා මචන් අර Richard Stallmen, Linus Torvalds ලා වගේ අයටත් Linux වලට foreign architecture හදලා GNU GCC, G++ වලින් kernel , armel , armhf වලට cross compile කරලා instructions Reduce කරලා power efficiency හදලා දීලා තියෙන්නේ. Linus ලා Richard ලා බබාලා නේ. මුන්ගේ talk අහගෙන ඉන්න මොකුත් නොකියන අපි අතදරුවෝ.
    පලවෙනි සිද්දිය talk දෙන උන්ට කියන්නේ iOS UNIX නෙවයි ඔයි apple ලගෙම XNU තියෙන්නේ Mac OS එකෙත් දුවන්නේ XNU කියන kernel එකේ.
    දෙවෙනි සිද්දිය Benchmark + Linux සහ iOS වල apps මාරම ස්පීඩ් RAM අඩු උනත්
    Android දුවන්නේ Linux උඩ හරි එකේ ගැටළුවක් නැහැ නමුත් android වල ප්‍රශ්නයක් තියෙනවා android වල කරලා තියෙන්නේ Linux උඩට JVM එකට සමාන virtual machine එකක් අතඇරලා තියෙන්නේ Dalvic VM කියලා. අපි android app එකක් හැදුවම sdk එකෙන් කරන්නේ Dalvic byte code කියන විශේෂ කේතයට හරවලා ඒ කේත කොටස් apk එක ඇතුලේ store කරනවා. දැන් Dalvic VM කරන්නේ apk වල තියෙන byte code, real time translate කරලා kernel එක හරහා processor එකට instruction යවන එක. මේ කාර්ය කරන්න අම්බානක memory ඕන. නමුත් iOS වල එහෙම නැහැ මොකද objective c වලින් ලියන එක කෙලින්ම compiler එකn binary කරලා store කරගන්නවා android වල වගේ real time code translation එකක් කරන්නේ නැහැ ඒකයි එකම app එකේ apk එකට වඩා ios app එකේ size එක ගොඩක් ලොකු. දැන් ඔයගොල්ලන්ට ප්‍රශ්නයක් මතුවෙන්න පුළුවන් ඇයි එහෙනම් android වලට apple වල වගේ කෙලින්ම compile කරලා තියාගන්න බැරි කියලා. ඒකට හේතුව apple ලගේ තියෙන්නේ එක device එකයි ඒ device එකේ processor architecture එකට අදාළ compiler එක apple ලම හදලා දෙනවා අපේ ෆෝන් එකට app හදනවනම් අපේ compiler එක කියලා. නමුත් android වල තත්වේ එහෙම නෙවයි hardware හදන්නේ එකෙක් නෙවෙයි processor architecture එකක් නෙවයි තියෙන්නේ එක එකා එක එකාට ඕන විදිහට device හදන්නේ, හරි දැන් device හදන මිනිහා උගේ device එකේ processor එකට අදාලව linux kernel එක compile කරලා phone එක හදලා දෙනවයි කියමුකෝ. දැන් app හදන මිනිහට මොනවද වෙන්නේ ඒකා මේ ලෝකේ තියෙන හැම processor එකටම වෙන වෙනම app එක cross compiler එකෙන් compile කරන්න වෙන්නේ. ඒක අසාර්ථක අසීරු වැඩක්, එකයි android වල අරවගේ virtual machine එක හදලා ඒක උඩට අතාරින්නෙ linux kernel එක compile නොකරපු processor architecture එකක් ලෝකේ නැහැ එහෙමත් එකකට නැති උනොත් Linux open source නිසා processor හදන මිනිහට උගේ processor එකට instructions යවන්න ඕන විදිහට kernel එක උගේම compiler එකකින් compile කරලා හෝ අතින් ලියලා හදාගන්න පුළුවන්. phone හදන මිනිස්සුන්ටත් ලේසි එයාලට තියෙන්නේ එයාලා phone එකට දාන processor architecture එකට අදාළ linux kernel එක ඔබලා dalvic vm එක අතරලා දෙන එක. දැන් ඔබට තේරෙන්න ඕන ඔබේ පරිගණකයේ VM එකක් උඩ run කරන os එකකින් කරන benchmark එකෙන් ඔබේ පරිගණකයේ host os එකේ වේගය හෝ ඔබේ processor එකේ වේගය මනින්න බැහැ කියන එක(Android වල කරලා තියෙන්නේ ඔය වගේම VM එකක් linux උඩට අතැරලා තියෙන්නේ) . සරලව කිඋවොත් android වල කතන්දරේ ඕකයි. ART වලදී චුට්ටක් කතන්දරේ වෙනස් apps wala සමහර කොටස් compile කරගන්නවා එකියන්නේ install කරන වෙලාවේම ඒකයි android 4.4 ඉඳන් apps install කරද්දී ටිකක් පරක්කු වෙන්නේ. ART වලකරපු ඔය වගේ පොඩි පොඩි improvements නිසයි 512RAM එකෙත් android 4.4 පන ඇද ඇද හරි දුවන්නේ. නමුත් android 4.3 කෙලින්ම Dalvic නිසා 512 එකේ හොල්ලන්නවත් බැහැ සද්ද දාගෙන ART ආවා කියලා dalvic byte code අයින් උනේ නැහැ අයින් කරොත් apk නැහැ කොටින්ම android නැහැ native linux එකක් විතරයි තියෙන්නේ.
    නමුත් ubuntu phone එකේ කතන්දරේ වෙනස් වෙන්න හේතුව දැන් දකින දකින sources, Linux community එකෙන් හැම architecture එකටම compile කරන නිසා කෙලින්ම os එක armel, armehf architectures වල run කරන්න පුළුවන් desktop environment එක්කම මොකද commiunity එකෙන් හැම මගුලම හැම architecture එකටම compile කරන නිසා.
    උදා: මේ vlc player එකේ debian package එක link එකෙන් ගිහිල්ලා බලන්න හැම processor architecture එකටම package එක download කරන්න තියෙනවා.
    https://packages.debian.org/…/libreoffice-avmedia-backend-v…
    මෙහම හැම එකටම compile කරන නිසයි gimp එහෙම amd64 වල වැඩකරනවා වගේම armel වලත් වැඩකරන්නේ
    ඔයාලගේ android phone එකෙත් native linux shell programs run කරන්න පුළුවන් නමුත් GUI තියෙන program එකක් run කරන්න wayland or X වගේ display server එකක් දාන්න ඕන(බොහෝ විට අලුතෙන් port කරන්න වේවි) එහෙම නැත්තම් play store එකේ තියෙන VNC app එකකින් localhost එකට connect උනාම හරි.
    දැන් apple රෙදි හෝදන අය මේකටත් මොනා හරි කියාගෙන එනවකෝ, උඹලට මචන් apple එකෙන් බෙට්ටක් ඔතලා දුන්නොත් උඹලා "මේක තමයි ලෝකේ සුපිරිම බෙට්ට apple බෙට්ට මිරිකද්දී දෙපැත්තෙන් එනවා" කියන එවුන්image

    එල බ්‍රෝ.නොදන්න දෙවල් ගොඩක් ඉගෙන ගත්තා.
    එතකොට ඔයා කියන්නේ apple වලට වඩා android හොදයි කියලද?
  • 0xEDD1E
    0xEDD1E
    හොඳම programming language එකක් කියල එකක් කියන්න අමාරුයි. මොකද එක එක programming languages වල එක එක විශේෂතා තියෙනවා. ඒ නිසා හොඳම එම තීරණය වෙන්නේ ඔයා කරන වැඩේ මත.

    Computer science ඉගෙන ගන්න නම් Python, Racket වගේ එකක් තමා හොඳ. (එහෙම කිව්වම ඒවා ඉගෙන ගන්න අයට හදපු ඒවා කියල හිතන්න එපා, ඒවායේ ගොඩක් සංකීර්ණ භාවිතත් තියෙනවා).

    End-user portability එකක් බලාපොරොත්තු වෙනවා නම් Java, Python, Ruby වගේ එකක් හොඳයි. End-user portability කිව්වම මම අදහස් කලේ re-compile කිරීමක් නැතුව, ඕනෙම platform එකක, architecture එකක run කරන්න පුළුවන් වීම. එදා ඉඳන් ඔය පැත්තෙන් java වලට ලොකු පිළිගැනීමක් තිබුන. ඒත් දැන්නම් ඒ තැන ටික ටික HTML, CSS, JS කියන languages පැත්තට යනවා. ඉස්සර java වලින් හදපු cross-platform applications දැන් ඊට වඩා ලේසියෙන් website එකක් හදනව වගේ HTML, CSS, JS වලින් හදන්න පුළුවන්. (මම කතා කරන්නේ node.js, nwjs, electron වගේ ඒවා ගැන ;) ).

    ටිකක් සංකීර්ණ web programming/development projects වලටනම් python, ruby, dart, PHP, Perl වගේ ඒවා හොඳයි. PHP වගේ නම් ඒකටම තමයි පාවිච්චි වෙන්නේ. අනිත් ඒවායෙත් ඒ web programming වැඩ වලට පහසුකම් තියෙනවා.

    ``Programming'' කරන්න (කරන්නේ මොකද්ද කියල හරියටම දැනගෙන programming කරන්න) ඕනේ නම්, ඒ කියන්නේ program එකේ හැම දෙයක් ගැනම අවබෝධයෙන්, machine එකත් එක්ක ලඟින් programming කරන්න ඕනේ නම්, C, FORTRAN, Pascal, C++ වගේ එකක් තමා හොඳ. මොකද මේවගේ languages හුඟක් සරලයි. ඒ නිසා උදාහරණයක් විදිහට C කියන්නේ බොහොම සරල language එකක්, කොච්චර සරලද කිව්වොත් python, ruby, java වලදී තියෙන String data type එකවත් C වල නෑ ඒ වෙනුවට char array එකක් තමයි පාවිච්චි කරන්න ඕනේ. මේක දුර්වල තාවයක් වගේ පෙනුනට මේ සරල බව නිසා තමයි, C හදපු දවසේ ඉඳන් මේ වෙනුවෙන් පිහිටවපු කිසිම ආයතනයක් නැතුව අදටත් system programming වල ප්‍රධාන භාෂාව (Lingua Franca) විදිහට තියෙන්නේ.
    මේ වගේ languages වලින් අපිට කෙලින්ම machine එක පාලනය කරන්න පුළුවන්. සීමා කිරීම් බාධා කිරීම් අඩුයි. උද්දහරනයක් විදිහට C වල තියෙන pointers වැලින් අපිට කෙලින්ම RAM (program එකේ Data segment එක තුල) ඇතුලට යන්න පුළුවන්. එත් Java වගේ එකක pointers නැති නිසා එහෙම හැකියාවක් නෑ (හැබැයි java program එකක් ලියද්දි pointers වල අවශ්‍යතාවයක් මතු වුනොත් ඒ කියන්නේ ලියපු program එක හොඳ, නීරෝගී එකක් නෙමෙයි කියන එක).
    හැබැයි මේකේ තියෙන අවාසිය තමයි, සමහර විට program එක ලියන්න ගියා වගේම කාලයක් debugging වලටත් යොදවන්න වෙන එක.

    ``Real Programming'' කරන්න ඕනේ නම්, ඒ කියන්නේ කෙලින්ම processor, RAM වගේ ඒවා හසුරවන්න ඕනේ නම් Assembly programming තමයි පාවිච්චි කරන්න වෙන්නේ. හැබැයි මේක ඉගෙන ගන්න අවුරුදු 10ක් 20ක් වත් යනවා. ඒ නිසා ලොකුම ආසාවක් තියෙනවා නම් හැරෙන්න (ඇත්තටම computer එක තේරුම් ගන්නා ඕනේ නම්) මේක ගැන වැඩිය හිතන්න ඕනේ නෑ

    programming ඉගෙන ගන්න නම් python තමයි හොඳම, ඉන්පස්සේ java වගේ එකක් ඉගෙන ගත්තට කමක් නෑ.
    GreenCoderkrrp
    Being able to break security doesn't make you a hacker anymore than being able to hotwire cars makes you an automotive engineer
    - ESR ("How to become a Hacker")
  • GreenCoder
    GreenCoder
    thanks ඔක්කොටම
    මට තව ප්‍රශ්න දෙකක් තියෙනවා.
    1. මට python වලට IDE එකක් කියන්නකෝ, මන් කරන course එකේ තියෙන්නේ Anaconda කියල එකක් එක ටිකක් slow වගේ. වෙන එකක් නැද්ද? හොඳ ලස්සන එකක් :)
    2. python වලට වැඩියෙන්ම හොඳ windows ද ubuntu ද? මම ubuntu පාවිච්චි කරලා නෑ ඒත් මට පාවිච්චි කරලා බලන්න හිතෙනවා.
  • 0xEDD1E
    0xEDD1E
    කිව්වා: 1. මට python වලට IDE එකක් කියන්නකෝ, මන් කරන course එකේ තියෙන්නේ Anaconda කියල එකක් එක ටිකක් slow වගේ. වෙන එකක් නැද්ද? හොඳ ලස්සන එකක්
    pyCharm හොඳයි. ඒ නැත්නම් මෙතන තියෙනවා list එකක් එකෙන් එකක් තෝරාගන්න
    කිව්වා: 2. python වලට වැඩියෙන්ම හොඳ windows ද ubuntu ද? මම ubuntu පාවිච්චි කරලා නෑ ඒත් මට පාවිච්චි කරලා බලන්න හිතෙනවා.
    ඔය දෙකෙන් හොඳ එකක් කියන්න අමාරුයි python developement සම්බන්ධව. මටනම් දෙකම හොඳයි. හැබැයි ubuntu පාවිච්චි කලොත් python වෙනම install කරන්න දෙයක් නෑ. ඒක ලොකු පහසුවක්.

    ඔය ප්‍රශ්නේ අහන්නේ windows ද හොඳ linux ද හොඳ කියන අදහසින් නම්. මට අනුව ඔය දෙකම හොඳයි. මම ඔය දෙකම { windows + (xu|u)buntu } පාවිච්චි කරනවා. සමහර වෙලාවට linux ලේසියි. සමහර වෙලාවට windows ලේසියි. linux වල ඉගෙන ගන්න ගොඩක් දේවල් තියෙනවා ඒවා windows වල වගේ අමාරු නෑ. අනික් අතට windows වල, linux වලට වඩා user-friendly ගතිය හොඳයි. (හැබැයි ඒකම තමයි වෙලාවකට හරහට හිටින්නේ :( )
    මම නං කියන්නේ ඔය දෙකම දාගෙන පාවිච්චි කරලා බලන්න කියල. (VM එකක් පාවිච්චි කරනවා නම් ubuntu වලට වඩා xubuntu හොඳයි)
    Being able to break security doesn't make you a hacker anymore than being able to hotwire cars makes you an automotive engineer
    - ESR ("How to become a Hacker")
Sign In or Register to comment.

තාමත් එකතු වුනේ නැද්ද....??

▪ අලුත් විදිහට ලෝකය දකින.......................!

▪ අලුත් දේවල් කරන්න සිහින දකින...............!

▪ ඔබ වෙනුවෙන්ම නිර්මානය කල, ඔබගේම ෆොරමය, එකතුව.org

▪ ඉතින් දැන්ම එකතු වෙන්න, එකතුවත් එක්ක.

Sign In with Facebook Sign In with GooglePlus Sign In with OpenID Sign In with Twitter

මෙම සාකච්චාවට සම්බන්ද වූ අය

Advertisement

© Copyright 2016 - ekathuwa.org | Powered By Max Web Solutions