Programming ဆိုတာဘာလဲ?
Programming ဆိုတာ ဘာလဲ မေျပာခင္ programming ရဲ႕ သမိုုင္းကို အရင္ေျပာရေအာင္ဗ်ာ၊၊ computer အတြက္ အလုပ္လုပ္မယ့္ ပထမဆံုုး algorathm နဲ႕ တည္ေဆာက္ထားတယ့္ programming ကို စတင္ ေမြးဖြားအသက္သြင္း ခဲ့သူ ကေတာ့ England ႏိုင္ငံ London ၿမိဳ႕က “Ada Lovelase” ပဲျဖစ္ပါတယ္ ၊ သူမက programming ရဲ႕ မိခင္ႀကီးေပါ့၊ သူမကို 1815,December,10 မွာေမြးခဲ႔တာပါ ၊ 1852,November,27 သူမအသက္ ၃၆ နွစ္မွာ လူသားေတြအတြက္ အလြန္အသံုုး၀င္တဲ့ programming ဆိုုတယ့္ မ်ိဳးဆက္သစ္ကိုု ထားခဲ႕ၿပီး ေလာကႀကီးမွ အနားယူသြားပါတယ္ ။ ေရွးပေ၀သဏီေခတ္တုုန္းကေတာ့ arithmetic တိုု႕ algebra တိုု႕ geometry တိုု႕လိုု စိတ္ကူးျခင္းေတြမရွိပါဘူး ၊ အဲဒီတုုန္းက လူသားေတြရဲ႕ သမိုုင္းမွာ တြက္ခ်က္ေပးတဲ့စက္ပစၥည္းနဲ႕ ပတ္သက္တဲ့့ ပစၥည္းဆိုုလိုု႕ BC2500 ခန္႕က Sumerian မွာ တီထြင္ခဲ့တဲ့“ေပသီးတြက္ခံုု” ပဲ ရွိခဲ႔တာပါ ၊ ၊ BC100 ေလာက္က ပထမဆံုုး “mechanical calculator “ လိုု႕ ေခၚခဲ႕တာေပါ့ ၊ သူရဲ႕ အမ်ိဳးမ်ိဳးေသာ အရြယ္အစားနဲ႕ gears ေတြက calculations လုပ္ဖိုု႕အတြက္ေဆာင္ရြက္ေပးပါတယ္ ၊ အဲ႕ဒါကလည္း lunar-to-solar calendars မွာသံုုးတဲ့ me toni cycle ကို အေျခခံၿပီးေတာ့ တည္ေဆာက္ထားတာပါ ၊ ထားပါေတာ့ဗ်ာ ၊ အရင္ ပေ၀သဏီ ကအေၾကာင္းေတြျပန္မေျပာေတာ့ဘူး ။ Analytical Engine အတြက္ ပထမဆံုး computer program ကိုု သခ်ာၤပညာရွင္ Ada Lovelase က Bernoulli numbers ရဲ႕ အစီအစဥ္ေတြကို တြက္ခ်က္ၿပီးေရးသြားခဲ့ပါတယ္ ။ Numerical calculations ရဲ႕ synthesis ဟာ computer programming အတြက္ ႀကိဳတင္ေဟာကိန္းလိုပါပဲ ၊အဲဒီေနာက္မွာေတာ့ လူသားေတြအတြက္ အလြန္လြယ္ကူတဲ့ နည္းလမ္းနဲ႔ အမိန္႔မ်ားျဖည့္သြင္းပီးေတာ့ ဖြဲ႕စည္းတည္ေဆာက္မႈေတြကို အႀကံရခဲ့ ပါတယ္ ၊ အဲဒါက computer programming ရဲ႕ modern development ကို ဦးေဆာင္လမ္းျပေပးခဲ့တာပါ၊ စက္မႈေတာ္လွန္ေရးၿပီးေနာက္ပိုင္းေတာ့ Computer programming ရဲ႕ ဖြံ႕ၿဖိဳးမႈက အရွိန္အရမ္းျမင့္လာပါတယ္၊ အခ်က္အလက္ေတြနဲ႔အမိန္႔ေတြကို external punched card ေပၚမွာ ပထမဆံုး သိုုေလွာင္လိုက္ပါတယ္ ၊punched card ဆိုတာ stiff paper ရဲ႕ အပိုုင္းအစေလးပါပဲ ၊ punched card ထဲမွာ data processing applications ေတြအတြက္ data ဒါမွမဟုုတ္ စက္အစိတ္အပိုင္းကို အလိုေလွ်ာက္ ထိန္းခ်ဳပ္ဖို႕အတြက္ commands ေတြပါပါတယ္ |ေနာက္မွ punched card အေၾကာင္းကို post တစ္ခုအေနနဲ႔ေရးေတာ့မယ္ ၊အခုဆက္ရေအာင္ဗ်ာ 1880 မွာ Herman Hollerith က အခ်က္အလက္ေတြ မွတ္တမ္းတင္ႏိုင္ တဲ့ ၾကားခံတစ္ခုကို တီထြင္ခဲ႔ပါတယ္။အဲဒီၾကားခံမွာ ထည့္သြင္းထားတဲ့ မွတ္တမ္းေတြကို စက္ေတြနဲ႔ျပန္ဖတ္နိုုင္တယ္၊ Hellerith က အေမရိကန္ သခ်ၤာပညာရွင္ နဲ႔တီထြင္သူေပါ့ ၊ သူက သန္းေပါင္းမ်ားစြာေသာ data ေတြကေန လ်င္ျမန္စြာ တြက္ခ်က္ေပးနုုိင္မယ့္ mechanical tabulator ကို punched card ေပၚမွာ အေျခခံၿပီးေတာ့ တီထြင္ခဲ့ပါတယ္ ၊”Hellerith cards” လို႕ ပထမဆံုုးေခၚခဲ့ပါတယ္ ၊ သူက keypunch,sorter နဲ႕ tabulator unit record machines ကိုပါတီထြင္ခဲ့ပါတယ္ ၊ ဒီတီထြင္မႈေတြက သူရဲ႕ data processing လုုပ္ငန္းအတြက္ အေျခခံျဖစ္လာပါတယ္၊ Hellerith က ေနာင္မွာ IBM ဆိုၿပီးျဖစ္လာမယ့္ Tabulating Machine Company ကို စတင္တည္ေထာင္သူေပါ့ ၊ modern machine data porcessing ရဲ႕ ဖခင္ အျဖစ္ သတ္မွတ္ခံထားရတဲ႕ လူတစ္ေယာက္ပါ ၊ သူ႕ရဲ႕ မူၾကမ္းအယူအစ က ရာစုနွစ္တစ္ခုအတြက္ တြက္ခ်က္ေရးေလာကကို စိုးမိုးခ်ယ္လွယ္ခဲ့ပါတယ္ ၊ 1906 မွာ control panel(plugboard) ကိုေပါင္းထည့္ခဲ့ပါတယ္ ၊ plugboard ဆိုတာက ဘုတ္ျပားေပၚမွာ မ်ားျပားလွတဲ့ sockets ေတြကေန လ်ွပ္စစ္ပတ္လမ္းေတြ ၊ တယ္လီဖုုန္းလိုုင္းေတြ နဲ႕ ကြန္ပ်ဴတာ အစိတ္အပိုုင္းေတြကိုု အတြင္းပိုုင္းမွာခ်ိတ္ဆက္ေပးထားတာပါ ၊ ၊ Tabulator က Hardware ဆုိင္ရာ ျပန္လည္တည္ေဆာက္ျခင္းမရွိပဲ ထူးျခားလွတဲ့အလုပ္ မတူညီတဲ့အလုပ္ေတြကို လုပ္ခြင့္ေပးထားပါတယ္ ၊ 1940 မွာ IBM 602 နဲ႕ IBM 604 ကေတာ့ မ်ားျပားလွတဲ့တြက္ခ်က္မႈေတြကို စံနႈန္းျမင့္ မွတ္တမ္းတင္နိုုင္ခဲ့ပါတယ္ ၊ သူရဲ႕ control panels ေတြက operations ရဲ႕ စာရင္းအခ်က္အလက္ေတြကိုု သတ္မွတ္နိုုင္ခဲ့တယ္ ၊ ဒီနည္းနဲ႕ပဲ programmable machines ေတြျဖစ္လာခဲ့ပါတယ္ ၊ ေနာက္တေယာက္ကေတာ့ von Neumann ပါ ၊ သူက game theory နဲ႕ design ၿပီးေတာ့ computer memory ထဲမွာ သိမ္းနိုုင္မယ့္ computer programs ေတြကိုတီထြင္ခဲ့တယ္ ၊Computer model အားလံုုးက ထူးျခားတဲ့အမိန္႕ေတြ(machine language) ေတြသံုုးၿပီး တူညီတဲ့လုုပ္ငန္းတာ၀န္ေတြ လုပ္ပါတယ္ ၊ ေနာက္ေတာ့programmer ေတြက assembly languages ေတြကို developed လုပ္ခဲ႕ၾကပါတယ္ ၊သေကၤတပံုစံ(e.g., ADD X,TOTAL) ထဲမွာ လိပ္စာေတြသတ္မွတ္တယ္ ၊ၿပီးေတာ့ ကိန္းဂဏန္း သေကၤတ တစ္ခုခ်င္းစီ ကိုု ေရးသားတာထက္စာရင္ စာသားပံုစံတခုထဲမွာ instruction တခုခ်င္းစီကို သတ္မွတ္လိုက္တာပိုၿပီီးလြယ္ကူသြားပါတယ္ ၊ assembly language လို programming ဘာသာရပ္တစ္ခု ေပၚျခင္းက ပိုၿပီးအဆင္ေျပေစပါတယ္ ၊ အလုပ္လုပ္ရတာ ပိုၿပီးျမန္လာပါတယ္ ၊ ၿပီးေတာ့ machine language ကို သံုးျခင္းထက္ လူသားေတြ error တတ္နုုိင္မယ့္ အေျခအေန ပိုနည္းလာပါတယ္ ၊ဒါေပမယ့္ assembly language က machine language တခုထက္ ပိုမိုရုိးရွင္းၿပီးသေကၤတစနစ္ေတြ ပိုမ်ားမ်ားအသုံးျပဳရပါတယ္။ 1954 မွာ “FORTRAN” ကို တီထြင္ခဲ့ပါတယ္ ၊ FORTRAN က ပထမဆံုး high level programming language ပဲျဖစ္ပါတယ္ ၊ high-level language က စည္းကမ္းခ်က္ႀကီးပါတယ္ ၊ program စာသား ဒါမွမဟုုတ္ source ေတြက compiler လို႕ ေခၚတဲ့ special program ကို သံုးၿပီး စက္နားလည္တဲ့ အမိန္႕အျဖစ္ ေျပာင္းေပးနုုိင္ပါတယ္၊ အမွန္က FORTRAN ဆိုတဲ့နာမည္က “Formula Translation” အတြက္ ရပ္တည္ထားတာပါ ၊ မ်ားျပားလွတဲဲ့တျခား languages ေတြကိုလည္း တီထြင္ခဲ့ၾကပါတယ္ ၊ စီးပြားျဖစ္ programming languages ေတြလည္း ပါ၀င္လာပါတယ္ ၊COBOL လိုေပါ့ ၊ အခ်ိန္ကာလတိုးတက္လာေတာ့ computers ေတြရဲ႕ အလုပ္လုုပ္နုုိင္တဲ့စြမ္းအားဟာ ဘီလူးႀကီးတစ္ေကာင္ခုုန္သြားသလို ေၾကာက္စရာေကာင္းေလာက္ေအာင္ အရမ္းျမန္ဆန္လာပါတယ္ ၊ programming ဘာသာရပ္အသစ္ ေတြကိုု ယူေဆာင္လာပါတယ္ ၊အခုုေခတ္မွာ ေက်ာ္ၾကားေနတယ့္ programming languages ေတြကေတာ့ C,C++,C#,Haskell,PHP,Java,JavaScript,Objective-C,Perl,Python,Ruby,Smalltalk,SQL,Visual Basi, ActionScript ၿပီးေတာ့ အမ်ားအမ်ားႀကီးရွိပါေသးတယ္ ၊ Programming ေတြ ပိုၿပီးပိုုၿပီးပ်ံ႕နွံ႔လာတာနဲ႔အမ်ွ သင္ရတာပိုၿပီးလြယ္လာမယ္ ၊ၿပီးေတာ့ programmer ေတြက source code နည္းနည္းေလးနဲ႕ applications ေတြ developed လုပ္နိုုင္တယ့္ အေျခအေနတရပ္ကိုု ျဖစ္ေပၚေစခဲ႔ပါတယ္ ၊ low-level နဲ႔ ပတ္သတ္တဲ့ hardware ထိန္းခ်ဳပ္ဖိုု႕ လိုအပ္လာတယ့္အခ်ိန္ ဒါမွမဟုုတ္ processing speed အျမင့္ဆံုုး မရွိမျဖစ္ လိုအပ္တယ့္အခ်ိန္ေတြမွာ high-level languages ေတြအသံုးျပဳျခင္းက လက္ေတြ႕မက်ပါဘူး၊ ဖြံ႕ၿဖိဳးတုိးတက္ေနတဲ့ကမာၻမွာ Computer Programming က ေခတ္စားေနတဲ့ အသက္ေမြး၀မ္းေၾကာင္းတခု ျဖစ္လာပါတယ္ ၊ အလုပ္အတြက္ ဒါမွမဟုတ္ အပန္းေျဖစရာအျဖစ္ computer ကိုု အသံုုးျပဳတတ္ၾကမွာပါ ၊ လူအမ်ားစုကေတာ့ ေန႕စဥ္လုုပ္ငန္းတာ၀န္ အျဖစ္ computer ကို သံုုးၾကပါတယ္ ၊ သူတို႕ သာမာန္လူေတြအတြက္ ၿငီးေငြ႕ ဖြယ္ေကာင္းတဲ့ အလုပ္ေတြကိုု ေကာင္းေကာင္းကိုုင္တြယ္ေျဖရွင္း နိုုင္ပါတယ္ ၊ ဥပမာ number ေတြေပါင္းတာ ၊ စာရြက္ေပၚမွာ စာေတြေရးတာေပါ့ ၊ Game စက္တလံုုးအေနနဲ႕ သံုုးရင္လည္း ေကာင္းပါတယ္ ၊ ဘာလို႕တုန္းဆိုုေတာ့ သူတို႕က အသံနဲ႕ ရုုပ္ပံုုေတြရဲ့ sequences ေတြကိုု play ေပးနိုုင္ပါတယ္ ၊ checkbook ကို ေငြစစ္နိုုင္တယ္ ၊ paper ေတြကို print ထုုတ္နိုုင္တယ္ ၊ ဂိမ္းေဆာ့နိုုင္တယ္ ၊ ကြန္ပ်ဴတာနဲ႔ယွဥ္ရင္ တျခားပစၥည္းေတြက လုပ္ငန္းအတြက္ အလုုပ္လုုပ္နုုိင္စြမ္းက နယ္ပယ္က်ဥ္းေျမာင္းပါတယ္ ၊ Computer မွာ လုပ္ငန္းတာ၀န္တခုစီ ေဆာင္ရြက္ဖိုု႕ အတြက္ program ေရးရမွာျဖစ္ပါတယ္ ၊ Computer က စက္ပစၥည္းေတြထဲမွာ တာ့ စံျပပဲျဖစ္ပါတယ္ ၊ data(numbers,words,media) ေတြသိမ္းထားနိုုင္ပါတယ္ ၊ devices(monitor screen,sound system,printer) ေတြနဲ႕ အျပန္အလွန္ တြဲဖက္အလုပ္လုပ္ႏိုင္တယ္၊ programs ေတြဖန္တီးနိုုင္ပါတယ္ “Computer မွာ လုုပ္ငန္းတာ၀န္ေတြခိုင္းဖို႕ programs ေရးရပါတယ္ ၊ ကြဲျပားျခားနားတဲ့ လုုပ္ငန္းစဥ္ေတြအတြက္ ကြဲျပားျခားနားတဲ့ programs ေတြ လိုုပါတယ္” ဒီေန႕ေခတ္ရဲ႕ computer programs ေတြ က ေခတ္မီဆန္းျပားလာပါတယ္ ၊ သူတို႕ကို ယံုုၾကည္ဖိုု႕ ခက္ခဲပါတယ္ ၊ သူတို႕ကအလြန္အေသးစိတ္တဲ့ ခြဲစိတ္မႈတခုုလုုပ္သလိုုမ်ိဳး အားလံုုးကို ေရးရပါတယ္၊ “computer programs ေတြက အရမ္းျမန္တဲ့ အရွိန္အဟုုန္ထဲမွာ အလြန္အေျခခံက်တယ့္ operations ေတြ ရဲ႕ အစီအစဥ္ေတြအတိုုင္း အလုပ္လုပ္ကိုင္တယ္”၊ Computer program ေတြက Computer ကို လိုုအပ္တဲ့အစီအစဥ္ေတြနဲ႔ သတင္းအခ်က္အလက္ကို စကၠန္႕နွင့္ အမ်ွပိုု႕ေပးပါတယ္ ၊ program တခုုမွာ ရိုုးရွင္းတဲ့operations ေတြအတြက္ႀကီးမားတဲ့ ကိန္းဂဏန္းေတြ ပါ၀င္ပါတယ္ ၊ computer မွာ အသိဥာဏ္မရွိဘူး ၊ သူက ထည့္သြင္းသတ္မွတ္ထားတဲ့ အစီအစဥ္ ေတြကိုု အလြယ္တကူ အေကာင္အထည္ေဖာ္ေပးလိုုက္တာပါ ၊ Computer ကို သံုုးဖို႔အတြက္ programming ကိုု သိရွိနားလည္ဖို႕ မလိုုပါဘူး၊ဒါေပမယ့္ programming ကိုု စေလ့လာရင္ေတာ့ သာမန္ထက္ပိုုၿပီး လံုု႕လထားဖို႕ေတာ့လိုပါလိမ့္မယ္။ Ref; Brighter Myanmar
ကိုမိုးစက္
No comments:
Post a Comment