စဥ္းစားမႈမပါဘဲ သင္ယူေသာ ပညာသည္ အခ်ည္းႏွီးျဖစ္၍ ၊ ပညာမရွိဘဲ စဥ္းစားျခင္းကား အလြန္ အႏၱရာယ္ၾကီးေပသည္။ (ကြန္ျဖဴးရွပ္)

Friday, October 14, 2011

Python လေ့လာကြမယ် အပိုင်း​ (၁)

by | posted: September 16, 2011

အခု ရေးမယ့် ဆောင်းပါးတွေကို ကျွန်တော်အပါအဝင် Myanmar Links Working Group အဖွဲ့သားများ အားလုံးစုပြီး ရေးကြမှာ ဖြစ်ပါတယ်။ PHP, CodeIgniter စတာတွေကို သင်နေရင်း Language ကို တစ်ခုတည်း အသေမှတ်သွားမှာစိုးတဲ့အတွက် နောက်ထပ် Language တစ်ခု အနေနဲ့ Python ကိုတွဲပြီး Django Framework ကို သင်ပေးမယ်ဆိုတော့ ထုံးစံအတိုင်း Python Language ကို ကိုယ်တိုင်​လေ့လာကြရပြီး ကျွန်တော်ကတော့ Django Framework ကို သင်ပေးဖြစ်ပါတယ်။ အဲဒီလို သင်နေရင်း အားလုံးလဲ လေ့လာလို့ ရအောင် စာအုပ်တစ်အုပ်ပေါ် အခြေခံပြီး ရေးကြမယ်ဆိုတော့ Mark Lutz ရေးတဲ့ Learning Python ဆိုတဲ့ စာအုပ်ကို အခြေခံပြီး ရေးဖြစ်ကြပါတယ်။ အားလုံး တစ်ယောက် တစ်ပိုင်းစီ တာဝန်ယူပြီး ရေးလိုက်တော့ ဘယ်လောက်မှ မကြာတဲ့ အချိန်အတွင်းမှာ အားလုံးပြီးသွားပါတယ်။ လေ့လာတဲ့သူတွေ​အဆင်ပြေအော င်တစ်ပိုင်းခြင်းစီ တင်သွားမှာ ဖြစ်ပါတယ်။ နောက်ဆုံး အားလုံးပြီးသွားတဲ့ အခါမှာ E-Book အဖြစ် ပြန်တင်ဖို့ အစီအစဉ်ရှိပါတယ်။ အားလုံးပဲ ရွှင်လန်းချမ်းမြေ့ကြပါစေ။ (အပိုင်းတွေ​​ ဆက်တိုက်တင်သွားဖို့ ရှိပြီး ဖြစ်တဲ့အတွက် အရင်လို မပြီးမှာ ပူစရာ မလိုတော့ပါဘူးခင်ဗျာ)
သီဟ (Myanmar Links)
ဘာကြောင့် 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 အများစုကို အကျိုးအမြတ်အဖြစ်နိုင်ဆုံးပါပဲ။
ဆက်ပါဦးမယ် … (မရှင်းလင်းသည်များ ရှိရင် ကွန်မင့်ပေးပြီး မေးနိုင်ပါတယ်ခင်ဗျာ)
K (Myanmar Links)
Related Posts Plugin for WordPress, Blogger...