Friday, August 11, 2017

ပိုင်သွန် သို့မဟုတ် ရိုးရှင်းမှု၏စွမ်းအား

ပိုင်သွန် သို့မဟုတ် ရိုးရှင်းမှု၏စွမ်းအား

မိတ်ဆက်နိဒါန်း

                ကျွန်တော်တို့မှာ C, C++ , Java, PHP တို့ထက် ဆော့ဖ်ဝဲ ရေးသားထုတ်လုပ်နိုင်စွမ်း (productivity) ပိုကောင်းတဲ့ ပရိုဂရမ်ဘာသာစကားတစ်ခုရှိတယ်။ အဲဒီပရိုဂရမ်ဘာသာစကားရဲ့ ကွန်ပျူတာမှတ်ဉာဏ်သုံးစွဲမှု(memory consumption)အပိုင်းဟာ Java ထက်ပိုကောင်းပြီး၊ C သို့မဟုတ် C++ ထက်လည်း အများကြီးတော့ ပိုပြီးတော့ မဆိုးလှဘူး။ အဲဒီ ဘာသာစကားဟာ ၂၀၀၃ ကနေ အခု ၂၀၁၇ အထိ ဆယ့်ငါးနှစ်ဆက်တိုက် TIOBE Programming Community Index ရဲ့ အောင်မြင်ကျော်ကြားမှုအရှိဆုံး ထိပ်တန်း ပရိုဂရမ်ဘာသာစကားဆယ်မျိုးစာရင်းမှာအမြဲပါဝင်နေတယ်။ ၂၀၀၇ နဲ့ ၂၀၁၀ နှစ်တွေမှာ နှစ်တစ်နှစ်ရဲ့ ပရိုဂရမ်ဘာသာစကား (Programming Language of the Year)အဖြစ်လည်းသတ်မှတ်ခံခဲ့ရတယ်။  အခု ၂၀၁၇ ခု မတ်လ စစ်တမ်းတွေအရ ပဉ္စမမြောက် အကျော်ကြားဆုံးပရိုဂရမ်ဘာသာစကားဖြစ်တယ်။ ဒါ့အပြင် ၂၀၁၀ခုနှစ်လောက်ကစပြီး အဲဒီ ပရိုဂရမ်ဘာသာစကားကို ကမ္ဘာ့ထိပ်တန်း တက္ကသိုလ်ကြီးတွေမှာ ကွန်ပျူတာသိပ္ပံ၊ တုပအသိဉာဏ်ပညာ နဲ့ တခြား သိပ္ပံနဲ့အင်ဂျင်နီယာပညာရပ်တွေရဲ့ လက်တွေ့အသုံးချ ပရိုဂရမ်ဘာသာစကားအဖြစ်အသုံးပြုလာကြတယ်။ အဲဒီပရိုဂရမ်ဘာသာစကားအပါအဝင် အခြားဘာသာစကား တစ်မျိုးအထက် တတ်ကျွမ်းသူတွေအားလုံးက အဲဒီပရိုဂရမ်ဘာသာစကားကို "သင်ယူလေ့လာ အသုံးချဖို့ အလွယ်ကူဆုံး ဘာသာစကား" အဖြစ် တညီတညွတ်တည်းသတ်မှတ်ကြတယ်။ အဲဒီ ပရိုဂရမ်ဘာသာစကားကတော့ ပိုင်သွန် (Python) ပဲဖြစ်ပါတယ်။

 

