„Руст је будућност системског програмирања, Ц је нови асемблер“ – говор једног од водећих Интелових инжењера

На недавном Опен Соурце Тецхнологи Сумми (ОСТС) Јосх Триплетт, виши инжењер у Интелу, рекао је да је његова компанија заинтересована да Руст постигне „паритет“ са језиком Ц који и даље доминира системима и развојем ниског нивоа у блиској будућности. У свом говору Под насловом „Интел и Руст: Будућност системског програмирања“, он је такође говорио о историји системског програмирања, како је Ц постао подразумевани системски програмски језик, које карактеристике Руста му дају предност у односу на Ц и како би могао у потпуности заменити Ц у овој области програмирања.

„Руст је будућност системског програмирања, Ц је нови асемблер“ – говор једног од водећих Интелових инжењера

Системско програмирање је развој и управљање софтвером који служи као платформа за креирање апликативних апликација, обезбеђујући интеракцију ових са процесором, РАМ-ом, улазно/излазним уређајима и мрежном опремом. Системски софтвер ствара посебну апстракцију у облику интерфејса који помажу у креирању апликативног софтвера без упуштања у детаље о томе како сам хардвер функционише.

Сам Триплетт дефинише системско програмирање као „све што није апликација“. Укључује ствари као што су БИОС, фирмвер, покретачи и језгра оперативног система, различите врсте уграђеног кода ниског нивоа и имплементације виртуелних машина. Занимљиво је да Триплетт верује да је веб претраживач такође системски софтвер, пошто је претраживач одавно постао више од „само програма“, поставши самостална „платформа за веб локације и веб апликације“.

У прошлости је већина системских програма, укључујући БИОС, покретаче и фирмвер, била написана на асемблерском језику. Шездесетих година прошлог века експерименти су почели да обезбеђују хардверску подршку за језике високог нивоа, што је довело до стварања језика као што су ПЛ/С, БЛИСС, БЦПЛ и АЛГОЛ 1960.

Затим, 1970-их, Денис Ричи је креирао програмски језик Ц за оперативни систем Уник. Створен у програмском језику Б, који чак није имао подршку за куцање, Ц је био испуњен моћним функцијама високог нивоа које су биле најприкладније за писање оперативних система и драјвера. Неколико компоненти УНИКС-а, укључујући његово језгро, на крају је преписано у Ц. Касније су многи други системски програми, укључујући Орацле базу података, већи део Виндовс изворног кода и Линук оперативни систем, такође написани у Ц.

Ц је добио огромну подршку у овом правцу. Али шта је тачно натерало програмере да пређу на то? Триплетт верује да, да би мотивисали програмере да пређу са једног програмског језика на други, овај други прво мора да обезбеди нове функције без губитка старих функција.

Прво, језик мора понудити „разумно импресивне“ нове карактеристике. „Није могао бити бољи. Мора бити знатно боље да се оправда труд и време инжењеринга који су потребни за транзицију“, објашњава он. У поређењу са асемблерским језиком, Ц је имао много тога да понуди. Подржао је донекле безбедно понашање, обезбедио бољу преносивост и перформансе са конструкцијама високог нивоа и генерисао је много читљивији код у целини.

Друго, језик мора да обезбеди подршку за старе карактеристике, што значи да су у историји преласка на Ц програмери морали да буду сигурни да он није ништа мање функционалан од асемблерског језика. Триплетт објашњава: „Нови језик не може бити само бољи, већ мора бити и једнако добар. Поред тога што је бржи и подржава било који тип података који може да користи асемблерски језик, Ц је такође имао оно што је Триплетт назвао „есцапе хатцх“ – наиме, подржавао је уметање кода асемблерског језика унутар себе.

„Руст је будућност системског програмирања, Ц је нови асемблер“ – говор једног од водећих Интелових инжењера

Триплетт верује да Ц сада постаје оно што је асемблерски језик био пре много година. „Ц је нови асемблер“, изјављује он. Сада програмери траже нови језик високог нивоа који не само да ће решити проблеме који су се накупили у Ц-у који се више не могу поправити, већ ће понудити и узбудљиве нове функције. Такав језик мора бити довољно убедљив да натера програмере да се пребаце на њега, мора да буде безбедан, да обезбеди аутоматско управљање меморијом и још много тога.

