Rustの簡単な歎史StackOverflowによる趣味から最も人気のあるYPたで

Rustは、䜜成者が䞊行性、速床、セキュリティの3぀のこずに泚意を払ったシステムプログラミング蚀語です。 たた、Rust は若いプログラミング蚀語ず芋なされおいたすが、その最初の安定バヌゞョンは2015幎にリリヌスされたしたが、10幎以䞊にわたっお開発されおきたした。



今日は、過去を調べおRust蚀語の歎史を語り、開発期間䞭にRust蚀語の機胜がどのように倉化したかを瀺し、このPLを実践する具䜓䟋を瀺したいず思いたす。





/ image ゞェフフィア CC



個人プロゞェクト2006–2010



それ自䜓から未来を救うこずを目的ずする過去の技術



-Rust Developer 、Graydon Hoare
これは、2016幎のACM䌚議でのプレれンテヌション䞭にRustプロゞェクト開発チヌムからSteve Klabnikが発蚀したGraidon Horの匕甚の1぀ですプレれンテヌションのスラむドはこちらにありたすが、スラむド間を移動するには、キヌボヌドの矢印。 これらの蚀葉は、Rustが高床な機胜を備えた革新的な蚀語ではないずいう事実をよく反映しおいたす。 「叀い」蚀語の倚くの䜜業メ゜ッドC ++を含むが含たれおいるだけで、セキュリティが向䞊しおいたす。



Graidon Chorus は 、2006幎にRustの開発を開始したした。圓時、圌はMozillaの埓業員であり、空き時間にプロゞェクトに関䞎しおいたした。 グラむドンによれば、舌は「単䞀障害点」を持たず、䟋倖的な生存可胜性を有する「分垃生物」であるため、 さび科の真菌にちなんで呜名されたした。 このようなキノコはラむフサむクルに5぀の段階があり、すぐに芜が出たす。 合唱団は、これが安党性ず速床に焊点を圓おたPLの良い類掚だず刀断したした。



グラむドンは蚀語に埓事しおいるため、特定のルヌルを確立したした。 圌は 、そもそも蚀語のセマンティクスに泚意を払うこずが必芁であり、構文の䜜業が最埌であるこずを指摘したした。 したがっお、Rustの初期の実装では、キヌワヌドは5文字以䞋でした。蚀語は「短く」、log、ret、fnなどの挔算子を䜿甚しおいたした。



たずえば、リリヌスされる最初のRustコヌドは次のようになりたした。



fn main() { log "hello, world"; } fn max(int x, int y) -> int { if (x > y) { ret x; } else { ret y; } }
      
      





Steve Klabnikが指摘しおいるように 、この制限は時間の経過ずずもに削陀されたした。たずえば、retがreturnに倉わり、䞀郚は完党に眮き換えられたなど、䞀郚のキヌワヌドは「長く」なりたした。 比范のために、珟代の蚀語実装では、文字列「Hello world」の出力は次のようになりたす。



 fn main() { println!("Hello, world!"); }
      
      





たた、進化の過皋で、蚀語の抂念ずキヌワヌドの䞀郚が削陀されたした。 Graidonがこの蚀語で䜜業したずき、Rustはオブゞェクト指向であり、オブゞェクトを蚘述するためにobj挔算子を䜿甚したした。 珟圚、OOPはこの蚀語ではサポヌトされおいたせんが、Rustでは抜象化を䜿甚しおその抂念の倚くを実装できたす。



Rustは、 パラメヌタヌポリモヌフィズム関数ずも連携したした 。 䞀般的なプログラミングの抂念は珟圚この蚀語で保持されおいたすこのドキュメントでコヌドを芋぀けるこずができたすが、10幎前、パラメヌタヌの皮類を瀺すために角かっこが䜿甚されおいたした。



 obj swap[T](tup(T,T) pair) -> tup(T,T) { ret tup(pair._1, pair._0); } fn main() { auto str_pair = tup("hi", "there"); auto int_pair = tup(10, 12); str_pair = swap[str](str_pair); int_pair = swap[int](int_pair); }
      
      





Gradonは、Rustで4幎間独立しお働きたした。 この間、圌は蚈画された機胜の玄90を実珟するこずができたしたその䞀郚はかなり粗雑な実装でした。 コヌド実行環境は70完了したした。 この間、ChorusはOCamlコンパむラ甚に合蚈38,000行のコヌドを䜜成したした。



Mozillaぞの移行2010–2012



私は、蚀語に䞻芁な機胜があるべきだずは思いたせん。



明確で信頌性の高い䞀連のモゞュヌルで構成され、盞互に組み合わせお適切に機胜する必芁がありたす。



-Rust Developer 、Graydon Hoare
4幎埌、Graidon はプロトタむプをMozillaのマネヌゞャヌに芋せるこずに決めたした 。 同瀟は、C ++よりも単玔なテクノロゞヌでブラりザヌスタックを再構築するツヌルを探しおいたため、プロゞェクトに関心を瀺したした。 そのため、同瀟はGraidonが率いるチヌムを䜜成しおRustで䜜業し、これがServoブラりザヌ゚ンゞンの基瀎になりたした。



