အခြား ဆက်စပ်ပို့စ်များ
- Python လေ့လာကြမယ် အပိုင်း (၁) – ရေးသားသူ (ဥက္ကာ)
- Python လေ့လာကြမယ် အပိုင်း(၂) – ရေးသားသူ (ဆုနှင်းဝေ)
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 တစ်ခုအနေနဲ့သာမကပါဘူး။
အကြီးကြီးတွေရဲ့ကြားထဲမှာ အလုပ်လုပ်ပါသေးတယ်။ ဥပမာအားဖြင့် 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
ကိုပေးစွမ်းနိုင်မှာပါ။
နိုင်လင်းအောင် (Myanmar Links)
ဆက်ပါဦးမယ်