Wednesday, January 7, 2015

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



အခု ေရးမယ့္ ေဆာင္းပါးေတြကို ကၽြန္ေတာ္အပါအဝင္ 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)

No comments:

Post a Comment