Skip to the content.

Ներածություն

Elixir֊ը ֆունկցիոնալ ծրագրավորման լեզու է՝ նախագծված մաքուր, համառոտ ու արտահայտիչ կոդ գրելու համար, որն աշխատում է BEAM վիրտուալ մեքենայի վրա։ Լեզվի ժամանակակից սինթաքսն ու ծրագրավորողների համար հարմարավետ դիզայնն օգնում է հեշտությամբ կարդալ կոդը, մշակել և զարգացնել տարբեր հավելվածներ, որոնց ընդլայնումն անհամեմատ ավելի հարմար է, քան ավանդական, մեյնսթրիմային լեզուներով ու տեխնոլոգիաներով ստեղծածները։

Որևէ ծրագրավորման լեզու իսկապես լավ հասկանալու համար կարևոր է հաշվի առնել թե ինչու է այն ստեղծվել։ Չնայած Elixir-ի առաջին տարբերակը թողարկվել է 2012 թվականին, նրա պատմությունն իրականում սկսվում է 2008-ից։ Դա տեղեկատվական տեխնոլոգիաների ոլորտում մեծ փոփոխությունների ժամանակաշրջան էր. հենց այդ տարի ստեղծվեց App Store-ը, որն ընդմիշտ փոխեց ոլորտը։ Մոբայլ հավելվածները նոր էին թափ հավաքում, իսկ վեբ հավելվածներն արդեն ամենաակտուալ թեմաներից էին:

Վեբ հավելվածների արագ զարգացման կենտրոնում այն լեզուներն ու վեբ ֆրեյմվորքներն էին, որոնք խոստանում էին թվային պրոդուկտների արագ ու արդյունավետ մշակում։ Այդ լեզուներից էր Ruby-ն՝ իր լեգենդար Ruby on Rails ֆրեյմվորքով։ Այդ տեխնոլոգիաների ակտիվ օգտագործողներից ու հիմնական ներդրում ունեցողներից էր Ժոզե Վալիմը (José Valim)՝ Elixir-ի ապագա ստեղծողը։

Սակայն այդ արագ զարգացումն իր հետ նաև տարբեր խնդիրներ էր բերում, որոնցից կարևորագույներից մեկը հավելվածների մասշտաբավորման խնդիրն էր։ Վեբ հավելվածների մեծ մասը արդյունավետ չէր օգտագործում պրոցեսորի բոլոր միջուկները, զուգահեռ մշակումը (parallel processing) արդյունավետ օգտագործող, միաժամանակ մասշտաբավորվող ու սպասարկելի հավելվածներ կառուցելը շատ բարդ էր, իսկ երբ մեկ սերվերի հնարավորությունները սպառվում էին, բաշխված (distributed) համակարգերի սպասարկումն ինքնին դառնում էր գլխացավանք։

Ժոզե Վալիմը տեսավ, որ Ruby-ի լեզվական դիզայնը և նրա հիմնական ինտերպրետատորի Global Interpreter Lock-ը (հենց դրա պատճառով է Ruby-ն դժվարանում իրական զուգահեռության հարցում) թույլ չեն տալիս կառուցել իսկապես մասշտաբավորվող համակարգեր։ Ուստի նա սկսեց փնտրել այլ լեզու, որը կլուծեր այս խնդիրը։

Ժոզեն առաջին հերթին փնտրում էր concurrent ծրագրավորման համար հարմար լեզու, բայց մի լեզվի մեջ նա գտավ շատ ավելին։ Այդ լեզուն Erlang-ն էր։ Erlang-ը դինամիկ, ֆունկցիոնալ լեզու է, որը ստեղծվել է 1986 թվականին հեռահաղորդակցության ոլորտի համար։ Այդ ոլորտի համակարգերից պահանջվում է, որ դրանք լինեն բարձր հասանելիությամբ (high availability) և աշխատեն առանց կանգի, լինեն շատ կայուն խափանումների հանդեպ (fault tolerance), լինեն բաշխված (distributed)։ Փաստացի սրանք ճիշտ նույն պահանջներն են, որոնց այսօր բախվում են վեբ հավելվածները։

Այս հատկությունները Erlang-ին տալիս է ոչ միայն նրա ֆունկցիոնալ դիզայնը, այլ առաջին հերթին նրա հզոր վիրտուալ մեքենան՝ Erlang VM-ը, որը հայտնի է նաև BEAM անունով։ Մինչև 2008 թվականը Erlang-ն արդեն ավելի քան երկու տասնամյակ աշխատեցնում էր զուգահեռ, բաշխված (distributed) համակարգեր, որոնք օգտագործում էին պրոցեսորի բոլոր հասանելի միջուկները։ Սա կարևոր է, որովհետև խոսքը տեխնոլոգիայի մասին է, որն իր արժեքն ապացուցել է երկար ժամանակի ընթացքում (այս պահի դրությամբ՝ շուրջ 40 տարի)։

Ժոզե Վալիմը տեսավ Erlang-ի՝ որպես ֆունկցիոնալ լեզվի, առավելությունները և նրա հզոր վիրտուալ մեքենան։ Բայց նա որոշեց ստեղծել նոր լեզու, փոխանակ պարզապես Erlang օգտագործելու, որովհետև Erlang-ը գոյություն ունի 1986 թվականից, և նրան պակասում էին որոշ հնարավորություններ, որոնք Ժոզեն համարում էր անհրաժեշտ ժամանակակից, արդյունավետ ծրագրավորման համար։ Այդ լեզուն կոչվեց Elixir, և նրա առաջին տարբերակը լույս տեսավ 2012 թվականին։

Elixir-ի հիմնական հատկություններն են․

Այս հատկությունների շնորհիվ Elixir֊ը շատ սիրված է ծրագրավորողների կողմից (վերջին մի քանի տարում stackoverflow֊ի հարցումները ցույց են տալիս 2֊րդ կամ 3֊րդ սիրված լեզուն է)։

Աղբյուրներ