Thursday, January 5, 2017

Functional Style Programming - Java

Java ဟာ OOP ပါ။
Java ထဲကို Lambda ပါလာရတာ ဘာကြောင့်လဲ။
Parallel Processing ကို ရေးချင်လို့။

Lambda ဆိုတာ Function ရဲ့အတိုကောက်။
Function တွေကို ကိုယ်စားပြုတဲ့အရာ။
Lambda မရှိပဲ Parallel Processing ကောလုပ်လို့မရခဲ့လို့လား။

ရကောင်းရမယ်။ မတော်တာတွေရှိတယ်။
Parallel Processing ကို လုပ်ချင်ရင် လုပ်စရာ ရှိတဲ့ Task တွေကို ခွဲပြီး အပြိုင်ခိုင်းနိုင်မှ အဓိပ္ပါယ်ရှိမယ်။
Java ရဲ့ OOP နဲ့ကော ခွဲခိုင်းလို့မရလို့လား။
Object တွေမှာ State ဆိုတာကြီးရှိနေတယ်။
အဲ့ဒါကြောင့် State တွေမတူရင် အလုပ်လုပ်တာတွေကလဲ တူမှာ မဟုတ်ဘူး။
Side Effects တွေ ရှိနိုင်တယ်။

ဒါဟာ Parallel ကို လုပ်ရတာကိုခက်ခဲစေတဲ့ အဓိကအကြောင်းဖြစ်လာတယ်။
Functional Programming ရဲ့ အဓိက အရည်အသွေးဟာ Side Effect မရှိတဲ့ Function တွေကို သုံးနေတဲ့အချက်ပဲ။ တန်ဖိုးတစ်ခုကိုပေးရင် အဖြေဟာ အမြဲတမ်း ဒီအဖြေရနေရမယ်။

ဒီအရည်အသွေးဟာ Parallel Processing ကို လုပ်ဆောင်ရာမှာ အဓိကလိုအပ်တဲ့
လိုအပ်ချက်လဲ ဖြစ်နေတယ်။

ဒါမှသာ Task တွေကို ဘယ်လိုခွဲခွဲ နောက်ဆုံးပေါင်းလိုက်ရင် အတူတူပဲဆိုတာ ဖြစ်လာမယ်။
ဒါ့ကြောင့် Lambda ဆိုတာကြီးက Java ထဲကိုပါလာရတာပါ။

အဲ့ဒါအပြင် Functional Programming မှာ အရမ်း Cool ဖြစ်တဲ့ Features တွေရှိတယ်။
First Class Citizen Entity တွေရှိတယ်
Function as an Argument
Function as a return type
Function တွေကိုပေါင်းပြီး ပြဿနာ တစ်ခုကို ဖြေရှင်းနိုင်တဲ့ပုံတွေ

Java ဟာ OOP ကြောင့် Side Effect တွေရှိနေတဲ့ အတွက် Functional Programming အစစ်ဖြစ်လာမှာ မဟုတ်ဘူး။ ဒါပေမဲ့ Side Effect ဖြစ်နိုင်တာတွေကို ရှောင်ပြီး Functional Style Programming ကို ရေးနိုင်စရာ အကြောင်းရှိပါတယ်။

No comments:

Post a Comment