နောက်ခံသမိုင်း

                ဘာသာပြန်အမျိုးအစားinterpreted language တစ်ခုဖြစ်တဲ့၊ အထွေထွေသုံး general purpose ပရိုဂရမ်ဘာသာစကား ပိုင်သွန်ကို  နယ်သာလန်နိုင်ငံသား ဒတ်ချ်လူမျိုး ကွန်ပျူတာပညာရှင် ဂူရီဒို ဗန် ရော့စ်ဆမ် (Guido van Rossum, born 31 January 1956) က ၁၉၈၉ ဒီဇင်ဘာမှာ စတင်တည်ထွင်ဖန်တီးခဲ့ပြီး ၁၉၉၁မှာ အများသုံးဖို့ ပထမဆုံးဖြန့်ဝေပေးခဲ့ပါတယ်။ Python 2.0 ကို ၂၀၀၀ခုနှစ် အောက်တိုဘာ ၁၆ ဖြန့်ချီခဲ့ပြီး၊ Python 3.0 ကို လုံးဝကွဲပြားခြားနားတဲ့ သီးသန့်လမ်းကြောင်းအသစ်တစ်ခုအဖြစ် ၂၀၀၈ ခုနှစ် ဒီဇင်ဘာ ၃ ရက်မှာ ဖြန့်ချိခဲ့တယ်။

 ပိုင်သွန်မှာပါဝင်ဖွဲ့စည်းထားတဲ့ လိုင်ဘရီ(library = ပရိုဂရမ်များ၊ ဆော့ဖ်ဝဲ module များ၊ ဆော့ဖ်ဝဲ package များ)တွေကို စုစည်းသိမ်းဆည်းထားတဲ့ တရားဝင်နေရာ (official repository) မှာ၊ ၂၀၁၇ မေလ စာရင်းတွေအရ ပိုင်သွန်ကိုထောက်ပံ့တဲ့၊ ပိုင်သွန် ပရိုဂရမ်ဘာသာစကားအတွက် အလုပ်လုပ်ပေးတဲ့၊ တခြားအဖွဲ့အစည်းတွေရဲ့ဆော့ဖ်ဝဲ( third-party software library) ပေါင်း ဟာ တစ်သိန်းခုနှစ်ထောင်ကျော် (၁၀၇၀၀၀)ရှိနေပြီလို့ဆိုပါတယ်။ အဲဒီဆော့ဖ်ဝဲလိုင်ဘရီတွေမှာ

·         gui, web frameworks, multimedia, databases, networking, communications စတာတွေနဲ့ပတ်သက်ပြီအသုံးချလို့ရတဲ့ အပိုင်းတွေပါဝင်သလို၊

·         ဆော့ဖ်ဝဲစနစ်တွေ နဲ့ တခြားစနစ်တွေကို စီမံခန့်ခွဲဖို့အတွက် လိုအပ်တဲ့ test frameworks, automation and web scraping နဲ့ documentation tools တွေလည်းပါဝင်ပါတယ်။

·         ဒါ့အပြင် သိပ္ပံ နဲ့ နည်းပညာ နယ်ပယ်တွေအတွက် scientific computing, text processing နဲ့ image processing တို့လို အလုပ်မျိုးတွေအတွက် တကယ့်ကိုပြည့်စုံကောင်းမွန်တဲ့ လိုင်ဘရီ တွေလည်း အမြောက်အများပါဝင်ပါတယ်။

 

သွင်ပြင်လက္ခဏာနှင့် အတွေးအခေါ်

                ပိုင်သွန်ဟာ ပရိုဂရမ်တည်ဆောက်ရေးသားမှုပုံစံအမျိုးမျိုးကို ထောက်ပံ့တဲ့ multi-paradigm programming language အမျိုးအစားဖြစ်တယ်။ ပိုင်သွန်ဟာ object-oriented programming  နဲ့ structured programming ပုံစံတွေကို အပြည့်အဝထောက်ပံ့ပေးတဲ့အပြင်၊ functional programming နဲ့ aspect-oriented programming တွေကိုပါ ထောက်ပံ့တယ်။ ဒါ့အပြင် design by contract နဲ့ logic programming ပုံစံတွေကိုပါ ချဲ့ထွင်သုံးစွဲလို့ရအောင် ပိုင်သွန်ကို ဒီဇိုင်းပြုတည်ဆောက်ထားတယ်။ ပိုင်သွန်ဟာ variable အမျိုးအစားတွေကို အရှင်ထားတဲ့ တစ်နည်းပြောရရင် variable တွေရဲ့ data type တွေကို ကြိုတင် ကြေငြာဖို့မလိုတဲ့ dynamic type အမျိုးအစားဖြစ်တယ်။ C, C++ ရဲ့လွှမ်းမိုးမှုခံရတဲ့ တခြား ပရိုဂရမ်ဘာသာစကားတွေလို ဆီမီးကော်မာ နဲ့ တွန့်ကွင်းကိုမသုံးပဲ ပိုင်သွန်ဟာ line of code တွေ code block တွေကို ခွဲခြားဖို့အတွက် white space ကိုသာအသုံးပြုတယ်။

