Compiling vs Scripting

Reading Time: 1 minute

Programming ပိုင်းမှာ ၂မျိုးအမြဲတမ်းရှိပါတယ်။ Compiling နဲ့ scripting ပါ။ compiling ဆိုတာက program တစ်ခုကိုရေးပြီးရင် စက်နားလည်အောင် အမြဲတစေ ပြောင်းလဲပေးရတာကို compiling လို့ခေါ်ပါတယ်။ နောက်တစ်နည်းကတော့ scripting ပါ။ တိုက်ရိုက်မောင်းခိုင်းတာပါ။ မောင်းနှင်တဲ့အချိန်ကျရင် ကိုယ်ပိုင်လုပ်ထားတဲ့ script ကို စက်က အလိုလျောက် ဖတ်၊ ပြောင်းလဲပြီး လုပ်ဆောင်ပေးတာပါ။

Compiling

Compiling ဆိုတာက program တစ်ခုကို ရေးလိုက်တယ်ဆိုပါစို့။ အဲဒီမှာ ကိုယ်ရေးထားတဲ့ကုဒ်ကို တိုက်ရို်က်အသုံးပြုလို့မရပါဘူး။ အသုံးပြုချင်တယ်ဆိုရင် ကိုယ့်ကုဒ်ကို စက်ကနားလည်အောင် compiling လုပ်ပေးရပါတယ်။​အဲဒီမှာမှ စက်နဲ့ကိုက်ညီတဲ့ architecture ကို တိုက်ရိုက်ထွက်လာပြီး စက်နားလည်တဲ့ machine code လို့ခေါ်တဲ့ စက်ဘာသာစကားနဲ့ program ထွက်လာမှာပါ။​ အဲဒါပြီးရင်တော့ စိတ်ကြိုက် run လို့ရပါပြီ။ (ကိုယ့်စက်မှာပြောပါတယ်။) အကယ်၍များအခြားစက်တစ်လုံးမှာသွား run မယ်ဆိုရင်တော့ တခြားစက်ရဲ့ architecture ပေါ်မှာမူတည်ပြီးတော့ recompile ပြန်လုပ်ဖို့လိုပါလိမ့်မယ်။​ ဥပမာ- ကိုယ့်စက်က 64 bit ဖြစ်နေပြီးတော့ တခြားစက်တစ်လုံးက 32 bit ဖြစ်နေမယ်ဆိုရင် အဲဒီစက်အတွက်ကိုပြန်ပြီးတော့ compile ပြန်လုပ်ပေးရမှာဖြစ်ပါတယ်။ intel နဲ့ AMD ဆိုရင်လည်း processor အမျိုးအစားမတူတဲ့အတွက်ကြောင့် ပြန်ပြီးတော့ compile လုပ်ပေးဖို့လိုအပ်ပါတယ်။

compile language အမျိုးအစားတွေကိုပြောပါဆိုရင်တော့ C++, Java, Assembly ကဲ့သို့ language တွေဖြစ်ကြပါတယ်။

compiling လုပ်လိုက်လို့ အားသာချက်တွေကိုပြောပါဆိုရင်တော့ compiling လုပ်လိုက်တဲ့အချိန်ပေးလိုက်တဲ့အတွက်ကြောင့် code မှာ production error အရမ်းကိုနည်းသွားပါတယ်။ compiling လုပ်လိုက်တဲ့အချိန်မှာ အဲဒါတွေကို တစ်ပါတည်းစစ်ပေးသွားတဲ့အတွက်ကြောင့် production မှာ code error တက်တာ အရမ်းကိုနည်းသွားပါတယ်။

အရှိန်မှာလည်းမြန်သွားပါတယ်။ compile လုပ်ပြီးသားကုဒ်က စက်က နောက်တစ်ကြိမ်ပြန်ပြီးဖတ်စရာမလို တော့တဲ့အတွက်ကြောင့် ကုဒ်တွေက အဆင်သင့်သုံးလို့ရသွားပါတယ်။ အဲဒီအတွက်ကြောင့် အရှိန်မှာလည်းပိုမြန်ပါတယ်။