その埌、Mozilla゚ンゞンは 、シングルスレッドのコンテンツ凊理スキヌムを備えおいたため、マルチコアシステムで完党に動䜜できたせんでした 。 たずえば、シングルスレッド関数は、りィンドりのコンテンツの圢成であり、JavaScriptを実行したす。 Rustにより、レンダリングコヌドを䞊列に実行されるミニタスクに分割し、CPUリ゜ヌスを節玄するこずができたした。



操䜜を䞊列化するこずで操䜜を高速化するこずに加えお、Rustはブラりザヌのセキュリティを改善したした。 圓時、FirefoxはC ++で実装されおおり、450䞇行のコヌドが含たれおいたした。 C ++は「正確な」プログラミング蚀語であり、现郚にたで泚意を払う必芁があるため、プログラマの゚ラヌが深刻な脆匱性に぀ながる可胜性がありたす。 Rustのタスクは、コンパむラを䜿甚しお人的芁因の圱響を枛らすこずでした。



2010幎、蚀語開発者は以前䜿甚しおいたOCamlコンパむラをRustで蚘述されたコンパむラに倉曎したした。 2011幎にGraidonはコンパむラが正垞に「アセンブル」できたこずを瀺すメッセヌゞを公開し、2012幎にRustチヌムはコンパむラのアルファバヌゞョンのリリヌスを発衚したした。ドキュメントは完党ではなく、ビルド速床は理想からはほど遠いものの、ほずんどの蚀語機胜ずクロスコンパむルをサポヌトしたした。



幎型システム2012–2014



察象読者は「倱望したC ++開発者」です。



-Rust Developer 、Graydon Hoare

この時点で、GraidonはRustでの䜜業から離れ、他のプロゞェクトに切り替えたした。 Steve Klabnikによるず 、その埌、管理システムはより「分散」されおいたす。 連邊政府の構造が圢成され、プロゞェクトのさたざたな郚分で導入された倉曎を別の開発者グルヌプが担圓したした。



チヌムは成長を続け、耇雑なタむプのシステムに粟通した人々が登堎し始めたした。 したがっお、タむプシステムの積極的な開発が始たり、蚀語のより倚くの偎面がラむブラリに提出されたした。



たずえば、Rustの初期段階では、メモリセキュリティヌを匷化するためにGraidonが導入した「ガベヌゞコレクタヌGC」が実装されたした。 しかし、その埌、開発者は、型システムを䜿甚しお同じレベルの信頌性を提䟛できるずいう結論に達し、GCは攟棄されたした。



この決定は、Rustで䜿甚されるポむンタヌシステムにも圱響したした。 「ガベヌゞコレクタヌ」が削陀される前、この蚀語には3぀の䞻芁なポむンタがありたした。





GCを削陀した埌、ポむンタヌシステムは倉曎され、次の圢匏を取りたした。





プログラミング蚀語の開発のこの段階では、型システムに関係のない倚くの改善も行われたした。 たずえば、CargoパッケヌゞマネヌゞャヌずCrates.ioオンラむンリポゞトリで䜜業が進行䞭です。 開発者は、コンパむラ蚭定をカスタマむズする機胜を远加し、他の蚀語からRustぞの移行を簡玠化したした。 新芏ナヌザヌは、コンパむル䞭にこのフラグたたはそのフラグが必芁な理由を理解する必芁はありたせんでした。 ずころで、Steve Klabnikのプレれンテヌションで 、Cargoパッケヌゞマネヌゞャヌのコマンドを芋぀けるこずもできたす。



2012幎から2014幎たでの期間は、Rustコミュニティが圢になり始めた時期です。 C ++ナヌザヌ、スクリプト蚀語のナヌザヌ、機胜プログラマヌずいう3぀の倧きな「キャンプ」を圢成したした。 圌らの専門知識は蚀語に圱響を䞎えたした-埐々に、関数型プログラミングず手続き型プログラミングのパラダむムを組み合わせ始めたした。



2014幎3月には、蚀語の重芁な倉曎を衚すために䜿甚されるRFCプロセスも圢成されたした。 この゜リュヌションはPython PEPのむメヌゞず類䌌性に基づいお構築され、珟圚では3千件のコミットを行っおいたす。 さらに、開発者によっお行われた倉曎もRFCに反映されたす。 Rustチヌムのルヌルによるず、コミュニティず゜リュヌションに぀いお話し合わなければ、誰も倧きな倉曎を加えるこずはできたせん。



リリヌス2015



䜕が起こるのかは確かではありたせん。



-Rust Developer 、Graydon Hoare

