«Rust - e ardhmja e programimit sistemor, C - assembleri i ri» - prezantimi i një prej inxhinierëve kryesorë të Intel

Në Samitin e fundit për Teknologjitë me Burim të Hapur (Open Source Technology Summit — OSTS) Josh Triplett, inxhinieri kryesor i Intel, përmendi se kompania e tij është e interesuar që Rust të arrijë "paritetin" me gjuhën C, e cila vazhdon të dominojë në zhvillimin sistemor dhe të ulët. Gjatë fjalimit të tij me titull "Intel dhe Rust: e ardhmja e programimit sistemor", ai gjithashtu foli për historinë e programimit sistemor, se si C u bë gjuha "default" për programimin sistemor, cilat mundësi ofron Rust, që i japin atij një avantazh ndaj C-së dhe se si në të ardhmen ai mund ta zëvendësojë plotësisht C-në në këtë fushë programimi.

«Rust - e ardhmja e programimit sistemor, C - assembleri i ri» - prezantimi i një prej inxhinierëve kryesorë të Intel

Programimi sistemor është zhvillimi dhe menaxhimi i softuerit që shërben si platformë për krijimin e aplikacioneve, duke siguruar bashkëveprimin e tyre me procesorin, memorien, pajisjet hyrëse-dhjellëse dhe pajisjet rrjetuese. Softueri sistemor krijon një abstraksion special në formën e ndërfaqeve, të cilat ndihmojnë në krijimin e softuerit aplikativ pa u përfshirë në detajet e funksionimit të "harduerit".

Triplett e definon programimin sistemor si "gjithçka, përveç aplikacionit". Kjo përfshin gjëra si BIOS, firmuerët, ngarkuesit dhe bërthamat e sistemeve operative, lloje të ndryshme të kodit të integrating të ulët, si dhe zbatime të makina virtuale. Është interesante se Triplett e sheh shfletuesin e internetit gjithashtu si një softuer sistemor, pasi shfletuesi ka bërë prej kohësh më shumë se "thjesht një program", duke u transformuar në një "platformë për faqe interneti dhe aplikacione web."

Në të kaluarën, shumica e programeve sistemore, përfshirë BIOS, ngarkuesit dhe firmuerët, ishin shkruar në gjuhën asembler. Në vitet 1960, filluan eksperimente për ofrimin e mbështetjes harduerike për gjuhët e nivelit të lartë, që çuan në krijimin e gjuhëve të tilla si PL/S, BLISS, BCPL dhe ALGOL 68.

Pastaj, në vitet 1970, Dennis Ritchie krijoi gjuhën e programimit C për sistemin operativ Unix. E krijuar në gjuhën e programimit B, e cila nuk kishte as mbështetje për tipizimin, C ishte e mbushur me funksione të fuqishme të nivelit të lartë që ishin më së miri për shkruarjen e sistemeve operative dhe piloteve. Disa komponentë të UNIX-it, përfshirë bërthamën e saj, u riprogramuan në fund në C. Më tej, shumë programe të tjera sistemore, duke përfshirë databasën Oracle, shumicën e kodit burimor të Windows dhe sistemin operativ Linux, ishin gjithashtu shkruar në C.

C mori mbështetje të madhe në këtë drejtim. Por çfarë e shtyu zhvilluesit të kalonin në të? Triplett mendon se për të motivuar zhvilluesit të kalonin nga një gjuhë programimi në një tjetër, e dyta duhet të ofrojë funksione të reja pa humbur mundësitë e vjetra.

Së pari, gjuha duhet të ofrojë "funkcione mjaft tërheqëse". "Ajo nuk mund të jetë vetëm pak më e mirë. Ajo duhet të jetë shumë më e mirë, për të justifikuar përpjekjet dhe kohën e inxhinierëve që nevojiten për kalimin", shpjegon ai. Krahasuar me gjuhën asembler, C kishte shumë gjëra që mund të ofronte. Ai ofronte në një farë mënyre tipizimin e sigurt, siguron më shumë portabilitet dhe performancë me konstrukte të nivelit të lartë, si dhe gjeneronte një kod që ishte më i lexueshëm përgjithësisht.

Së dyti, gjuha duhet të ofrojë mbështetje për mundësitë e vjetra, që do të thotë se gjatë kalimit në C, zhvilluesit duhet të ishin të sigurt se ajo ishte gjithashtu funksionale, ashtu si gjuha asembler. Triplett shpjegon: "Një gjuhë e re nuk mund të jetë thjesht më e mirë, ajo gjithashtu duhet të jetë jo më keq". Përveç që C ishte më i shpejtë dhe mbështeste të gjithë llojet e të dhënave që mund të përdorte gjuha asembler, ai gjithashtu kishte atë që Triplett e quajti "dalja emergjente", pra mbështeste brenda vetes përfshirjen e kodit në gjuhën asembler.

«Rust - e ardhmja e programimit sistemor, C - assembleri i ri» - prezantimi i një prej inxhinierëve kryesorë të Intel

Triplett beson se C po bëhet tani ajo që ishte gjuha asembler shumë vite më parë. "C është assembleri i ri", thotë ai. Tani zhvilluesit po kërkojnë një gjuhë të re të nivelit të lartë, e cila jo vetëm që do të zgjidhte problemet e grumbulluara në C që tashmë është e pamundur t'i korrigjohen, por gjithashtu do të ofronte mundësi të reja mbresëlënëse. Një gjuhë e tillë duhet të jetë mjaft e bindshme për të motivuar zhvilluesit të kalojnë në të, duhet të jetë e sigurt, të ofrojë menaxhim automatik të memories dhe shumë më tepër.

