Flutter အစ Dart က
Flutter Framework လေ့လာလိုသူများအတွက် မရှိမဖြစ် မသိမဖြစ် လိုတာက Dart programing language ဖြစ်တယ်။ Dart ကို coding ကုဒ်တွေမရေးခင် သိသင့်ထားတာလေးတွေ ဝေမျှတာပါ ဒါမှ ကိုယ်စီးတဲ့မြင်း ရိုးရိုးမြင်းလား Zebraမြင်းလား သိမှာ။ ၂၀၁၁ ခုနှစ်မှာ “Future of JavaScript” ဆိုတဲ့ အီးမေလ်တစောင် Google ကုမ္မဏီထဲမှာ ပြန့်လာပြီးတဲ့နောက်ပိုင်းမှာ Google က JavaScript ထက်ကောင်းလာမယ့် Language ကုမ္မဏီအတွင်းထဲမှာ တခုဖန်တီးနေတယ်ဆိုတာ ပေါ်လွင်လာတယ် Dart လို့နာမည်မဟုတ်သေးဘူး “Dash” တဲ့။ JavaScript လိုလည်းကောင်းရမယ် အကုန်လုပ်နိုင်ရမယ် performance ကောင်းကောင်းနဲ့ အကြီးစား projects တွေမှာလည်း သုံးနိုင်ရမယ် ဆိုတဲ့ရည်ရွယ်ချက်နဲ့ပေါ့။
Dart 101
Dart က object-oriented language (OOP လို့ မှတ်ထားပေး) ဖြစ်တယ် compiles လုပ်ပြီး နောက်ဘက်မှာ ဘာထုတ်ပေးလဲဆိုတော့ (၁) native ARM code နှင့် (၂) သုံးဖို့ ready လုံးဝဖြစ်ပြီးသား JavaScript code ထုတ်လိုက်တယ်။ (ပုံတွင်ကြည့်ပါ)
ARM32, ARM64 ရှိတဲ့ အင်တာနက်အသုံးအဆောင်ပစ္စည်းတွေ ဖုန်းတွေပေါ်မှာ တန်း Run နိုင်တယ်။
Dart က ဘာဖြစ်လို့ Web browers, Web Platforms တွေမှာပါ ရတာလဲဆိုတော့ သူက JavaScript တန်းထုတ်လိုက်လို့ပဲ အဲ့ ထုတ်လိုက်တဲ့ JavaScript ကုဒ်ကြီးက Browser တိုင်းမှာပါတဲ့ engine ကိုသုံးပြီးတော့ ဖော်ပြပေးလိုက်တာပါ။( ဥပမာ Chrome Web Browser မှာဆိုရင် V8 JavaScript and WebAssembly engine ကြီးကို သုံးပြီး ပြပေးလိုက်တယ် ) Web apps ရေးမယ်ဆိုရင် Flutter framework အပြင် AngularDart ဆိုတာလဲရှိတယ် သုံးလို့ရတယ်။
Dart VM (Virtual Machine)က JIT (just-in-time) compilation ရတော့ ဥပမာ Apple iOS နားလည်နိုင်တဲ့ ကုဒ်ထုတ်ပေးလိုက်တယ်။ Bytecode ကနေ ပရိုဂရမ် run နေတဲ့အချိန်မှာ native machine code ထုတ်ပေးလိုက်တော့ Runtime မှာ အရမ်းကောင်းသွားတာ ပေါ့သွားတဲ့ သဘော။
Just In Timeဖြစ်တော့ Developers တွေအတွက်ကောင်းတယ်Ahead of Time ဖြစ်တော့ အသုံးပြုလူ users တွေအတွက် App က အရမ်းမြန်တယ်ပေါ့တယ်။
facebook ကထုတ်ထားတဲ့ React Native မှာ သုံးနေတဲ့ Bridge လိုတွေ မရှိတော့လို့ မြန်သွားတဲ့သဘော။ တကယ်တန်းကျတော့ Flutter ဟာ React Native ကို အားကျပြီးလိုက်ထုတ်ထားတာပါပဲ ဒါပေမယ့် React Native ထက်ပိုကောင်းလာပါတယ်။
Dart ရဲ့ syntax, semantic ,pragmatic တွေကို သေချာနားလည် အောင်လုပ်ထားတာ အကောင်းဆုံးပါ အခြေခံပိုင်ထားတော့ Language တခုက၂၀ နှစ် ၃၀ နှစ် ခံနိုင်ပါတယ်။ ဘယ်လိုရေးလဲထက် ဘာကြောင့်ဒီလိုရေးတာလဲ သိရင် ပိုကောင်းတာပေါ့။
syntax ဆိုတာ ရေးထုံး Grammar စာကြောင်းတည်ဆောက်ပုံတွေ objects တွေ ဘယ်လိုရေးလဲ ဘယ်လိုခေါ်သုံးလဲတွေပေါ့
+ (plus sign)သည် ဂဏန်းတွေကိုပေါင်းထည့်မှာလား(၁+၂ ပေါင်းမှာလား) Strings တွေကို string concatenation (“Hello” + “World”)ဆက်ပေးမှာလား ဘာအလုပ်လုပ်တာလဲ အဲ့ဒါ ကြတော့ semantic
OOP ဆိုတာ classes တွေတည်ဆောက်ပြီး စီစဉ်တကျ ရေးသားတာကို ပြောတာပါ ဥပမာ ကား ဆိုတဲ့ Object မှာ ဘီး ဆိုတဲ့ Object ရှိမယ် အင်ဂျင်ဆိုတဲ့ Object လဲရှိမယ် အဲ့လို Objects အများကြီးကို သူ့နေရာနဲ့သူ စီစဉ်လိုက်ရင် ကားတစီးဖန်တီးလို့ရသွားတဲ့ သဘောပါ။
Statically typed ဖြစ်တယ်ဆိုတာက int ကိန်းဂဏန်းတွေကို ကိန်းဂဏန်းအဖြစ်နဲ့ Compile လုပ်တယ် String စာလုံး စာတန်းဆိုရင်လဲ စာအတိုင်း Compile လုပ်တယ် Object type ဆိုလဲ Object type အနေနဲ့ အသေသက်မှတ်လိုက်တော့ အမှားရှာရတာ လွယ်သွားပါတယ်။
java ဘက်ကလာသူပဲဖြစ်ဖြစ် javascript ဘက်ကလာတဲ့လူဖြစ်ဖြစ် Dartကို လေ့လာရတာ လွယ်ပါတယ်။ javascript က OOP တော့ဖြစ်တယ် ဒါပေမယ့် class hierarchy လုပ်မရ inheritance တွေမပါဘူး Dart က အဲ့ဒါတွေပါတယ် အားသာလာတယ်။
နောက်ဆုံးအချက်ကတော့ Open Source ဖြစ်တာပါပဲ သူ့မှာ ဘာတွေရေးထားလဲ ဘယ်လိုသုံးရမှာလဲ တခါတည်းသွားဖတ်တက်ရင် ဖတ်လို့ရတာ အရမ်းမိုက်ပါတယ်။ Future of the Web အတွက်လေ့လာချင်ရင်တော့ Dart ကိုလေ့လာစေချင်တယ်။
ဒါတွေအားလုံးမသိသေးလို့ ဘာဖြစ်လဲဆိုတော့ ဘာမှ မဖြစ်ပါဘူး လေ့လာရင်းနဲ့ တဖြေးဖြေး သိလာ ကြေညက်လာ ရေးရင်းနဲ့ ရှင်းလာပါလိမ့်မယ် နောက်အပတ်တွေမှာ ကုဒ်တွေ စရေးပြပေးတော့မယ်နော် Dart ကိုစတင်လေ့လာမယ့်သူတွေအတွက် ဘာမှ install လုပ်စရာမလိုသေးပဲ https://dartpad.dartlang.org/ မှာ သွားရောက် ကုဒ်ရေးနိုင်ပါတယ်။