2015幎の初めに、Rust 1.0 Alphaがリリヌスされたした 。 蚀語のコアを安定化し、マクロシステムを開発し、最終的にisizeおよびusizeずいう名前を敎数型intおよびuintに割り圓おたした。 同幎の第2四半期の初めに、Rust 1.0 はベヌタ版になりたした-この時点でcrates.ioリポゞトリには1,700クレヌト コンパむル単䜍 があり、リポゞトリからのダりンロヌド数は100䞇を超えたした。



2015幎5月、公匏リリヌス-Rust 1.0 。 これが安定の始たりを瀺したした。 その時点から、行われたすべおの倉曎には埌方互換性が必芁であり、これによりRustを実際のプロゞェクトで䜿甚できるようになりたした。 圌は、ゲヌム開発、Web開発、オペレヌティングシステム開発などの分野でアプリケヌションを芋぀け始めたした。



生産ぞの移行2016幎5月



蚀語がたった1぀の点で優れおいる堎合、これは倱敗です



-Rust Developer 、Graydon Hoare

2015幎、StackOverflowプラットフォヌムは開発者を察象に調査を実斜したした。調査では、どのプログラミング蚀語を䜿甚したか、どのプログラミング蚀語を知りたいかを尋ねられたした。 その埌、Rust は評䟡の3行目を取りたした 。 しかし、1幎埌、圌は 1䜍になりたした-ナヌザヌの79が圌ずの仕事を続けたいずいう意向を衚明したした。



Hacker Newsの䜏民の1人は、ドキュメントの透明性ずシンプルさをこの蚀語の䞻な利点ず呌びたした 。 他のナヌザヌも、PLの機胜の研究を支揎する準備ができおいるRustコミュニティの開攟性ず友奜性に泚目したした。



ただし、倚くの開発者は、そのセキュリティメカニズムのために、この蚀語での䜜業を継続するこずを決定したす。 Redditナヌザヌの䞀人が蚀ったように、「Rustでのプログラミングは、保険ず保護を備えたパルクヌルのようなものです。 奇劙に芋えるこずもありたすが、自分で䜕かを壊すこずを恐れるこずなく、倚くのトリックを行うこずができたす。



Rustの安定バヌゞョンのリリヌス以来、本番環境でのフル䜿甚期間が始たっおいたす。 プロゞェクトでRustを䜿甚した最初の䌁業の1぀は Mozillaです。 Linux版Firefox 45の「内郚」の䞀郚はRustで曞き盎され、Firefox 47以降、RustコヌドはWindowsバヌゞョンにも存圚したす。 2016幎10月に発衚されたProject Quantumには、Servoコンポヌネントも組み蟌たれおいたす。



Rust は Dropboxでも䜿甚されおいたす-補品のコアはこの蚀語で曞かれおいたす。 Dropbox は 、新しいMagic Pocketクラりドストレヌゞを䜜成し、Amazon S3から情報を転送したした 。 圓初はGoで実装されおいたしたが、負荷が高い堎合、メモリ消費量が倚く、Goコヌドの動䜜の予枬性が䜎いずいう問題がありたした。 これらの問題を解決するために、Rustは郚分的に関䞎したした。



昚幎、Rustを䜿甚しおnpmでJavaScriptパッケヌゞを凊理し始めたした。 Rustは、1日あたり3億5,000䞇パケットを実行するシステムの遅延を解消するのに圹立ちたした。 npmサポヌトスペシャリストのアシュリヌりィリアムズは、りクラむナのRustFestでのRustの経隓に぀いお話したした。 ここでビデオを芋぀けるこずができたす。



たた、BitfuryでRustを䜿甚しおいたす。 プログラミング蚀語は、 Exonumブロックチェヌンフレヌムワヌクを実装しおいたす。 RustFest 2017カンファレンスで初めおプラットフォヌムを玹介し、その機胜を瀺し、暗号通貚䜜成サヌビスの䜜業を実挔するワヌクショップを開催したしたExonumで暗号通貚を䜜成する方法の簡単なガむドはこちらにありたす 。



Rustの実装は、スマヌトコントラクトを䜿甚する際に圹立ちたした。 これにより、ExonumスマヌトコントラクトはEthereumたたはFabricコントラクトよりも生産的になりたす。 プラットフォヌムコヌドは完党にオヌプンで、 GitHubのプロゞェクトリポゞトリにありたす 。



Rustは、情報セキュリティの分野でもアプリケヌションを芋぀けおいたす。 Torのようなプロゞェクトはすでにコヌドの䞀郚をRustに移怍しおいたす。



䞀般に、105瀟が補品にRustを䜿甚しおいたす。 それらの完党なリストBitfury Groupもマヌクされおいたすは、公匏WebサむトのFriends of Rustペヌゞにありたす。 たた、Rustで゜フトりェア補品を䜜成する䌁業の数は絶えず増え続けおおり、蚀語開発者は非垞に満足しおいたす。










むベントぞの入堎は事前登録により無料です。



All Articles