本文へスキップ

錆の世界への旅 - 第1部

ビジュアルにサブライン「錆の世界への旅 - 第1部」

本日は、普段のLinkedIn投稿よりも少し個人的な話題に触れつつ、Rustの世界(Rust-o-Verse)の中心へと続く私の探求の旅を3回シリーズでご紹介したいと思います。しばらく前から、より実践的な開発者としての役割に戻りたいという思いが募っていました。熱心な技術者として、ソフトウェアがゼロからRustで書かれる、あるいはRustへコンバータされる傾向がますます強まっていることに気づいていたのです。そこで新年に伴う野心と目標を胸に、「どれほど難しいだろうか」と考え、Open Source Software(オープンソースソフトウェア)のソフトウェアデファインドビークル(SDV)プロジェクトを選び、最終的にはそれに貢献して、今後のEclipseConイベントで憧れの「Eclipseコミッター」グッズを手に入れようと決意しました!

Rustで書かれたOSS自動車用プロジェクトの重要性をまだご存知ない方には、Eclipse SDV & COVESAで公開されているプロジェクトをぜひご覧になることをお勧めします。この魅力的な「新しい」言語を採用しているプロジェクトの例をいくつか紹介します:


ご覧の通り、私がRustでプログラミングを学ぶ内発的動機は、今日取り組める数多くのソフトウェアデファインドビークル(SDV)プロジェクトから明らかであり、今後もさらに増えることを確信しています。FOSSbassadorとしての日常業務において、これらの各プロジェクトが互いにどれほど互換性を持つか、そしてRustを使用することで得られる利点を目の当たりにするのは非常に刺激的です。私にとって、それは最終的にRustで構築された繁栄し健全なコミュニティを築くための重要な道筋だからです。

この点を踏まえ、私はフリート管理ブループリントに注力することを決定しました。本プロジェクトは複数のイニシアチブ(COVESA、Eclipse、AUTOSAR)の取り組みを統合しようとしているためです。また、他の企業からの貢献によりコミュニティの多様化が進み、独自のオープンソースプラットフォームとして有機的に成長しつつある点も非常に評価しています。

技術者としてのもう一つの動機は、例えば<MQTTをZENOHに置き換える>ことや<フリート管理DATAのダウンサンプリングアルゴリズムをCURVEロギングで実装する>といった作業に何が伴うのか、そしてその過程でRustについて何を学べるのかを特に知りたいという点です。

Geotab(Curveプロジェクト)とZetaScale(Zenohプロジェクト)のビジュアル
ソース: Geotab (Curveプロジェクト) & ZetaScale (Zenohプロジェクト)

この設計図の背景について続きを読む方は、同僚のカイがeclipseConで行った素晴らしい技術セッションをご覧ください。プロジェクトの起源を説明し、解決に役立つ主要な課題の例をいくつか紹介しています。

リードでつながれたトラック - オープンソース方式のフリート管理 YouTubeビジュアル
YouTube

Loading the video requires your consent. If you agree by clicking on the Play icon, the video will load and data will be transmitted to Google as well as information will be accessed and stored by Google on your device. Google may be able to link these data or information with existing data.

さて本題に戻ろう。今回は一味違う、開発ツールや環境への再適応という「錆びついた」経験談だ。かつて馴染み深かった複雑なCMakeやPythonの魔法のような仮想環境は、今や新たなものに取って代わられた。その新しさは、多くの場面で、かつて組込みMISRA C開発者として経験したことと、PythonやJavaScriptといった「高水準」言語の世界へほんの少し足を踏み入れた時の両方を、かすかに思い出させるのだ。

Cargo & crates.io をステージに迎える時がほぼ迫っている…しかしその前に、Linux 環境に Rust とその他の依存関係をインストールする必要があり、ここから私の予想外の冒険が始まった。

驚いたことに、オンラインRustブックの素晴らしいスタートアップ解説を読み終えた直後、新しく得た親友であるcargo CMDの非常に素朴な使い方で最初の壁にぶつかった。頭を掻きながら、淹れたてのエスプレッソと一息つくことが今のジレンマを解決する最善策かもしれないと決断した:

「なぜ貨物建造が失敗し続けたのか?」

さて、これが私の半日にも及ぶ様々な試みの始まりであり、最終的にはredditとStack Overflowの一時的なバッファを使い果たすこととなった。しかし当時は知らなかったのだが、このRustプロジェクトをUbuntu OS上で実行するには、ビルドと実行を選んだプロジェクトを動作させるための秘伝のテクニックがいくつか必要だったのだ…。

これまでこのブログを楽しんでいただけたなら幸いです。これからも私と共に旅を続け、私が「Hello World」の壁をどう乗り越えたか、そしてこのプロジェクトに飛び込んでから学んだことを発見していきましょう。また、フェリスという名の小さなRustaceanが、なぜ自動車用業界にとって非常に有望であり、ソフトウェアデファインドビークル(SDV)とこれからの私の日常生活の中核となる存在だと考えるのか、皆さんとさらに探求できることを楽しみにしています!

パート1をお読みいただきありがとうございます!

プログラミングのミーム
ソース: https://programmerhumor.io/programming-memes/learning-rust-got-me-feeling-like/
次回のBCWイベントか、オープンソースコミュニティの通話のいずれかで私を捕まえてください – じゃあまたね!

トーマス・スプレックリーテクノロジーストラテジストFOSSチーム内での役割:コミュニティ管理、新たなオープン規格の推進
スマートフォン、メールアイコン、ラップトップを持つ人々のイラスト

お問い合わせ

ご質問やご不明な点などございましたら、お問い合わせフォームよりメッセージをお送りください。または、サポートホットラインをご利用ください。

お気軽にお問い合わせください!