«Çdo gjuhë që dëshiron të jetë më e mirë se C, duhet të ofrojë shumë më tepër se thjesht mbrojtjen nga mbushja e tamponit, nëse vërtet dëshiron të bëhet një alternativë bindëse. Zhvilluesit janë të interesuar për lehtësinë e përdorimit dhe performancën, për të shkruar kod që nuk kërkon shpjegime dhe kryen më shumë punë me më pak rreshta. Duhen gjithashtu të zgjidhen problemet e sigurisë. Thjeshtësia e përdorimit dhe performanca janë të lidhura ngushtë me njëra-tjetrën. Sa më pak kod të duhet të shkruash për të arritur diçka, aq më pak mundësi ke për të bërë ndonjë gabim të lidhur me sigurinë apo jo», shpjegon Triplett.

Krahasimi i Rust dhe C

Që në vitin 2006, Graydon Hoare, një punonjës i Mozilla, filloi të shkruante Rust si një projekt personal. Në vitin 2009, Mozilla filloi të financojë zhvillimin e Rust për nevojat e saj dhe gjithashtu zgjeroi ekipin për zhvillimin e mëtejshëm të gjuhës.

Një nga arsyet pse Mozilla ishte e interesuar për një gjuhë të re është se Firefox ishte shkruar me më shumë se 4 milion rreshta kodi C++ dhe kishte një numër të konsiderueshëm të dobësive kritike. Rust u krijua me kërkesat e sigurisë dhe paralelizmit në mendje, duke e bërë atë zgjedhjen ideale për riprogramimin e shumë komponentëve të Firefox në kuadër të projektit Quantum për rinovimin e plotë të arkitekturës së shfletuesit. Gjithashtu, Mozilla përdor Rust për të zhvilluar Servo, motorin e renderimit të HTML, i cili në të ardhmen do të zëvendësojë motorin aktual të renderimit të Firefox. Shumë kompani të tjera kanë filluar të përdorin Rust për projektet e tyre, duke përfshirë Microsoft, Google, Facebook, Amazon, Dropbox, Fastly, Chef, Baidu dhe shumë të tjera.

Rust zgjidh një nga problemet më të rëndësishme të gjuhës C. Ai ofron menaxhim automatik të memories, në mënyrë që zhvilluesit të mos kenë nevojë të alokojnë dhe më pas ta çlirojnë atë për çdo objekt në aplikacion. Ajo që e ndan Rust nga gjuhët e tjera moderne është se ai nuk ka një mbledhës plehrash që heq automatikisht nga memoria objektet e pavaruara, si dhe një mjedis ekzekutimi që është i nevojshëm për funksionimin e tij, si, për shembull, Java Runtime Environment për Java. Në vend të kësaj, Rust ka koncepte si pronësia, huazimi, referencat dhe koha e jetës. «Në Rust ka një sistem deklarimi për thirrjet e objekteve, që lejon të specifikosh nëse e përdor pronari apo është thjesht huazim. Nëse thjesht huazon një objekt, kompileri do ta mbajë nën kontrolle dhe do të garantojë që origjinali të mbetet në vend sa kohë që e referon. Gjithashtu, Rust do të sigurojë që objekti të hiqet nga memoria menjëherë pas përfundimit të përdorimit të tij, duke inseruar thirrjen përkatëse në kod gjatë kompilimit pa shpenzime shtesë të kohës», tregon Triplett.

Mungesa e një mjedisi të vetë ekzekutimit gjithashtu mund të konsiderohet si një karakteristikë pozitive e Rust. Triplett beson se gjuhët që ekzekutohen me ndihmën e tij janë të vështira për t'u përdorur si një mjet për programimin sistemor. Siç shpjegon ai: «Duhet të inicializosh këtë mjedis ekzekutimi përpara se të mund të thërrasësh ndonjë kod, duhet ta përdorësh këtë mjedis ekzekutimi për thirrjen e funksioneve, dhe vetë mjedisi ekzekutimi mund të ekzekutojë kod shtesë pas shpine në momente të papritura».

Gjithashtu, Rust synon të sigurojë programim të sigurt paralel. Të njëjtat funksione që e bëjnë atë të sigurt për memorien ndjekin gjëra si cilit rrjedhë i përket cili objekt dhe cilat objekte mund të kalohen midis rrjedhave, ndërsa cilat kërkojnë bllokim.

Të gjitha këto funksione e bëjnë Rust mjaft të bindshëm, sa për zhvilluesit të zgjedhin atë si një mjet të ri për programimin sistemor. Megjithëse, nga pikëpamja e llogarive paralel Rust akoma është pak prapa C.

Triplett planifikon të krijojë një grup të veçantë punues për të implementuar në Rust funksionet e nevojshme, në mënyrë që ai të mund të arrijë plotësisht të përputhet, të tejkalojë dhe të zëvendësojë C në fushën e programimit sistemor. Në temën në Reddit, e cila i kushtohet prezantimit të tij, ai njoftoi se «grupi FFI/C Parity është në procesin e krijimit dhe ende nuk ka filluar punën», për momentin është i gatshëm të përgjigjet për çdo pyetje, dhe në të ardhmen do të publikojë gjithmonë planet e tij të afërta për zhvillimin e Rust në kuadër të iniciativës së tij për të gjithë ata të interesuar.

Është e arsyeshme të supozohet se grupi FFI/C Parity do të fokusohet fillimisht në përmirësimin e mbështetjes për shumëfije në Rust, implementimin e mbështetjes për BFLOAT16, një format përfaqësimi të numrave me pikë të lëvizshme që ka ardhur në procesorët e rinj Intel Xeon Scalable, si dhe stabilizimin e injeksioneve të kodit në Assembler.



Burimi: 3dnews.ru
Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS 🔥 Bleni hostim të besueshëm për faqe me mbrojtje nga DDoS, serverë VPS VDS | ProHoster