# Library & Framework

library နဲ့ framework တို့ကတော့ programming language ကိုလေ့လာလို့ fundamental တွေ နားလည်ပြီးနောက် development level ရောက်ရင် စထိတွေ့ရတဲ့ အရာတွေဖြစ်ပါတယ်။
# What is library ?
- library ဆိုတာက functionality တွေ သို့မဟုတ် problemတွေအတွက် တခြားသူတစ်ယောက်က ဖြေရှင်းပြီးသား code တွေ၊ ready to use ဖြစ်နေတဲ့ program တွေကိုပြောတာပါ။
- ဥပမာအနေနဲ့ ကိုယ်ရေးနေတွေတဲ့ project မှာ ဒဿမကိန်း ကနေ အပိုင်းကိန်းကိုပြောင်းရတဲ့ function တစ်ခု ရှိနေတယ်ဆိုပါစို့။ ဘယ်လိုအခြေအနေမျိုးလည်းဆိုတော့ အစားအစာတစ်ခုလုပ်ဖို့ ပါဝင်ပစ္စည်းတွေဖော်ပြရတဲ့အခါ 0.5 teaspoon အစား 1/2 teaspoon လို့ user ကိုပြချင်အချိန်မျိုး။
- အဲ့လို ချက်ချင်းဖြေရှင်းလို့မရဘဲ အချိန်ယူရတဲ့ problem မျိုးရှိနေတဲ့အခါ လုပ်လို့ရတာနှစ်မျိုးရှိပါတယ်။ တစ်ခုက အဲ့ဒီ problem ကို ကိုယ်ပါသူရေးပြီး solve မလား။ နောက်တစ်ခုက သူများရေးပြီးသား solve လုပ်ပြီးသား code တွေကို ယူသုံးမလားဆိုတာပါပဲ။ အခြားသူရေးထားတဲ့ code တွေကို ယူသုံးချင်တဲ့အခါ အဲ့ code တွေကိုစုထားတဲ့ library ကို install လုပ်ပြီး ခေါ်သုံးလိုက်ရုံရင်ရပါပြီ။
# What is framework ?
framework က သက်ဆိုင်ရာ development အတွက် လိုအပ်တဲ့ function တွေ တစ်နည်း library တွေကို စုပြီး development process ကို တန်းလုပ်နိုင်အောင်ပြုလုပ်ပေးတဲ့အရာဖြစ်ပါတယ်။
application တစ်ခုရေးဖို့လိုအပ်တဲ့ common functionality တွေကိုစုပေးထားတာဖြစ်တဲ့အတွက် ကိုယ်တိုင် တစ်ခုစီကိုအသေးစိတ်လိုက်မရေးရတော့ပဲ framework ထဲမှာပဲ code ရေးပြီး လိုချင်တဲ့ application ကိုတည်ဆောက်ရုံပါပဲ။ အထူးတလည် လိုက်ဖြည့်ရေးနေရတာမျိုးမရှိတော့ဘူး။ အခြားသော functionality တွေအတွက်လည်းသက်ဆိုင်ရာ framework က support ပေးထားတဲ့ library တွေကိုယူသုံးရုံရင်ရပါပြီ။
library တွေ framework တွေဆိုတာက သက်ဆိုင်ရာ language ပေါ်မှာ အခြေခံထားတာပါ။ ထို့အတွက် language ကို ကျွမ်းကျင်အောင် အရင်ဆုံး လုပ်သင့်ပါတယ်။ တကယ့်လုပ်ငန်းခွင်မှာ တော့ language နဲ့ pure ရေးမယ့်အစား library, framework တွေကိုအသုံးများကြပါတယ်။ ဘာလို့လဲဆိုရင်တော့ standard ဖြစ်တဲ့အတွက်ကြောင့်ပါ။ ဥပမာ developer တစ်ယောက်ရေးနေတဲ့ project ကို နောက်တစ်ယောက်က ဝင်ရေးပေးရတဲ့အခါ language ပဲသုံးပြီး pure ရေးထားရင် ရှေ့ကလူရေးထားတာကိုနားလည်အောင်လုပ်ရတာနဲ့တင်အချိန်ကုန်နေပါပြီ။ framework နဲ့ရေးထားရင်တော့ framework ရဲ့ standard အတိုင်း code တွေကို ပြင်တာ ဖျက်တာတွေ လုပ်ရတဲ့အတွက် ပိုပြီးလွယ်ကူမြန်ဆန်ပါတယ်။ ပုံမှန် language ပဲသုံးပြီး 3လ လောက်ရေးရတဲ့ project ကို framework နဲ့ဆို 1လ ခွဲလောက်နဲ့ပြီးပါတယ်။
framework တို့ library တို့ သုံးတဲ့အခါ အားနည်းချက်တွေအနေဆိုရင် problem တွေကိုယ်တိုင် solve မလုပ်ဖြစ်ရတဲ့အတွက် implementation detail ကိုနားမလည်တော့တာပါပဲ။ ဒါပေမယ့် အချိန်ရလို့ ကိုယ်တိုင် solve ကြည့်တဲ့အခါ source code တွေကြည့်ပြီး သူတို့ဘယ်လိုစဉ်းစားသွားလည်းဆိုတာကို အတုယူကာ coding skill တိုးတက်အောင်လုပ်လို့ရပါတယ်။
# popular framework တွေဆိုရင်
- C# - ASP.Net
- PHP - Laravel, Symfony
- JavaScript - Vue.js, Angular, React.js, Express.js
- JavaEE - Spring
- Ruby - Ruby on Rails
- Python - Django
- Dark - Flutter
- Front-end: Bootstrap, Tailwind, Materialize စသည်ဖြင့် အများကြီးရှိပါတယ်