PHP, CodeIgniter စတာတွေကို သင်နေရင်း Language ကို တစ်ခုတည်း အသေမှတ်သွားမှာစိုးတဲ့အတွက် နောက်ထပ် Language တစ်ခု အနေနဲ့ Python ကိုတွဲပြီး Django Framework ကို သင်ပေးမယ်ဆိုတော့ ထုံးစံအတိုင်း Python Language ကို ကိုယ်တိုင်လေ့လာကြရပြီး ကျွန်တော်ကတော့ Django Framework ကို သင်ပေးဖြစ်ပါတယ်။ အဲဒီလို သင်နေရင်း အားလုံးလဲ လေ့လာလို့ ရအောင် စာအုပ်တစ်အုပ်ပေါ် အခြေခံပြီး ရေးကြမယ်ဆိုတော့ Mark Lutz ရေးတဲ့ Learning Python ဆိုတဲ့ စာအုပ်ကို အခြေခံပြီး ရေးဖြစ်ကြပါတယ်။ အားလုံး တစ်ယောက် တစ်ပိုင်းစီ တာဝန်ယူပြီး ရေးလိုက်တော့ ဘယ်လောက်မှ မကြာတဲ့ အချိန်အတွင်းမှာ အားလုံးပြီးသွားပါတယ်။ လေ့လာတဲ့သူတွေအဆင်ပြေအော င်တစ်ပိုင်းခြင်းစီ တင်သွားမှာ ဖြစ်ပါတယ်။
================================================
(Onlineကနေသင်ကြားထားသောသင်ခန်းစာများ #အခမဲ့ သင်ယူပါ Link - https://myanmarboc.com
#free Registerပြုလုပ်ပြီး သင်ခန်းစာကို Enrollပြုလုပ်ပြီးမှလေ့လာဖို့မမေ့ပါနဲ့နော်)
ဘာကြောင့် Python ကိုသုံးကြရတာလဲ?
အခုအချိန်မှာ Programming Language ပေါင်းများစွာရှိနေပြီဖြစ်တဲ့အတွက်ကြောင့် မျက်နှာသစ်တွေအတွက် ကတော့ ပထမဆုံးအနေနဲ့ မေးခွန်းတွေ ဖြစ်နေကျပါပဲ။ စဉ်းစားကြည့်မယ်ဆိုရင် 1 million ပမာဏရှိတဲ့ Python User တွေဟာ တိုတောင်းတဲ့ ကာလအတွင်းမှာပဲ အမြောက်အများ ထွက်ပေါ်လာခဲ့ပေမဲ့ အဲ့ဒီမေးခွန်းအတွက် တိကျမှန်ကန်တဲ့ အဖြေကတော့ ရှိမလာခဲ့ပါဘူး။ Development Tools တွေကိုရွေးချယ်တော့မယ်ဆိုရင် တစ်ခါတစ်ရံမှာတော့ တိကျတဲ့ကန့်သတ်မှုပေါ်မှာပဲဖြစ်ဖြစ် ကိုယ်နှစ်သက်တဲ့ အပေါ်မှာပဲဖြစ်ဖြစ် အခြေခံ ရွေးချယ်တာကောင်းပါတယ်။
ဒါပေမယ့်လည်း ၁ဝနှစ်ကျော်ကာလအတွင်း အဖွဲ့ပေါင်း ၂၀၀ နဲ့ ကျောင်းသားစုစုပေါင်း အယောက် ၃၀၀၀ ကို Python သင်ကြားပေးပြီးတဲ့နောက်မှာတော့ အဓိကကျတဲ့ ဆိုလိုရင်းအချို့ ထွက်ပေါ်လာခဲ့ပါတယ်။ Python user အများစု ရည်ညွှန်းတဲ့ အခြေခံအကြောင်းရင်းကတော့ -
Software quality (ဆော့(ပ်)ဝဲ အရည်အသွေး)
အများစုအတွက် Python ရဲ့အလေးသာမှုက readability (ဖတ်ရှုနားလည် နိုင်ရန် လွယ်ကူမှု) ဖြစ်ပါတယ်။ အဆက်အစပ်ရှိပြီးတော့ အထွေထွေ အစိတ်အပိုင်းတွေမှာပါတဲ့ software quality ကတော့ scripting world ထဲမှာရှိတဲ့ တခြား tools တွေနဲ့ တသီးတသန့် ပုံစံမျိုးဖြစ်နေတာပါပဲ။ တခြား ပုံမှန် scripting language တွေနဲ့ယှဉ်ရင် Python code တွေဟာ ဖတ်လွယ်အောင် ပုံစံပြုလုပ်ထားတဲ့ အတွက်ကြောင့် နောက်တစ်ခေါက် ပြန်သုံးဖို့ အဆင်ပြေသလို ထိန်းသိမ်းရတာလဲ လွယ်ကူပါတယ်။ Python code တွေရဲ့ တူညီနေမှုက အကယ်၍ သင်ဟာ Python ကို မရေးတတ်ဘူး ဆိုရင်တောင်မှ လွယ်လွယ်လေးနဲ့ နားလည်လွယ်အောင် ပြုလုပ်ပေးပါတယ်။ ထပ်ပြီးတော့ Python က object-oriented programming (OOP) လိုမျိုး Advanced software reuse mechanisms တွေအတွက် အရမ်း အထောက်အကူ ပြုပါတယ်။
Developer productivity (Developer တွေအတွက် ထုတ်လုပ်ဖန်တီးနိုင်စွမ်း)
Python ကိုအသုံးပြုခြင်းကနေ C, C++, နဲ့ Java လိုမျိုး statically typed languages တွေထက် Developer Productivity မြင့်တက် လာနိုင်ပါတယ်။ Python code က C++, Java code တွေရဲ့ သုံးပုံတစ်ပုံ ငါးပုံတစ်ပုံ ပမာဏပဲရှိပါတယ်။ အဲ့ဒါကြောင့် စာရိုက်ရတာ နည်းလာမယ်၊ Debug (အမှားစစ် ပြုပြင်) လုပ်ရတာ နည်းလာသလို maintain (ထိန်းသိမ်း) လုပ်ရတာလည်း နည်းလာပါမယ်။ Python programs တွေက ချက်ချင်းကောက် run နိုင်သလို compile လုပ်တဲ့အချိန် နဲ့ တခြား tools တွေအသုံးပြုတဲ့အဆင့် တွေမပါတဲ့အတွက် programmer speed (Program ရေးသားရာမှာ အမြန်နှုန်း) ကိုမြှင့်တင်ပေးနိုင်ပါတယ်။
Program portability (ရွေ့ရပြောင်းရ လွယ်ကူမှု)
Python programs အများစုဟာ အဓိကကျတဲ့ computer platforms အများစုမှာတော့ မပြောင်းလဲပဲ run ပါတယ်။ ဥပမာပြောရရင် – Linux နဲ့ Windows ကြား Python code ကူးချင်ရင် ဒီတိုင်း script code လေးကို စက်တစ်လုံးနဲ့ တစ်လုံးကြား ကူးလိုက်ရုံပါပဲ။ ထပ်ပြီးတော့ Python ကနေပြီးတော့ coding portable graphical user interfaces, database access programs, web-based systems အပြင် တခြား အရာတွေအတွက် ရွေးချယ်စရာများစွာ ပြုလုပ်ပေးထားပါတယ်။ Program launches နဲ့ directory processing တွေပါတဲ့ operating system interfaces အထိတောင် Python မှာလွယ်လွယ်ပင် ကူးပြောင်းနိုင်ပါတယ်။
Support libraries (အထောက်အပံ့ပေးနိုင်သော Library များ)
Python မှာ လာကတည်းက standard library လို့ခေါ်တဲ့ အလွန်ကြီးမားတဲ့ တည်ဆောက်ပြီးသား ကူးပြောင်းလွယ်တဲ့ functionality တွေပါဝင်ပါတယ်။ အဲ့ဒီ Library က text pattern matching တွေကနေ network scripting တွေအထိ application-level programming tasks တွေကို array အနေနဲ့ ထောက်ပံ့ပေးပါတယ်။ ထပ်ပြီးတော့ Python ကို homegrown libraries နဲ့ third-party application support software တွေနဲ့လည်း ထပ်ချဲ့လို့ရပါသေးတယ်။ Python ရဲ့ third-party domain တွေဟာ web site construction, numeric programming, serial port access, game development အပြင် တခြားအရာတွေအတွက် tools တွေကိုလည်း ကမ်းလှမ်း ပေးထားပါတယ်။ NumPy extension ကို Free ရပြီး Matlab numeric programming system လောက်ကို စွမ်းဆောင်နိုင်တယ်လို့ ထုတ်ဖော်ပြောဆိုထားပါတယ်။
Component integration (အစိတ်အပိုင်းများ ပေါင်းစပ် ထည့်သွင်းခြင်း)
Python scripts ဟာ integration mechanisms တွေကိုကိုအသုံးပြုပြီးတော့ application တစ်ခုရဲ့ တခြား အစိတ်အပိုင်းတွေနဲ့ လွယ်လွယ်ကူကူ ပင်ချိတ်ဆက်နိုင်ပါတယ်။ အဲ့ဒီလို ပေါင်းစပ်ခြင်းက Python ကို product customization နဲ့ extension tool အဖြစ်အသုံးပြုစေနိုင်ပါတယ်။ ယနေ့မှာတော့ Python code ကို C နဲ့ C++ programs တွေကခေါ်ယူသုံးတဲ့ C နဲ့ C++ libraries တွေ၊ Java components တွေနဲ့ ပေါင်းစပ်နိုင်သလို၊ COM နဲ့ .NET လိုမျိုး frameworks တွေနဲ့လည်း ဆက်သွယ်လို့ရပါသေးတယ်။ နောက် SOAP, XML-RPC နဲ့ COBRA လိုမျိုး interfaces တွေပါတဲ့ networks တွေမှာလည်း တုံ့ပြန်နိုင်ပါတယ်။ Python ဟာ သီးခြားတည်ရှိနေတဲ့ tool တစ်ခုမဟုတ်ပါဘူး။
Enjoyment (စိတ်ချမ်းသာပျော်ရွှင်မှု)
အသုံးပြုရတာလွယ်ကူတဲ့အပြင် built-in toolset တွေကြောင့် Python က programming ကို ငြီးငွေ့ဖွယ်ကောင်းတဲ့ အလုပ်ဆိုတာထက် ပိုပြီး ပျော်ရွှင်ဖို့ကောင်းတဲ့ အသွင်ပြုလုပ်နိုင်ပါတယ်။ အဲ့ဒါလို အခြေအနေက ထိတွေ့ကိုင်တွယ်လို့မရတဲ့ အကျိုးအမြတ်ကြောင့် သူ့ရဲ့ productivity အပေါ်သက်ရောက်မှုက အရေးကြီးတဲ့ အရာတစ်ခုပါပဲ။
အဲ့ဒီလိုမျိုးအချက်တွေရှိနေပေမယ့် ပထမဆုံးနှစ်ချက်ဖြစ်တဲ့ quality နဲ့ productivity ကတော့ Python users အများစုကို အကျိုးအမြတ်အဖြစ်နိုင်ဆုံးပါပဲ။
Software Quality (ဆော့ဖ်ဝဲ အရည်အသွေး)
Design အနေနဲ့ ဆိုရင် Python ကရည်ရွယ်ချက် ကောင်းကောင်းနဲ့ အရိုးရှင်းဆုံး၊ ဖတ်လို့ အလွယ်ဆုံး syntax နဲ့ highly coherent programming model (အဆင့်မြင့်မြင့် အဆင့်ဆင့် ချိတ်ဆက် ဆက်စပ်နေတဲ့ Programing Model) တစ်ခု လို့ ပြောလို့ ရအောင် မွမ်းမံ ထားပါတယ်။ ပြီးခဲ့တဲ့ Python conference မှာ အားလုံး သဘောတူ ချမှတ်လိုက်တဲ့ ဆောင်ပုဒ်ကတော့ “Fit Your Brain” သင်စဉ်းစားတဲ့အတိုင်း ကွက်တိ လုပ်နိုင်တာ Python လို့ ဆိုပါတယ်။ Core Concept အနည်းငယ်ကို ပုံမှန်အတိုင်းလိုက်နာပြီး Python ရဲ့ Features တွေကို သတ်မှတ်လိုက်တဲ့အတွက် python language ကိုလေ့လာရာမှာ သင်ရလွယ်၊ နားလည်ရလွယ် ပြီး မှတ်မိလည်းလွယ်ပါတယ်။ လက်တွေ့မှာလည်း Python programmers တွေဟာ codeတွေကို ရေးတဲ့ဖတ်တဲ့ အခါမှာ ပုံသေ manuals ပုံစံမျိုး မှတ်ထားဖို့ မလိုတဲ့အပြင် ပုံမှန်မြင်နေကြ Code တွေကို အံ့သြဖွယ် ကောင်းလောက်စွာ ပြန်လည်ထုတ်ပေးနိုင်တဲ့ consistently designed system (အရာအားလုံး ညီညွတ်မျှတစွာ ပုံစံချထားတဲ့ စနစ်) တစ်ခုလည်း ဖြစ်ပါတယ်။
အတွေးအခေါ်ပိုင်း အရဆိုရင် Python က minimalist approach (လိုအပ်ချက်နဲ့ ကွက်တိ အနည်းဆုံး သုံးတဲ့ ချဉ်းကပ်နည်း) ကို မွေးစားထားတယ်လို့ ဆိုနိုင်ပါတယ်။ Coding task တစ်ခုကို ပြီးမြောက်အောင်လုပ်ဖို့ နည်းလမ်းတွေ အများကြီးရှိပေမယ့် အသိသာအထင်ရှားဆုံး၊ ကွဲပြားခြားနားမှု အနည်းဆုံးနဲ့ coherent interactions အစုတွေရှိနိုင်တာက minimalist approach တစ်ခုတည်းပါပဲ။
အဲ့ဒီအပြင် Python က interactions တွေရှုပ်ထွေးနေရင်တောင်မှ arbitrary decisions (လိုရာဆွဲတွေးလို့ရတဲ့ ဆုံးဖြတ်ချက်) တွေကို မပေးပါဘူး။ Python ရဲ့ လမ်းအတိုင်း စဉ်းစားမယ် ဆိုရင် အထဲမှာ ဝှက်ထားပြီး ဘာမှန်းမသိ လုပ်သွားတာမျိုး မဟုတ်ပဲ အားလုံး ရှင်းရှင်းလင်းလင်း သိနိုင်ရမယ်။ ရှုပ်ရှုပ်ထွေးထွေးဖြစ်နေတာထက် ရှင်းနေတာက ပိုကောင်းတယ်လို့ စဉ်းစားရမှာ ဖြစ်ပါတယ်။
ဒီလို design themes တွေအပြင် Python မှာ ပုံမှန်အားဖြင့် code တွေကို ပြန်လည်အသုံးပြုနိုင်တဲ့ modules၊ OOP အစရှိတဲ့ tools တွေလည်းပါ ပါတယ်။ အဲဒီ tools တွေက code reusability (Code တွေ ပြန်သုံးလို့ရအောင်) ဖြစ်အောင်လုပ်ပေးပါတယ်။ Python ဟာ အရည်အသွေး ဦးစားပေး ဖြစ်တဲ့အတွက် Python programmers တွေလည်း အလားတူပါဘဲ။
Developer Productivity (Developer များ၏ ဖန်တီးနိုင်စွမ်း)
Internet အလွန်အမင်း အသုံးပြုလာတဲ့ ၁၉၉ဝခုနှစ် အလယ်နှောင်းပိုင်းကာလက Software Projects တွေကို implement လုပ်ဖို့အတွက် programmers တွေအလုံအလောက် မရှိတဲ့ အခက်အခဲတွေ ရှိခဲ့ပါတယ်။ Internet ပြောင်းလဲနေမှုက မြန်ဆန်သလောက် System တွေကို Implement လုပ်ဖို့အတွက် Developer တွေက တာဝန်ယူ ဆောင်ရွက်ရပါတယ်။ ယနေ့ အလုပ်လက်မဲ့တွေနဲ့ စီးပွားရေး ရုတ်သိမ်းခံရမှုတွေရှိတဲ့ Post-boom (အင်တာနက် ဆန်းပွင့်မှု ကာလအလွန် လုပ်ငန်းများ ပျက်သုန်းကြသည့် အချိန်) ခေတ်ကြီးမှာတော့ အဲ့ဒီဖြစ်စဉ်က အသွင်သဏ္ဍာန် ပြောင်းလဲ လာခဲ့ပါတယ်။ အဲဒီလို ပြောင်းလဲလာတဲ့ အနေအထားအရ Programmer တွေကို နည်းနည်းနဲ့ ကျဲကျဲဝိုင်းဖို့ အကြောင်းဖန်လာစေပါတယ်။ ပုံစံတူ အလုပ်တွေအတွက် လူနည်းနည်းနဲ့ မရဘူးလား။ မလုပ်နိုင်ဘူးလားလို့ မေးခွန်းထုတ်တာတွေ ခံလာရပါတယ်။
ဒီဖြစ်စဉ်တွေထဲမှာတော့ Python က Programmers တွေအတွက် နည်းနည်းနဲ့ ကျဲကျဲဝိုင်းဖို့ Tools တစ်ခုဖြစ်လာပါတယ်။။ နောက်ပြီး သူ့မှာ development speed အကောင်းဆုံး ဖြစ်အောင် ရည်ရွယ် ထားတဲ့ အတွက် simple syntax , dynamic typing ,lack of compile steps နဲ့ built-in ပါတဲ့ toolset တွေက အခြား tools တွေကို သုံးတာထက်စာရင် programmers တွေကို အချိန် တိုတိုလေး အတွင်းမှာ programs တွေကို develop လုပ်လို့ ရစေပါတယ်။ တခြား languages တွေနဲ့ ယှဉ်ရင်တော့ Python ကို အသုံးပြုတာက developer productivity ကို အများကြီးမြှင်တင်နိုင်စွမ်း ရှိတာ တွေ့ရပါတယ်။
Python က Scripting Language လား
python ဟာ ဘက်စုံသုံး programming language တစ်ခုဖြစ်ပြီးတော့ တခါတရံမှာ Scripting အနေနဲ့လည်း အသုံးပြုပါတယ်။ python ကိုအများအားဖြင့် Object-oriented scripting langauge လို့ခေါ်ကြလေ့ရှိပြီး OOP ကို အထောက်အပံပေးတဲ့ scripting langauge တစ်ခုအနေနဲ့ သတ်မှတ်ကြပါတယ်။ တခါတရံမှာ script ဆိုတဲ့ စကားလုံးကို program ဆိုတဲ့စကားလုံးအစား အသုံးများလေ့ ရှိကြပါတယ်။ script နဲ့ program ဆိုတဲ့ စကားလုံးတွေကို အပြန်အလှန် လဲလှယ် သုံးနေကြပြီး script ဆိုတာက တော့ ဖိုင်တစ်ဖိုင်ထဲ အခြေပြုတာဖြစ်ပြီး program ကတော့ ဖိုင်တစ်ဖိုင်နဲ့တစ်ဖိုင် ချိတ်ဆက်ထားတဲ့ application မျိုးဖြစ်နိုင်ပါတယ်။ script ဟာ program ဖြစ်ပေမယ့် program တိုင်းဟာ script မဟုတ်ပါဘူး။
scripting language နဲ့ပတ်သတ်ပြီး လူအမျိုးမျိုးအတွက် အဓိပ္ပါယ် သတ်မှတ်ချက် အမျိုးမျိုးရှိပါတယ်။ လူတစ်ချို့ကတော့ python ကို scripting language ဆိုတဲ့ အဆင့်မှာတင် အခေါ်ခံနေရတာ မကျေနပ်ကြပါဘူး။ python ကိုအသုံးပြုသူတွေ အပေါ်မူတည်ပြီး သုံးမျိုးသုံးစား ခေါ်ဆိုလေ့ ရှိကြပါတယ်။
Shell tools
လူတစ်ချို့ကတော့ python ကို scripting language လို့ပြောလေ့ရှိကြပါတယ်။ သူတို့အမြင်မှာတော့ pythong ဟာ Operating System နဲ့ အဓိက သက်ဆိုင်တဲ့ script တွေမှာအသုံးပြုလေ့ရှိကြတယ်လို့ မြင်ကြပါတယ်။ အဲဒီ program တွေဟာ command line ပေါ်ကနေတစ်ဆင့် ဖြတ်သန်းသွားလာပြီးမှ အလုပ်လုပ်တာဖြစ်ပြီး အဓိကအားဖြင့် text processing နဲ့ အခြား program တစ်ခုခုကို launch လှမ်းလုပ်တာမျိုးတွေပါဝင်ပါတယ်။ သူတို့အမြင်မှာတော့ python ဟာဒီအလုပ်တွေလုပ်နိုင်တယ်။ ဒါကြောင့် Shell tools လို့မြင်ကြခြင်းဖြစ်ပါတယ်။ ဒါပေမယ့် အဖြစ်မှန်ကတော့ python က ဒါတွေကိုလုပ်နိုင်တာမှန်ပေမယ့် ဒီထက်ပိုပြီးတော့ အများကြီးလုပ်နိုင်ပါသေးတယ်။
Control language
နောက်လူတစ်စုကတော့ scripting ဆိုတာဟာ control လုပ်တာရယ် ဒါမှမဟုတ် ညွန်ပြနဲ့နေရာမှာ အသုံးပြုတယ်လို့ ယူဆပါတယ်။ Python program တွေဟာ တခါတရံမှာ Application
အကြီးကြီးတွေရဲ့ကြားထဲမှာ အလုပ်လုပ်ပါသေးတယ်။ ဥပမာအားဖြင့် Hardware device တွေကို စစ်ဆေးတဲ့ နေရာမှာဆိုရင် Python program အနေနဲ component တွေခေါ်ပြီး low level access အနေနဲ့ အဲဒီ device ကို အသုံးပြုနိုင်ပါတယ်။ Python program တွေသုံးခြင်းဖြင့် end user တွေအသုံးပြုတဲ့ product တွေ ပြောင်းလဲမှုကို အထောက်အပံပေးနိုင်ပြီး အများကြီးပြင်စရာ ဒါမှမဟုတ် compile ပြန်လုပ်စရာ မလိုတော့ပါ။ Python ရဲ့ရိုးရှင်းမှုဟာ ပြောင်းလွယ်ပြင်လွယ်တဲ့ controlling tool တစ်ခုလို ဖြစ်နေပါတယ်။ တကယ်တမ်းတော့ ဒါဟာ Python ရဲ့ ဂုဏ်သတ္တိတွေ အများကြီးထဲက တစ်ခုဖြစ်ပေမယ့် Python programmer အတော်များများ ကတော့ standalone script တွေလောက်ပဲ ရေးနေပြီးတော့ တခြားအတွဲ အဆက်တွေကိုတော့ သိတာ တော်တော်ရှားပါတယ်။ တကယ်တမ်းတော့ Control language တစ်ခုအနေနဲ့သာမကပါဘူး။
Ease of use (သုံးရလွယ်တယ်)
Scripting language လို့ခေါ်ရတဲ့ ဖြစ်နိုင်တဲ့ နောက်တတစ်ချက် script language ဆိုတာ မြန်မြန် coding ရေးဖို့ လွယ်တဲ့ ရိုးရှင်းတယ်ဆိုတာပါပဲ။ Python နဲ့သာ အလုပ်လုပ်မယ်ဆိုရင် C++ လိုမျိုး Compile Language တွေနဲ့အလုပ်လုပ်တာထက် ပိုမြန်ပါတယ်။ နောက်ပြီး Rapid Development Cycle လိုမျိုးမှာ မြန်မြန်ဆန်ဆန် လုပ်တက်တဲ့ အလေ့အကျင့်ကို မွေးယူပြီးသား ဖြစ်သွားပါတယ်။ ဒါပေမယ့် ဒီလောက်နဲ့တင် မရပ်တန့်နေပါနဲ့။ Python is not just for simple tasks.
Python ဟာရိုးရှင်းတဲ့ ပုံစံရှိပေမယ့် အဲဒါက သုံးရတာလွယ်ကူပြီး ပြောင်းလွယ်ပြင်လွယ်လဲ ရှိပါတယ်။ Python ဟာရိုးရှင်းပါတယ်။ ဒါပေမယ့် မိမိတို့ လိုအပ်ချက်အပေါ် မူတည်ပြီးတော့ ရှုပ်ထွေးတဲ့ ပုံစံအထိလည်း ရေးသားနိုင်ပါတယ်။ အများအားဖြင့်တော့ အမြန်လိုအပ်တဲ့ ကိစ္စမျိုးတွေမှာရော ကာလရှည် နှစ်ရှည် လိုအပ်တဲ့ development တွေမှာရော အသုံးပြုပါတယ်။
ဒီတော့ Python ဟာ scripting language ဟုတ်သလား မဟုတ်ဘူးလားဆိုတာကတော့ ဘယ်သူသွားမေးလည်း ဆိုတဲ့အပေါ်မှာ မူတည်ပါတယ်။ ယေဘူယျအားဖြင့်တော့ scripting ဆိုတဲ့စကားလုံးဟာ မြန်မြန်ဆန်ဆန်နဲ့ ပြောင်းလွယ်ပြင်လွယ်ဖြစ်တဲ့ Development မျိုးကိုဆိုလိုပြီးတော့ အဲဒီလိုမျိုးပုံစံကိုလည်း python ကအထောက်အပံပေးပါတယ်။
OK, but What’s the Downside? (ကဲ ဘာတွေဆိုးလဲ)
Python ကို ၁၅နှစ်လောက်သုံး ၊ ၁ဝနှစ်လောက်သင်လာတဲ့ လူတစ်ယောက်အပြောအရတော့ python ရဲ့တခုတည်းသော အားနည်းချကက်တော့ execution speed က အမြဲတမ်းတော့ Complied Language တွေဖြစ်တဲ့ C နဲ့ C++ တို့လောက် မမြန်ပါဘူး။ အတိုချုံ့ ပြောရမယ်ဆိုရင်တော့ python code တွေဟာ byte code အနေနဲ့ interpret လုပ်ပါတယ်။ byte code တွေဟာ cross platform ဖြစ်ပြီးတော့ portability လည်းဖြစ်ပါတယ်။ ဒါပေမယ့် Python က binary machine code ကိုမထုတ်ပေးပါဘူး (ဥပမာ Intel chip ကို တန်းပြီးညွန်ကြားတဲ့ instruction မျိုးထုတ်မပေးပါဘူး)။ ဒါကြောင့် တစ်ချို့ program တွေက Compile လုပ်ထားတဲ့ C လို language နဲ့နှိုင်းစာရင်တော့ နှေးနေပါလိမ့်မယ်။ ကိုယ် ဘယ်လို program မျိုးရေးသည်ဖြစ်စေ execution speed မတူတာကိုတော့ သတိထားရပါလိမ့်မယ်။ python ကို အကြိမ်များစွာ ပိုမိုကောင်းမွန်အောင် optimize လုပ်ကြပါတယ်။ ဒါကြောင့်လည်း တစ်ချို့ application domain တွေအနေနဲ့ မြန်မြန်ဆန်ဆန် အလုပ်လုပ်နိုင်တာပါ။ ဒါအပြင် တကယ်တမ်း Python script နဲ့အလုပ်လုပ်တဲ့အခါမျိုး file တစ်ခုကို process လုပ်တာဖြစ်ဖြစ် ၊ GUI ကိုတည်ဆောက်တာပဲဖြစ်ဖြစ် ၊ အဲဒီလိုအခြေအနေမျိုးမှာတော့ python ဟာသူမလုပ်တော့ပဲ သူတာဝန်တွေကို Intrepreter ထဲမှာ Compile လုပ်ထားတဲ့ C code တွေ ပေးပို့လိုက်ပါတယ်။
နောက်အခြေခံကြတဲ့အချက်ကတော့ ယနေခေတ်ကွန်ပျုတာတွေရဲ့ speed နဲ့ နှိုင်းစာရင် python ရဲ့ development speed ကပိုမြန်နေတာဟာ execution speed နှေးနေတာတာထက် ပိုအရေးပါပါတယ်။ ဒါပေမယ့် ယနေ CPU speed တွေမှာတောင် တစ်ချို့ application domain တွေရဲ့ တစ်ချို့ execution speed တွေမှာတော့ နှေးနေတာကို တွေ့နေရတုံးပါတယ်။ အထူးသဖြင့် ပေါင်းနှုတ်မြောက်စား ကိန်းဂဏန်းတွေနဲ့ ပတ်သတ်တဲ့ Numeric programming တွေ Animation တွေမှာဆိုရင် သူတို့ရဲ့ component တွေပ ေါင်းစပ်တဲ့အခါ C speed နဲ့မြန်နေမှ ကောင်းတဲ့ အနေအထားမျိုးလည်း ရှိပါတယ်။ ဒါပေမယ့်လည်း သင့်အဲဒီလိုမျိုး application domain မှာ အလုပ်လုပ်နေတယ်ဆိုရင် python ကို အသုံးပြုနိုင်ပါသေးတယ်။ အဲဒီအပိုင်းတွေမှာတော့ Compile လုပ်ထားတဲ့ extension တွေသုံးပြီးတော့ Link ပြန်လုပ်ခြင်းဖြင့် python script တွေကို အသုံးပြုနိုင်ပါတယ်။
ဒီထဲမှာတော့ extension တွေနဲ့ပတ်သတ်ပြီးတော့ အသေးစိတ် မပြောတော့ပါဘူး။ ဒါကတော့ အပေါ်မှာ ရေးထားခဲ့တဲ့ python as a control language အနေနဲ့ အသုံးပြုခြင်းပါပဲ။ အဲဒီလို language နှစ်ခုသုံးထားတာကို ဥပမာတစ်ခု ပြရမယ်ဆိုရင် Numpy ဆိုတဲ့ numeric programming extension ဟာ python ရဲ့ extensionတစ်ခုဖြစ်ပြီးတော့ compiled လုပ်ထားသော optimize လုပ်ထားသော numeric programming extension တစ်ခုပါပဲ။ NumPy ဟာ Python ထဲမှာတော့ numeric programming tools တစ်ခုအနေနဲ့အသုံးပြုနိုင်ပြီး ထိရောက်မှုရှိပြီး အသုံးလည်းဝင်လှပါတယ်။ သင့်အနေနဲ့ ဒီ extension ကြီးတစ်ခုလုံး ထွက်လာအောင် ကိုယ်တိုင်ထိုင်ပြီး ခေါင်းကုတ်ပြီး ထိုင်ရေးနေစရာ မလိုတော့ပါဘူး။ Python က အဓိကအလုပ်လုပ်ပြီးတော့ ကျန်တဲ့ extension တွေကတော့ သင်လုပ်နိုင်တာထက် ပိုမိုပြည့်စုံကောင်းမွန်တဲ့ optimization mechanism ကိုပေးစွမ်းနိုင်မှာပါ။
Execution Model ပြောင်းလဲခြင်းများ
Internal execution flow တွေဟာ ဒီနေ့ Python ရဲ့ standard implementation ကို သက်ရောက်စေပြီး Python Language ရဲ့လိုအပ်ချက်တစ်ခုလည်းမဟုတ်ပါဘူး။ ဒါကြောင့် execution model ဟာအချိန်နဲ့အမျှ ပြောင်းလဲ စေခဲ့ပါတယ်။
Python Implementation Alternatives
Python ရဲ့ အဓိက implementations သုံးခု အနေနဲ့ CPython, Jython နဲ့ IronPython ဆိုပြီး ရှိပါတယ်။ CPython ကတော့ standard implementation ပါ။ တခြား implementation တွေမှာလည်းသူ့ ရည်ရွယ်ချက် နဲ့ လုပ်ဆောင်မှု အလိုက်ရှိပါတယ်။ အားလုံးကတော့ Python Language ပါပဲ ဒါပေမယ့် မတူညီတဲ့ပုံစံတွေနဲ့ program ကို execute လုပ်တာပါ။
CPython
CPython ကတော့ တခြားနှစ်ခုနဲ့ယှဉ်ရင်တော့ မူလ နဲ့ စံ ဖြစ်တဲ့ implementation တစ်ခုပဲဖြစ်ပါတယ်။ Portable ANSI C language code နဲ့ရေးထားတဲ့ အတွက်ကြောင့် CPython လို့ခေါ်တာပါ။ http://www.python.org ကနေ ActivePython distribution နဲ့အတူ download လုပ်ထားတဲ့ ဟာဆိုရင်တော့ အဲဒါ CPython ပါ။ Linux အများစု နဲ့ Mac OS X မှာဆိုရင်တော့နဂိုပါပြီးသားပါ။
စက်ထဲမှာနဂို install လုပ်ပြီးသားရှိနေတယ်ဆိုရင် အဲဒါ CPython ဖြစ်နိုင်ပါတယ်။ Python ကို Script Java သို့မဟုတ် .NET applications တွေနဲ့ မသုံးဘူးဆိုရင်တော့ စံဖြစ်တဲ့ CPython ကိုပဲသုံးချင်မှာပါ။ ဘာဖြစ်လို့လဲဆိုတော့ သူက reference implementation ဖြစ်ပြီး .. run တဲ့အခါမှာလည်း တခြား implementation တွေနဲ့ ယှဉ်ရင် အမြန်ဆုံး ၊ အပြည့်စုံဆုံး နဲ့ အကြီးမားဆုံးပါ။
Jython
Jython ကို မူလက JPython လို့သိခဲ့ကြပါတယ်။ Jython ဟာ Python ရဲ့ alternative implementation ဖြစ်ပြီး Java နဲ့ပေါင်းစပ်ဖို့ ရည်ရွယ်ခဲ့တာပါ။ Jython မှာ Java classes တွေပါဝင်ပြီး အဲဒီ classes တွေက Python source code တွေကို Java byte code အနေနဲ့ပြောင်းလဲပြီး Java Virtual Machine (JVM) ကိုပို့ပေးမှာဖြစ်ပါတယ်။ Python statements တွေကို .py text files အနေနဲ့ပုံမှန်အတိုင်းပဲ ရေးမှာဖြစ်ပြီး Jython system ကနေ .pyc byte code နဲ့ PVM (Python Virtual Machine) အစား Java-based equivalents အဖြစ် အစားထိုးမှာဖြစ်ပါတယ်။ Jython ရဲ့ရည်ရွယ်ချက်ကတော့ Python code တွေကို script Java applications အဖြစ်ပြောင်းဖို့ပဲဖြစ်ပါတယ်။ Java နဲ့ပေါင်းစပ်မှုဟာ လုံးဝ သိသာထင်ရှားမှုမရှိဘဲ တကယ့် Java Program run သလိုပဲထင်ရမှာပါ။ ဘာလို့လဲဆိုတော့ Python code တွေကို Java byte code အဖြစ်ပြောင်းလဲလိုက်လို့ပဲဖြစ်ပါတယ်။ Jython scripts တွေဟာ web applets နဲ့ servlets အဖြစ်ဆောင်ရွက်နိုင်မှာဖြစ်ပြီး Java-based GUIs တည်ဆောက်တဲ့နေရာမှာနဲ့ တခြားသော နေရာတွေမှာလည်း သုံးနိုင်မှာပါ။ ထို့ပြင် Python နဲ့ရေးနေသော်လည်း Java classes တွေကိုလည်း သုံးလို့ရမှာဖြစ်ပါတယ်။ Jython က CPython ထက်စာရင် ပိုနှေးပြီး CPython လောက်လည်းမကြီးပါဘူး။ ဒါပေမယ့် Java code ရဲ့ frontend အနေနဲ့ သုံးနိုင်မယ့် scripting language ကို ရှာဖွေနေတဲ့ Java developer တွေအတွက်ကတော့ အဓိက စိတ်ဝင်စားဖွယ်တစ်ရပ်ပါပဲ။
IronPython
တတိယ Python ရဲ့ implementation ကတော့ IronPython ပါ။ IronPython ကိုတော့ Microsoft ရဲ့ .NET Framework တို့ Linux ရဲ့ Mono တို့နဲ့ပေါင်းစပ်လို့ရအောင်ဒီဇိုင်းလုပ်ထားတာပါ။ IronPython ဟာ Python ကို client ရော server components အဖြစ်နဲ့ တခြား .NET Language တွေကနေပါ သုံးလို့ရအောင် လုပ်ထားပါတယ်။ IronPython မှာလည်း Jython လိုပဲ အနောက်နှစ်ဆင့်ဖြစ်တဲ့ byte code ပြောင်းတဲ့ နေရာနဲ့ PVM နေရာမှာ .Net environment အနေနဲ့ထုတ်ပေးမှာပါ။ ပြီးတော့ Jython လိုပဲ IronPython ကိုလည်း .NET components နဲ့ python ကိုပေါင်းစပ်ချင်တဲ့ developer တွေ အဓိက စိတ်ဝင်စားကြပါတယ်။ IronPython ဟာ တချို့ အရေးကြီးတဲ့ optimization tools တွေကို ပိုကောင်းအောင်တွန်းပို့ပေးနိုင်ပါတယ်။
Execution Optimization Tools
CPython, Jython နဲ့ IronPython အားလုံးက ပြုလုပ်ပုံခြင်းကအတူတူပါပဲ …. Source code ကို byte code ပြောင်းတယ် ပြီးရင် byte code ကို သင့်လျော်တဲ့ virtual machine မှာ excute လုပ်ပေးတာပါပဲ။ ပုံမှန် execution model ကိုသုံးမယ့်အစား Psyco just-in-time compiler နဲ့ Shedskin C++ translator အစရှိတဲ့ တခြား system တွေလည်းသုံးပါတယ်။ ဒီ system တွေကို ပုံမှန်အားဖြင့် python development လုပ်တဲ့နေရာမှာ သိဖို့လိုချင်မှာလိုပါမယ်။ ဒါပေမယ့် execution model မှာသူတို့ရဲ့ အလုပ်လုပ်ပုံကို နည်းနည်း လေ့လာလိုက်ရုံနဲ့ သာမန် မှာ model ကိုနားလည်လွယ်အောင်ကူညီပေးနိုင်မှာပါ။
The Psyco just-in-time compiler
Psyco system က တခြား Python implementation တစ်ခုတော့မဟုတ်ပါဘူး byte code execution model ကို တိုးချဲ့ပြီး program ကိုမြန်အောင်လုပ်ဆောင်ပေးတဲ့အစိတ်အပိုင်းတစ်ခုသာဖြစ်ပါတယ်။ Psyco က program ရဲ့ byte code အစိတ်အပိုင်း ကို binary machine code အဖြစ်ပြန်ပေး ရာမှာပိုမိုမြန်ဆန်အောင် PVM ကိုတိုးမြှင့်ပေးတာပဲဖြစ်ပါတယ်။ code အဖြစ်ပြောင်းစရာမလိုပဲ သို့မဟုတ် သီးခြား ပြောင်းလဲတဲ့ အဆင့်တွေမလိုပဲ ဘာသာပြန်ခြင်းကိုလုပ်မှာဖြစ်ပါတယ်။
အကြမ်းအားဖြင့် program run နေချိန်မှာ Psyco ဟာ ဖြတ်သန်းသွားတဲ့ objects တွေရဲ့ information တွေကို စုစည်းပါတယ်။ အဲဒီ information တွေကို object types တွေအတွက် အံဝင်ခွင်ကျ စီမံထားတဲ့ machine code တွေ generate လုပ်ဖို့သုံးပါတယ်။ ထုတ်လိုက်ပြီဆိုတာနဲ့ program ရဲ့ execution speed ကိုမြန်အောင် machine code က မူလ byte code တွေရဲ့သက်ဆိုင်ရာ အစိတ်အပိုင်းတွေကို အစားထိုးသွားပါတယ်။ Psyco နဲ့ဆိုရင် program ဟာ run နေတဲ့ အချိန်တွင်းမှာ ပိုမိုမြန်ဆန်လာပြီး တစ်ချို့ အခြေအနေမျိုးမှာ Python code တွေက Psyco အောက်မှာ ပြောင်းလဲထားတဲ့ C code တွေနီးပါးလောက်မြန်လာ တတ်ပါတယ်။ ဘာလို့လဲဆိုတော့ byte code ပြောင်းလဲမှုက program run နေတုန်းမှာဖြစ်တဲ့ အတွက် Psyco ကို သာမန်အားဖြင့် Just-in-time(JIT) compiler လို့ခေါ်ပါတယ်။ တကယ်တော့ Psyco က Java language တွေရဲ့ JIT compiler နဲ့ အနည်းငယ်ကွာခြားပါတယ်။ Psyco က specialized လုပ်ထားတဲ့ JIT compiler ပါ။ Program က တကယ်သုံးတဲ့ data type နဲ့အံဝင်ခွင်ကျဖြစ်တဲ့ machine code ကို ထုတ်ပေးပါတယ်။ ဥပမာ – program တစ်ခုရဲ့ အစိတ်အပိုင်းတစ်ခု က မတူညီတဲ့ data type ကို မတူညီတဲ့ အချိန်တွင်းမှာသုံးမယ် ဆိုရင် မတူတဲ့ combination တစ်ခုစီအတွက် Psyco က version မတူတဲ့ machine code တွေကို ထုတ်ပေးမှာပါ။
Psyco က Python code တွေကို သိသိသာသာ မြန်ဆန်လာစေမှာပါ။ Psyco ရဲ့ website မှာ ရေးထားချက်အရ Psyco က ၂ဆ က နေ အဆ ၁၀၀ ထိ အရှိန်မြှင့် တင်ပေးမှာပါ။ သာမန်အားဖြင့် ပြောင်းလဲထားခြင်းမရှိတဲ့ Python interpreter နဲ့ source code တွေနဲ့ ဆိုရင်တော့ အရှိန် ၄ဆ မြှင့် ပေးနိုင်ပါတယ်။ အများဆုံး အရှိန်မြှင့် ပေးနိုင်တာကတော့ pure python နဲ့ရေးထားတဲ့ algorithmic code တွေပဲဖြစ်ပါတယ်။ Psyco က python မှာ တရားဝင်တော့ ပါမလာသေးပါဘူး။ သူ့ကို သပ်သပ် install ထပ်လုပ်ရပါတယ်။ ဒါပေမယ့်နောက်ပိုင်းမှာတော့ အသစ်တစ်ခုဖြစ်ပြီး Psyco လိုပဲ ပိုမိုကောင်းမွန်အောင်လုပ်ပေးနိုင်တဲ့ “PyPy” ဘက်ကိုဦးတည်နေပါတယ်။ Psyco ရဲ့ မကောင်းတဲ့အချက်ကတော့ ခုလောလောဆယ်မှာ Psyco က Intel x86 architecture chips အတွက်ပဲ machine code ကိုပဲထုတ်ပေးနိုင်ပါတယ်။
The Shedskin C++ translator
Shedskin က တော့ ပေါင်းစပ်တဲ့ system တစ်ခုပဲဖြစ်ပါတယ်။ ပထမဆုံး python code တွေကို C++ code ကို ပြောင်းလိုက်ပါတယ် ပြီးမှ machine code အဖြစ်ကိုပြန်ပြောင်းလိုက်တာပါ။ အဲလိုလုပ်ခြင်းအားဖြင့် python code တွေကို run တဲ့ အခါမှာ platform-neutral ဖြစ်သွားစေပါတယ်။ Shedskin က စမ်းသပ်တဲ့ အဆင့် မှာပဲရှိပါသေးတယ် ဒါကြောင့် Shedskin အကြောင်းအသေးစိတ်ကိုတော့ ဒီမှာမပြောတော့ပါဘူး။
Frozen Binaries
အစစ်အမှန် python compiler ကိုမေး နေပြီဆို သူတကယ်ရှာနေတာ က သူ့ရဲ့ Python Program ကို standalone binary အနေနဲ့ထုတ်ဖို့ပါပဲ။ ဒီဟာက execution-flow concept ထက်စာရင် သူ့ရဲ့ program ကို ဈေးကွက်တင်ဖို့ idea ကပိုများပါတယ်။ ဒါပေမယ့်ဘာပဲဖြစ်ဖြစ်အားလုံးကဆက်နွယ်နေပါတယ်။
Python program ကို တကယ့် executable files ပြောင်းဖို့ဖြစ်နိုင်ပါတယ် Python world မှာတော့ Frozen Binaries လို့ခေါ်ပါတယ်။
Frozen binaries က program ရဲ့ byte code files တွေအားလုံးကိုစုပေါင်းပြီး PVM နဲ့ နောက်ပြီး program အတွက်လိုအပ်တဲ့ Python အထောက်အကူပြု files တွေကို တွဲပြီး package တစ်ခုအနေနဲ့လုပ်လိုက်တာပါ။ တစ်ခုနဲ့တစ်ခု လုပ်ဆောင်ချက်တွေက နည်းနည်းကွဲရင်ကွဲသွားပါလိမ့်မယ်။ ဒါပေမယ့် နောက်ဆုံး ရလဒ် ကတော့ customer အလွယ်တကူပေးလိုက်နိုင်မယ့် binary executable program တစ်ခုပဲရမှာပါ။ ဥပမာ – windows မှာဆို customer ကိုအလွယ်တကူပေးလိုက်နိုင်မယ့် .exe file လိုမျိုးပေါ့။ သူက byte code နဲ့ PVM ကို အစိတ်အပိုင်း တစ်ခုဖြစ်တဲ့ Frozen binary file အနေနဲ့ပဲပေါင်းပေးလိုက်တာပါ။
Frozen binaries လုပ်လို့ရမယ့် system သုံးခုရှိပါတယ်။ ပထမတစ်ခုကတော့ py2exe သူကတော့ Windows အတွက်ပါ။ နောက်တစ်ခုကတော့ PyInstaller (Py2exe နဲ့အတူတူပါပဲ) သူကတော့ Linux and Unix အတွက်ပါ။ နောက်ဆုံးတစ်ခုကတော့ freeze သူကတော့ Frozen binary ရဲ့ original ပါ။ ဒီ system တွေရဲ့ scope ကိုပြောရမယ်ဆိုရင်တော့ py2exe က Tkinter, Pmw, wxPython နဲ့ PyGTK GUI libraries တွေသုံးထားတဲ့ programs တွေနဲ့ pygame game programming toolkit သုံးထားတဲ့ program ၊ win32com client programs နဲ့ တခြားသော programs များကို standalone program အဖြစ်လုပ်ပေးမှာပါ။ Frozen binaries တွေက တကယ့် compiler တွေနဲ့တော့မတူပါဘူး။ Frozen binaries တွေက byte code ကို Virtual Machine ကနေ တစ်ဆင့် run တာပါ။ ဒါကြောင့် အစပိုင်းမှာ ဖြစ်နိုင်ချေရှိတဲ့ တိုးတက်မှု က လွဲလို့ frozen binaries တွေ ရဲ့ run တဲ့ speed က original file တွေနဲ့ တူတူလောက်ပဲဖြစ်မှာပါ။ Frozen binaries တွေက သေး မသွားပါဘူး (PVM ပါပါတယ်) ဒါပေမယ့် လက်ရှိစံနှုန်းအရ ပိုပြီးလည်း ကြီးမသွားပါဘူး။ ဘာလို့လဲဆိုတော့ Python ကို frozen binaries ထဲမှာပေါင်းထည့် ထားတာကြောင့်ပါ။ program ကို run ဖို့အတွက် Python ကိုထပ် install လုပ်စရာမလိုပါဘူး။ ဒီအပြင် code တွေကိုလည်း frozen binaries ထဲမှာပေါင်းထည့် ထားတဲ့အတွက် code တွေကို ထိထိရောက်ရောက် ဝှက်ထားလို့ရပါတယ်။
Tkinter toolkit ပေါ်မှာအခြေခံထား တဲ့ Python နဲ့ရေးထားတဲ့ program ကို executable file အနေနဲ့ပြောင်းပြီး program ကို CD ပေါ်မှာဖြစ်ဖြစ် Web ပေါ်မှာဖြစ်ဖြစ် တင်လိုက်ပြီဆိုရင် end users တွေအနေနဲ့ program ကို run ဖို့ Python ကို install လုပ်စရာလည်းမလိုပါဘူး။ Python ကို နားလည်ဖို့လည်းမလိုပါဘူး။
နောင်ဖြစ်နိုင်ချေများ ?
byte code formats အသစ် နဲ့ ပြောင်းလဲသွားတဲ့ implementation တွေ ဖြစ်လာနိုင်ချေရှိပါတယ်။
ဥပမာ
Programming languages အမျိုးမျိုးအတွက် တူညီတဲ့ byte code format ၊ virtual machine နဲ့ optimization နည်းလမ်း တို့ကို ရည်ရွယ်တဲ့ Parrot Project ထွက်ပေါ်လာခြင်း
Stakless Python system ဆိုတာကတော့ C language မှာ call stack တွေကို သိမ်းမထားတာတဲ့ standard CPython implementation variant ဖြစ်ပါတယ်။ ဒါဟာ Python ကို small stack architectures နဲ့ လွယ်လွယ်ကူကူ ported လုပ်လို့ရပြီး coroutines အစရှိတဲ့ novel programming possibilities တွေနဲ့ open-up လုပ်လို့ရမှာဖြစ်ပါတယ်။
PyPy လို့ခေါ်တဲ့ project အသစ်ကတော့ PVM ကို Python ထဲမှာပဲ reimplement လုပ်ပြီး implementation နည်းလမ်းသစ်တွေကိုလုပ်မှာပါ။
ဒီ အနာဂတ် implementation schemes တွေက python ရဲ့ runtime structure ကို တစ်နည်းနည်းနဲ့ တော့ပြောင်းသွားမှာပါ။ ဖြစ်နိုင်ချေရှိတာကတော့ byte code complier တွေကတော့ အချိန်အတိုင်းအတာတစ်ခုထိတော့ standard ဖြစ်နေအုံးမှာပါ။ သယ်ဆောင်ရလွယ်ကူမှုနဲ့ runtime flexibility ဖြစ်မှုတွေကတော့ Python system တော်တော်များများရဲ့ အရေးကြီးတဲ့လက္ခဏာတွေပဲဖြစ်ပါတယ်။ ဒါ့ပြင် static compilation ကို အထောက်အကူပြုဖို့အတွက် type constraint declarations တွေပေါင်းထည့် တာက Python coding ရဲ့ flexibility, conciseness, simplicity နဲ့ overall spirit တွေကို ပျက်စီးစေမှာပါ။ Python ရဲ့ မြင့်မားတဲ့ dynamic nature ကြောင့် အနာဂတ် implementation ဟာ ခုလက်ရှိ PVM ရဲ့ artifacts ကို ထိန်းသိမ်းထားနိုင်မှာပါ။
မူရင်း - PNA MYANMAR ICT ACADEMY
#Myanmar Web Store
မြန်မာနိုင်ငံရှိလုပ်ငန်းတိုင်း Webisteရှိစေရမည်။
Wednesday, October 28, 2020
Python အကြောင်း လေ့လာကြမယ်
Subscribe to:
Post Comments (Atom)
SEM ဆိုတာဘာလဲ?
SEM ရဲ့အရှည်ကောက်ကတော့ Search Engine Marketing ပါ။ SEO အကြောင်းကိုတော့ ကျွန်တော်တို့ Myanmar Web Store ကဖော်ပြပီးဖြစ်ပါတယ်ဗျာ SEMကိုလူအနည...
-
RAM ဆိုတာဘာလဲ? RAM ဘယ်လိုအလုပ်လုပ်လဲ? RAM ဆိုတာ Computer, Phone တွေမှာသာမက Gaming Console တွေမှာပါ ပါဝင်တဲ့ အရေးကြီးဆုံးအစိတ်အပိုင်းထဲက တစ...
-
Computer အသုံးပြုနေတဲ့ သူတစ်ယောက်အနေနဲ့ ကိုယ့် Computer ကို RAM Upgrade တိုးချင်လို့ပဲဖြစ်ဖြစ်၊ ကိုယ်လက်ရှိသုံးနေတဲ့ Computer မှာသုံးထားတဲ့...
-
မင်္ဂလာပါခင်ဗျာ။ ဒီနေ့မှာတော့ ကွန်ပြုတာတစ်လုံး၏ Keyboard တွင်ပါဝင်သော အသုံးဝင်တဲ့ Function Keys များအကြောင်းကို လေ့လာသွားမှာ ဖြစ်ပါတယ်။ Fun...
No comments:
Post a Comment