«Rust — e ardhmja e programimit sistemor, C — Assembleri i ri» — fjalimi i një nga inxhinierëve kryesorë të Intel

Në Samitin e fundit të Teknologjive me Burim të Hapur (Open Source Technology Summit - OSTS) Josh Triplett, inxhinieri kryesor i Intel, tregoi se kompania e tij është e interesuar që gjuha Rust të arrijë "paritetin" me gjuhën C, e cila vazhdon të mbetet dominuese në fushën e zhvillimit të sistemeve dhe kodit të ulët. Në fjalimin e tij të titulluar "Intel dhe Rust: e ardhmja e programimit të sistemeve", ai gjithashtu njoftoi historinë e programimit të sistemeve dhe se si C u bë gjuha e programimit të sistemeve "me të drejtë", cilat mundësi ofron Rust që i japin përparësi ndaj C dhe se si ai mund ta zëvendësojë plotësisht C në këtë fushë programimi në të ardhmen.

«Rust — e ardhmja e programimit sistemor, C — Assembleri i ri» — fjalimi i një nga inxhinierëve kryesorë të Intel

Programimi i sistemeve është zhvillimi dhe menaxhimi i softuerit që shërben si platformë për krijimin e aplikacioneve, duke siguruar ndërveprimin e fundit me procesorin, memorjen RAM, pajisjet e hyrjes-daljes dhe pajisjet rrjet.

Vete Triplett e përcakton programimin e sistemeve si "gjithçka që nuk është aplikacion". Ajo përfshin gjëra si BIOS, ngarkuesit, firmware dhe bërthamën e sistemeve operative, lloje të ndryshme të kodit të ulët të integruar, si dhe realizime të makinave virtuale. E veçantë është se Triplett mendon se shfletuesi i internetit gjithashtu është softuer sistemor, pasi që shfletuesi prej kohësh nuk është më "thjesht një program", por është transformuar në një "platformë për faqe interneti dhe aplikacione".

Në të kaluarën, shumica e programeve të sistemeve, duke përfshirë BIOS, ngarkuesit dhe firmware, ishin shkruar në gjuhën assemble. Në vitet 1960 filluan eksperimentet për të siguruar mbështetje harduerike për gjuhët me nivel të lartë, çka çoi në krijimin e gjuhëve 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, që nuk kishte as mbështetje për tipizimin, C u mbush me funksione të fuqishme të nivelit të lartë, të cilat ishin më së miri të përshtatshme për shkruarjen e sistemeve operative dhe drejtorive. Disa komponentë të UNIX-it, duke përfshirë bërthamat e tij, përfundimisht u rikrijuan në C. Më pas, shumë programa të tjera sistemike, duke përfshirë bazën e të dhënave Oracle, shumicën e kodit burimor të Windows dhe sistemin operativ Linux, gjithashtu u shkruan në C.

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

Së pari, gjuha duhet të ofrojë 'funksione mjaft mbresëlënëse'. 'Ajo nuk mund të jetë pak më e mirë. Ajo duhet të jetë ndjeshëm më e mirë, për të justifikuar përpjekjet dhe kohën e inxhinierëve të nevojshme për kalimin', shpjegon ai. Krahasuar me gjuhën e assemble, C kishte shumë gjëra që mund të ofronte. Ajo mbështeste në një farë mase tipizimin e sigurt, siguroi portabilitet dhe performancë më të mirë me struktura të nivelit të lartë, dhe gjithashtu gjeneronte në përgjithësi kod shumë më të lexueshëm.

Së dyti, gjuha duhet të sigurojë mbështetje për mundësitë e vjetra, që do të thotë se në historinë e kalimit në C, zhvilluesit duhej të ishin të sigurt që ajo nuk ishte më pak funksionale se gjuha assemble. Triplett sqaron: 'Një gjuhë e re nuk mund të jetë vetëm më e mirë, ajo gjithashtu duhet të mos jetë më keq'. Përveç faktit që C ishte më i shpejtë dhe mbështeste çdo lloj të dhënash që mund të përdorte gjuha assemble, ajo gjithashtu kishte atë që Triplett e quajti 'dritarja emergjente', që do të thotë se mbështeste brenda tij fusha të kodit në gjuhën assemble.

«Rust — e ardhmja e programimit sistemor, C — Assembleri i ri» — fjalimi i një nga inxhinierëve kryesorë të Intel

Triplet mendon se C tani po bëhet ajo që ishte gjuha e assembler-it shumë vite më parë. "C është assembler-i i ri", deklaron ai. Tani zhvilluesit po kërkojnë një gjuhë të re të nivelit të lartë, e cila jo vetëm që do të zgjidhë problemet që janë akumuluar në C, të cilat tashmë nuk mund të korrigjohen, por gjithashtu do të ofrojë mundësi të reja të mahnitshme. Një gjuhë e tillë duhet të jetë mjaft bindëse për të shtyrë zhvilluesit të kalojnë në të, duhet të jetë e sigurt, të ofrojë menaxhim automatik të memories dhe shumë të tjera.

