Crystal 0.34.0 թողարկվել է

Թողարկվել է Crystal-ի նոր տարբերակը՝ կազմված ծրագրավորման լեզու Ruby-ի շարահյուսությամբ, որի հիմնական առանձնահատկություններն են «ներկառուցված» իրադարձությունների հանգույցով գործարկման ժամանակ, որում բոլոր I/O գործառնությունները ասինխրոն են, բազմալեզու աջակցում (այնքան երկար. քանի որ դա միացված է դրոշի միջոցով կոմպիլյացիայի ժամանակ) և չափազանց պարզ և հարմար գործողություն C-ի գրադարանների հետ:

Սկսած 0.34.0 տարբերակից՝ լեզուն պաշտոնապես սկսում է շարժվել դեպի իր առաջին իրական թողարկումը (այսինքն՝ տարբերակը 1.0):

Crystal-ի նոր տարբերակը ներառում է հետևյալ փոփոխություններն ու բարելավումները՝ ըստ կարևորության.

  • API-ին ավելացվել է գրանցման նոր գրադարան Մուտք, որը, ի տարբերություն հինի, կարող է հաղորդագրություններ ուղարկել տարբեր հետնամասեր և տարբեր կերպ զտել այդ հաղորդագրությունները՝ կախված «աղբյուրից»։

  • Հիմքեր C-ի զարգացման աշխարհից, Էրրնո и WinError, որն օգտագործվում է I/O պրիմիտիվների համար, դառնում են անցյալի բան՝ շնորհիվ բացառությունների հիերարխիայի IO:: Սխալ (սակայն, դեռ ոչ ոք չի արգելում Errno-ի օգտագործումը):

  • Օպերատորից հեռացվել է else nil-ի ավտոմատ փոխարինումը դեպք/երբ/ուրիշ. Դա արվում է, որպեսզի ծրագրավորողը պատահաբար բաց չթողնի մասնաճյուղերից մեկը: երբ երբ համընկնում են որոշիչ դեպքերի վրա, ինչպիսիք են թվերը և անցնում են միության տիպերի միջով: Այսինքն, պարզ ասած, այս կոդը այլևս չի աշխատի առանց ևս մեկը նշելու երբ (երբ Char) կամ առաջադրանքներ ուրիշ-մասնաճյուղերը:

ա = 1 || «x» || «ֆու»
դեպք ա
երբ Int32
#
երբ String
#
վերջ

  • Կազմողի տարբերակ disable_overflow այլևս հասանելի չէ: Հորդառատ գործողությունների համար օգտագործեք &+, &-, &* մեթոդները:

  • Զանգված #լրացում այժմ թռչում է փամփուշտից ավելի արագ՝ հիմար օղակը մեկ պարզ մեմսեթով փոխարինելու շնորհիվ.

  • Բեկորների (փաթեթների) մենեջեր, որը կոչվում է պարադոքսալ. բեկորներ, այժմ օգտագործում է ավելի արագ և արդյունավետ Molinillo կախվածության բավարարման ալգորիթմը, որը հայտնաբերված է CocoaPods-ում (Swift) և Builder-ում (Ruby):

  • Ավելացված աջակցություն LLVM 10, ինչը տեսականորեն մեզ կտա արտադրողականության որոշակի աճ, կայունություն և այլն։

... և շատ այլ, իմ սուբյեկտիվ կարծիքով, ոչ այնքան էական բարելավումներ։

Ցանկանում եմ նշել, որ Crystal-ը LLVM-ի վրա կառուցված լեզու է, որը թույլ է տալիս գրել հավելվածներ երբեմն ավելի արագ, պարզ և ավելի հակիրճ, քան իր մեկնաբանված «եղբայրների» վրա և միևնույն ժամանակ ստանալ բավականին արագ երկուական: Golang-ի համեմատությամբ այն առանձնանում է իր բացարձակապես լիարժեք OOP-ի, գեներիկայի աջակցության և շատ պարզ և հասկանալի շարահյուսության շնորհիվ: Դրա նպատակը հիմնականում նման է Nim-ին, բայց միևնույն ժամանակ այն հստակորեն կենտրոնացած է «այստեղ և հիմա» գործնական օգտագործման վրա, ինչի շնորհիվ իր API զինանոցում ունի բազմաթիվ լավ փաստաթղթավորված, հարմար և բարձրորակ գործիքներ, որոնք աջակցվում են լեզու մշակողներ և, հետևաբար, շատ կայուն:

Source: linux.org.ru

Добавить комментарий