ပိုင်သွန်ရဲ့ အတွေးအခေါ်ပိုင်းဆိုင်ရာ ဆောင်ပုဒ်တွေကတော့

·         လှပခြင်းဟာ ကြည့်ရဆိုးခြင်းထက် ပိုကောင်းတယ်။

·         တိတိကျကျ တိုက်ရိုက်ပြောလိုက်တာက သွယ်ဝိုက်ပြောတာထက် ပိုကောင်းတယ်။

·         ရိုးရှင်းခြင်းဟာ ရှုပ်ထွေးခြင်းထက် ပိုကောင်းတယ်။

·         ရှုပ်ထွေးခြင်းဟာ နားလည်ရခက်လောက်အောင်ရှုပ်ထွေးခြင်းထက် ပိုကောင်းတယ်။

·         ကုဒ်တွေကို ဖတ်ရှုနိုင်စွမ်းဟာ ထည့်သွင်းစဉ်းစားရမယ့်အချက်ဖြစ်တယ်။

 

ဘာကြောင့် ပိုင်သွန်ကိုလေ့လာသင့်တာလဲ

·         ပိုင်သွန်ဟာ လွတ်လပ်စွာ အခမဲ့ သုံးစွဲနိုင်တဲ့ ဆော့ဖ်ဝဲ Free and Open Source Software ဖြစ်တယ်။

·         သင်ယူလေ့လာရတာလည်းလွယ်ကူတယ်။ မြန်မြန်ဆန်ဆန်လည်း လက်တွေ့အသုံးချနိုင်တယ်။ ကုဒ် တွေက ကျစ်ကျစ်လျစ်လျစ်ရှိတဲ့အပြင် အလွယ်တကူ ဖတ်ရှုနားလည်နိုင်တယ်။ တွေးသလို ရေးနိုင်တဲ့ ပရိုဂရမ်ဘာသာစကားဖြစ်တယ်။

·         အသုံးအများဆုံး operating system ( Linux, Windows, Macintosh, Solaris, OS/2, Amiga, AROS, AS/400, BeOS, OS/390, z/OS, Palm OS, QNX, VMS, Psion, Acorn RISC OS, VxWorks, PlayStation, Sharp Zaurus, Windows CE and PocketPC) တိုင်းအတွက် ပိုင်သွန်ဘာသာပြန်ဆော့ဖ်ဝဲ Python Interpreter တွေရှိတယ်။ ဒါ့အပြင် Python ကုဒ်တွေကို C, C++, Java, JavaScript,Go ကုဒ်တွေအဖြစ် compile လုပ်ပေးနိုင်တဲ့ compiler တွေလည်း အများကြီးရှိတယ်။

·         (သီအိုရီအရ)အကန့်အသတ်မရှိတဲ့ ကိန်းပြည့်တွေကို အသုံးပြုနိုင်တယ်။ array နဲ့ matrix ဆိုင်ရာ တွက်ချက်မှုတွေ၊ numerical data processing and manipulation တွေကို အလွန်လျင်မြန်စွာ လုပ်ဆောင်နိုင်တယ်။