"Çdo gjuhë që dëshiron të jetë më e mirë se C, duhet të ofrojë shumë më tepër se thjesht mbrojtjen nga mbipërfillja e memories, 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 bën më shumë punë për një numër më të vogël rreshtash. Duhet gjithashtu të zgjidhen problemet e sigurisë. Lehtësia e përdorimit dhe performanca janë të pandashme së bashku. 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 që lidhet me sigurinë, ose ndonjë tjetër," shpjegon Triplet.

Krahasimi i Rust dhe C

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

Një nga arsyet se pse Mozilla u interesua për një gjuhë të re, është se Firefox ishte shkruar në më shumë se 4 milion rreshta kodi C++ dhe kishte mjaft vulnerabilitete kritike. Rust u krijua duke pasur parasysh kërkesat e sigurisë dhe paralelizmit, duke e bërë atë një zgjedhje ideale për të rishkruar shumë componente të Firefox-it në kuadër të projektit Quantum për një riparim të plotë të arkitekturës së shfletuesit. Gjithashtu, Mozilla përdor Rust për zhvillimin e Servo, motorit të renderimit HTML, i cili në të ardhmen do të zëvendësojë motorin aktual të renderimit të Firefox-it. 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, kështu që zhvilluesit nuk kanë nevojë të alokojnë dhe më pas të lirojnë manualisht memorinë 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 mbeturinash që fshin automatikisht objektet e papërdorura nga memoria, si dhe një ambient ekzekutimi të nevojshëm për funksionimin e tij, si Java Runtime Environment për Java. Në vend të kësaj, Rust ka koncepte pronësie, huamarrjeje, referencash dhe kohëzgjatjeje. "Në Rust ka një sistem për deklarimin e thirrjeve të objekteve, që lejon të specifikohet nëse është pronari që e përdor ose është thjesht një huamarrje. Nëse po huazoni një objekt, kompilatori do ta ndjekë këtë dhe do të sigurojë që origjinali të mbetet në vend derisa ju t'i referoheni atij. Gjithashtu Rust do të sigurojë që objekti të jetë i fshirë nga memoria menjëherë pas përfundimit të përdorimit të tij, duke futur thirrjen përkatëse në kod gjatë kompilimit pa ndonjë kosto shtesë në kohë", thotë Triplett.

Mungesa e një ambienti ekzekutimi për vete gjithashtu mund të konsiderohet një karakteristikë pozitive e Rust. Triplett mendon se gjuhët që ekzekutohen me ndihmën e tij janë të vështira për tu përdorur si mjete për programimin sistemor. Siç shpjegon ai: "Ju duhet të inizializoni këtë ambient ekzekutimi para se të mund të thirrni ndonjë kod, duhet ta përdorni këtë ambient për të thirrur funksione, dhe vetë ambienti ekzekutimi mund të ekzekutojë kod të tjerë pas shpine në momente të papritura".

Rust gjithashtu 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 se kujt i përket cila objekt dhe cilët objekte mund të kalohen mes fijeve dhe cilët duhet të bllokohen.

Të gjitha këto funksione e bëjnë Rust mjaft bindës, duke lejuar zhvilluesit të zgjedhin atë si një instrument të ri për programimin sistemor. Megjithatë, nga pikëpamja e llogaritjeve paralele, Rust ende pak mbetet pas C.

Triplet do të krijojë një grup të veçantë pune, i cili do të merret me implementimin e funksionaliteteve të nevojshme në Rust, në mënyrë që ai të mund të barazoj, tejkaloj dhe zëvendësoj C-në në fushën e programimit sistemik. Në temën në Reddit, e kushtuar prezantimit të tij, ai tha se "grupi FFI/C Parity është në procesin e krijimit dhe ende nuk ka filluar punën", deri tani ai është i gatshëm të përgjigjet për çdo pyetje, dhe në të ardhmen padyshim do të publikojë planet e tij më të afërta për zhvillimin e Rust në kuadër të iniciativës së tij për të gjithë palët e interesuara.

Është e mundur të supozohet se fillimisht grupi FFI/C Parity do të merret me përmirësimin e mbështetjes për shumëprocesorët në Rust, implementimin e mbështetjes për BFLOAT16, formati i përfaqësimit të numrave me presje lundruese që ka ardhur në procesorët e rinj Intel Xeon Scalable, si dhe stabilizimin e kodit të përfshirë në Asamblenë.



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