Scripting

Scripting ဆိုတာက ကိုယ်ရေးတဲ့ကုဒ်ကို run တဲ့အချိန်မှာ တမ်းပြီးတော့ update ဖြစ်ပြီး စက်က အလုပ်လုပ်သွားတာကို ဆိုလိုပါတယ်။ အဲဒါက ကိုယ့်အတွက် ပိုကောင်းတယ်ဆိုရင်တော့ scripting ဟာ သင့်အတွက်ပဲဖြစ်မှာပါ။ ဘာ architecture တွေ ဘာတွေ ကြိုတွက်ထားစရာမလိုပါဘူး။ ကိုယ်မောင်းလိုက်တဲ့အချိန်မှာ ကိုယ်မောင်းတဲ့စက်ရဲ့ architecture အပေါ်လိုက်ပြီး စက္ကန့်အလိုက် ပြောင်းလဲပေးနေမှာဖြစ်ပါတယ်။

Scripting ရဲ့အားသာချက်က ချက်ချင်းပြင်လိုက်ရင် ချက်ချင်းတက်ပါတယ်။ compiler တွေလိုမျိုး တစ်ခုချင်းစီကိုပြန်ပြီးတော့ compile မလုပ်ရတဲ့အတွက်ကြောင့် code ရေးချိန် အရမ်းသက်သာပါတယ်။

နောက်ပြီးတော့ ကိုယ့်code ဟာ architecture မရွေးတော့ပဲ မောင်းနိုင်ပါတယ်။​ အဲဒီအတွက် သက်ဆိုင်ရာစက်မှာ မောင်းလို့ရတာနဲ့ ဘာမှအပူအပင်မရှိပဲမောင်းလို့ရပါတယ်။

scripting တွေမှာတစ်ခုရှိတာက path လမ်းကြောင်းတွေထားပေးဖို့လိုပါတယ်။ အဲဒါကတော့ Web အတွက် path လမ်းကြောင်းတွေ ရှာဖွေခြင်း ဆိုတဲ့ topic မှာ web အတွက်ထားတဲ့လမ်းကြောင်းတွေကို ပြပေးထားပါတယ်။

scripting language တွေထဲမှာ PHP, NodeJS တို့ဖြစ်ကြပါတယ်။

Semi Language

အားလုံးကြားထဲမှာ ကြားခံတစ်ခုထွက်လာတာထဲမှာ ထူးခြားတာကတော့ semi-language ပါပဲ။ သူကလည်း များများစားစားမဟုတ်ပါဘူး။ Java တစ်ခုတည်းပါ။ Java က compile language ထဲပါတယ်ဆိုသော်ငြား fully compile language မဟုတ်သလို scripting language လည်းမဟုတ်ပါဘူး။ Semi ထဲမှာပါပါတယ်။ သူက compile လုပ်လိုက်ရင် byte code ဆိုတဲ့ machine မကျ human မကျ code တစ်မျိုးထွက်လာပါတယ်။ အဲဒါကို နောက်ပိုင်းမှာ C++ ကလည်း လုပ်လာပါတယ်။ သို့သော်ငြား Java ကိုစောင်းပေးပြောပါရစေ။ အဲဒီမှာ ကိုယ်က မောင်းချင်တယ်ဆိုတော့မှ Java က သူနဲ့သက်ဆိုင်ရာ စက်အတွက် machine code ကိုပြန်ထုတ်ပေးပါတယ်။ web အတွက်လည်းကောင်းသွားသလို app တွေအတွက်ကောင်းတယ်ဆိုပေမယ့် သိပ်တော့လည်း အားမရခဲ့ပါဘူး။ စမ်းကြည့်သမျှ အတုက အတုပါပဲ။ အဲဒီလောက်ပဲပြောချင်ပါတယ်။ web အတွက်ကတော့ ကောင်းပါတယ်ဗျား။