·         စာသား(String)နဲ့ပတ်သက်တဲ့ပြဿနာတွေနဲ့ အဘိဓါန်ရှာဖွေရေး(Dictionay Search)နဲ့ဆိုင်တဲ့ ပြဿနာတွေနဲ့ပတ်သက်လာရင် ပိုင်သွန်ဟာ တခြားပရိုဂရမ်ဘာသာစကားတွေထက် သိသိသာသာ အကောင်းမွန်ဆုံးလုပ်ဆောင်နိုင်တယ်။

·         CSV, Excel, relational and non-relational databases, HDF5 နဲ့  JSON အစရှိတဲ့ file format ပေါင်းများစွာနဲ့ အချက်အလက်ပေါင်းမြောက်များစွာကို အလွယ်တကူ ရေးနိုင်ဖတ်နိုင် ပြင်ဆင်ပြောင်းလဲတယ်။

·         Yahoo!, Google Finance, the World Bank အစရှိတဲ့ အဖွဲ့အစည်းကြီးတွေက ဝက်ဘ်အခြေခံ အချက်အလက်ရင်းမြစ် web-based data source တွေကိုလည်း အလွယ်တကူ တိုက်ရိုက်ဖတ်နိုင်တယ်။ processing လုပ်နိုင်တယ်။

·         အချက်အလက်တွေကို ရုပ်ပုံကားချပ်တွေနဲ့ သရုပ်ပြခြင်း data visualization ကိစ္စတွေကို အလွယ်တကူလုပ်ဆောင်နိုင်တယ်။

·         ပိုင်သွန်ရဲ့ ပြည့်စုံကြွယ်ဝတဲ့ လိုင်ဘရီတွေကြောင့် တုပအသိဉာဏ်ပညာ နဲ့ အချက်အလက်သိပ္ပံပညာအတွက် အသင့်တော်ဆုံး နဲ့ အကောင်းဆုံး ပရိုဂရမ်ဘာသာစကားဖြစ်တယ်။

 