„Сваки језик који жели да буде бољи од Ц мора да понуди много више од заштите од преливања бафера ако заиста жели да буде убедљива алтернатива. Програмери су заинтересовани за употребљивост и перформансе, писање кода који је сам по себи разумљив и ради више посла у мање редова. Безбедносна питања такође морају бити решена. Лакоћа употребе и перформансе иду руку под руку. Што мање кода морате да напишете да бисте нешто постигли, имате мање могућности да направите било какву грешку, без обзира на безбедност или не“, објашњава Триплет.

Поређење Руста и Ц

Давне 2006. године, Грејдон Хоар, запосленик Мозиле, почео је да пише Руст као лични пројекат. А 2009. године, Мозилла је почела да спонзорише развој Руста за сопствене потребе, а такође је проширила тим да даље развија језик.

Један од разлога зашто је Мозилла била заинтересована за нови језик је тај што је Фирефок написан у преко 4 милиона линија Ц++ кода и имао је доста критичних рањивости. Руст је направљен имајући у виду безбедност и конкурентност, што га чини идеалним избором за преписивање многих компоненти Фирефока као део Куантум пројекта како би се у потпуности редизајнирала архитектура претраживача. Мозилла такође користи Руст да развије Серво, ХТМЛ механизам за рендеровање који ће на крају заменити тренутни Фирефок рендеринг енгине. Многе друге компаније су почеле да користе Руст за своје пројекте, укључујући Мицрософт, Гоогле, Фацебоок, Амазон, Дропбок, Фастли, Цхеф, Баиду и многе друге.

Руст решава један од најважнијих проблема језика Ц. Нуди аутоматско управљање меморијом тако да програмери не морају ручно да је додељују и затим ослобађају за сваки објекат у апликацији. Оно што Руст чини другачијим од других модерних језика је то што нема сакупљач смећа који аутоматски уклања неискоришћене објекте из меморије, нити има окружење за извршавање потребно да би радио, као што је Јава Рунтиме Енвиронмент за Јаву. Уместо тога, Руст има концепте власништва, позајмљивања, референци и века трајања. „Руст има систем за декларисање позива објекту како би се назначило да ли га власник користи или га само позајмљује. Ако једноставно позајмите објекат, компајлер ће то пратити и осигурати да оригинал остане на месту све док га референцирате. Руст ће такође осигурати да се објекат уклони из меморије чим се заврши његова употреба, убацујући одговарајући позив у код у време компајлирања без додатног времена“, каже Триплетт.

Недостатак изворног времена извршавања такође се може сматрати позитивном особином Руста. Триплетт верује да је језике на којима ради тешко користити као алате за системско програмирање. Како објашњава: „Морате да иницијализујете ово време извршавања пре него што можете да позовете било који код, морате да користите ово време извођења за позивање функција, а само време извођења може покренути додатни код иза ваших леђа у неочекиваним временима.

Руст такође настоји да обезбеди безбедно паралелно програмирање. Исте карактеристике које га чине безбедним за меморију прате ствари попут тога која нит поседује који објекат и који објекти се могу пренети између нити и којима је потребно закључавање.

Све ове карактеристике чине Руст довољно убедљивим за програмере да га изаберу као нови алат за системско програмирање. Међутим, у погледу паралелног рачунарства, Руст је и даље мало иза Ц.

Триплетт намерава да направи посебну радну групу која ће се фокусирати на увођење неопходних карактеристика у Руст како би у потпуности могао да изједначи, надмаши и замени Ц у области системског програмирања. ИН тема на Реддиту, посвећен свом говору, рекао је да је „ФФИ/Ц Парити група у процесу стварања и да још није почела са радом“, за сада је спреман да одговори на сва питања, ау будућности ће свакако објавити тренутне планове за развој Руста као део његове иницијативе за све заинтересоване.

Може се претпоставити да ће се ФФИ/Ц Парити група пре свега фокусирати на побољшање подршке за више нити у Руст-у, увођење подршке за БФЛОАТ16, формат са плутајућим зарезом који се појавио у новим Интел Ксеон Сцалабле процесорима, као и на стабилизацију склопа уметања кода.



Извор: 3дневс.ру

Додај коментар