အသုံးချနယ်ပယ်များနှင့် ဥပမာများ
ဂူးဂဲလ် ရှာဖွေရေးပရိုဂရမ်စာမျက်နှာ (google search engine)ဟာ အသွင်အပြင် အမြင်အာရုံအားဖြင့် ရိုးရှင်းပါတယ်။ ဒါပေမယ့် သူ့ရဲ့နောက်ကွယ်မှာ အလုပ်လုပ်နေတဲ့ ဂရပ်ဖ်သီအိုရီ(Grapyh Theory) ကိုလက်တွေ့အသုံးချထားတဲ့ အယ်ဂိုရစ်သမ်တွေ၊ တုပအသိဉာဏ်ပညာကိုင်းကွဲတစ်ခုဖြစ်တဲ့ သဘာဝဘာသာစကားအား အဆင့်ဆင့်အသုံးချမှု (natural language processing)ဆိုင်ရာ အယ်ဂိုရစ်သမ်တွေ၊ အသံဖြင့်ရှာဖွေမှု(voice search)၊ ရုပ်ပုံဖြင့်ရှာဖွေမှု (image search) တို့လိုကိစ္စရပ်နဲ့ ဆိုင်တဲ့ အယ်ဂိုရစ်သမ်တွေကို ပိုင်သွန်နဲ့ ​ရေးသားဖန်တီးထားတာဖြစ်ပါတယ်။ ဒီကနေ့ခေတ်ရဲ့ မရှိမဖြစ်နီးနီးအဆင့်ကိုရောက်ရှိနေပြီဖြစ်တဲ့ ဖျော်ဖြေရေးဆိုဒ် ယူကျုဘ်(Youtube) နဲ့ အဲဒီဆိုဒ်ရဲ့ စီမံခန့်ခွဲမှုဆိုင်ရာကိစ္စတွေကို  ပိုင်သွန်နဲ့ရေးထားတာပါ။ (မှတ်ချက်။ ဒီနေရာမှာ ယူကျုဘ် ကို ဖြော်ဖြေရေးဆိုဒ်လို့ သုံးစွဲလိုက်ခြင်းဟာ တစ်ဝက်တစ်ပျက်သာမှန်ပါတယ်။ တကယ်တော့ ပညာကို အမှန်တကယ်လိုလားသူတို့ရဲ့ အဓိက၊ ပင်မ၊ ပညာရင်းမြစ်ဟာလည်း ယူကျုဘ်ပဲဖြစ်ပါတယ်။ ပညာရှင်တွေ ပါမောက္ခကြီးတွေ ဝါသနာရှင်တွေရဲ့ သင်ခန်းစာပို့ချချက်တွေ၊ ဆွေးနွေးချက်တွေ၊ သင်ကြားမှုတွေဟာ Youtube ပေါ်မှာ ပညာရပ်နယ်ပယ်တိုင်းအတွက် အလျှံပယ်ရှိနေပါတယ်။)
                Instagram ဝက်ဘ်ဆိုဒ်ကလည်း ပိုင်သွန်နဲ့ရေးထားတာဖြစ်သလို လူမှုရေးသတင်းကွန်ယက်ဆိုဒ် social news networking site တစ်ခုဖြစ်တဲ့ Reddit ဆိုရင်လည်း အစအဆုံး အပြီးအစီး ပိုင်သွန်နဲ့ရေးသားထားတာပါ။ ဒါ့အပြင် Wikipedia, Google, Yahoo!, CERN - European Organization for Nuclear Research  ဥရောပ နြူကလီးယားသုတေသနအဖွဲ့၊ NASA- National Aeronautics and Space Administration  အမေရိကန် အမျိုးသား လေကြောင်းနဲ့အာကာသဆိုင်ရာ အုပ်ချုပ်ရေးအဖွဲ့ တို့လိုအဖွဲ့အစည်း...စတာတွေအပြင်၊ အမေရိကားရဲ့အကြီးမားဆုံး ငွေကြေးအဖွဲ့အစည်းတွေ ဘဏ်တွေဖြစ်တဲ့ Bank of America, Merrill Lynch နဲ့ J.P. Morgan တို့မှာ  ပိုင်သွန်ကို ကျယ်ကျယ်ပြန့်ပြန့်အသုံးချနေကြပါတယ်။ အထူးအလေးအနက်ထားပြောလိုတာက အခုတင်ပြခဲ့တဲ့အဖွဲ့အစည်းတွေအနေနဲ့ ပိုင်သွန်ဘာသာစကားတစ်ခုတည်းကို အသုံးပြုတယ်လို့ ဆိုလိုတာမဟုတ်ပါဘူး။ တခြား ပရိုဂရမ်ဘာသာစကားတွေကိုလည်းအသုံးပြုကြမှာ ဧကန်မလွဲပါ။ တကယ်တော့ အသေးစား ဆော့ဖ်ဝဲကုမ္ပဏီလေးတွေတောင် ပရိုဂရမ်ဘာသာစကားတစ်ခုတည်းကိုသုံးတာမျိုးမဟုတ်ပဲ စူးနေရာစူး ဆောက်နေရာဆောက်၊ ဒူးနေရာဒူး တော်နေရာတော် သင့်လျော်ရာ ပရိုဂရမ်ဘာသာစကားတွေကို သင့်လျော်တဲ့နေရာမှာ သင့်လျော်သလို အသုံးချကြတာပဲဖြစ်ပါတယ်။


နိဂုံးအမှာ
ui, database, business logic, login စတဲ့ ဆင်တူယိုးမှား စကားလုံးတွေပဲ ထပ်တလဲလဲပါဝင်နေတဲ့ အသေးစား နဲ့ အလတ်စား စီးပွားရေးဆိုင်ရာဆော့ဖ်ဝဲတွေ၊ စီမံခန့်ခွဲမှုဆိုင်ရာပရိုဂရမ်တွေကို နှစ်ပေါင်းများစွာ ရေးသားနေရတာ ငြီးငွေ့နေပြီဆိုရင် အခုအချိန်မှာ မိတ်ဆွေဟာ ပိုင်သွန်ကို လေ့လာပြီး အသစ်အဆန်းတွေ တည်ထွင်ဖန်တည်း စမ်းသပ်ကြည့်ဖို့ အသင့်လျော်ဆုံးအချိန်ပါပဲ။ ကွန်ပျူတာသိပ္ပံနဲ့ အိုင်တီပညာရဲ့ အရပ်ဂတ်လားရာတွေဖြစ်တဲ့ တုပအသိဉာဏ် (Artificial Intelligence)၊ သဘာဝဘာသာစကား အဆင့်ဆင့်အသုံးချမှု (natural language processing)၊ အချက်အလက်သိပ္ပံ (Data Science)၊ စက် လေ့လာသင်ကြားမှု(machine learning) နဲ့ဆိုင်တဲ့ သုတေသနလုပ်ငန်းတွေ ဆော့ဝဲတွေ ပရိုဂရမ်တွေ အတွက် အကောင်းဆုံး အထိရောက်ဆုံး အလိုက်ဖက် အသင့်တော်ဆုံး ပရိုဂရမ်ဘာသာစကားက ပိုင်သွန်ပါ။ သိပ္ပံ နည်းပညာနဲ့ အင်ဂျင်နီယာဆိုင်ရာ လုပ်ငန်းတွေနဲ့ ပတ်သက်ပြီး ရှုပ်ထွေးအဆင့်မြင့်တဲ့ တွက်ချက်မှုတွေကို  အဆင်ပြေချောမွေ့စွာ လုပ်ဆောင်နိုင်တဲ့ ပရိုဂရမ်ဘာသာစကားက ပိုင်သွန်ပါ။ မိတ်ဆွေရဲ့ မဟာဘွဲ့ ပါရဂူဘွဲ့စာတမ်းတွေအတွက် မူလသုတေသနနယ်ပယ်အတွက် ပေးရတဲ့အချိန်တွေကို မထိခိုက်စေဘဲ မိတ်ဆွေရဲ့ ကျမ်းကြီးကြပ် စစ်ဆေးသူတွေ စိတ်ဝင်စား အထင်ကြီးအလေးထားနိုင်လောက်တဲ့ mathematical model, software model, prototype တွေ အလွယ်တကူ တည်ဆောက် သရုပ်ပြနိုင်တဲ့ ပရိုဂရမ်ဘာသာစကားက ပိုင်သွန်ပါ။ နိဂုံးချုပ်ရရင်တော့ အနာဂတ်မှာတွေ့ကြုံလာရနိုင်တဲ့  နည်းပညာပိုင်းဆိုင်ရာစိန်ခေါ်မှုတွေကို  ရင်ဆိုင်ဖြေရှင်းဖို့ အသင့်ရှိနေကြောင်း သက်သေပြတဲ့အနေနဲ့၊ မိတ်ဆွေရဲ့ ကျွမ်းကျင်မှုစာရင်းထဲမှာ ပိုင်သွန်ပရိုဂရမ်ဘာသာစကားကို ထပ်မံဖြည့်စွက်လိုက်ပါလို့ လေးစားစွာ အကြံပြုလိုက်ပါတယ်။

REF:  

1.https://en.wikipedia.org/wiki/Python_(programming_language)

2. PH526x: Using Python for Research, video lectures by Jukka-Pekka "JP" Onnela, Assistant Professor of Biostatistics, Harvard University

https://www.edx.org/course/using-python-research-harvardx-ph526x

3. YVES HILPISCH(2015), Derivatives Analytics with Python, John Wiley & Sons Ltd

 

ရွှင်လန်းချမ်းမြေ့ပါစေ။

ကျော်ခိုင်စိုး(infoTherapy)

Verified Certificate:Using Python for Research(Harvard University via edX)

 



No comments:

Post a Comment

Note: Only a member of this blog may post a comment.