Why Sui Move その2:読みやすさと合理性
この記事は、安全性に関する前回のブログ投稿に続いて、私たちがSuiを選択した理由について解説するシリーズのパート2です。このシリーズの目的は、その質問に答え、同じような決断を迫られている人たちを後押しすることです。
Sui Moveはアセットベースのモデルを採用しており、コードを読みやすく、推論しやすくしています。これが、EthosがSui Moveで開発された理由の 1 つです。Suiのアセットベースモデルは、オブジェクト指向プログラミングに似ていて、面白い方法で操作したり組み合わせたりできるアセットを柔軟に扱うことができます。
読みやすさと合理性の重要性に異論を唱える人もいるかもしれません。私たちのチームのweb2やweb3のソフトウェア開発の経験から、読みやすさと合理性はしばしばエコシステム内の開発者の活動に大きな影響を与え、それがエコシステムの価値の核となるドライバーであることが分かっています。
読みやすさと推論が重要な理由
まず、それぞれの用語の簡単な定義から説明します:
- 可読性:あなたのコードを他の人が読んで(あなたが他の人のコードを読んで)その仕組みと意図を理解するのがどれくらい簡単か?
- 合理性:この言語でアイデアを実現するのがどれくらい簡単か?新しいアイデアをコードでどれだけ表現しやすいか?
これらは、プログラミング言語が新しいものを安全かつ効果的に構築する場合における最も価値ある資質であり、各資質は好循環の中で互いに支え合うものとなります。
「コード」はアイデアを表現し、それに命を吹き込むために存在します。誰かがアイデアを実現したり、他の人のアイデアの仕組みを理解して、そこから学んだり、追加したり、維持したりすることが簡単であればあるほど、その誰かが実際に参加してくれる可能性は高くなります。そして、より多くの人が参加すればするほど、そこから学んだり、付け加えたりできるアイデアが増えていくという好循環が生まれます。
このフィードバックループは、ソフトウェアが社会的にいかに価値あるものであるかを示す例です。開発者が互いに学び、互いのプロジェクトに貢献し、一緒にプロジェクトを進めれば進めるほど、より多くの価値が生み出されるのです。失敗するプロジェクトもたくさんありますが、より多くのプロジェクトを立ち上げ、サポートすることで、より多くの社会的利益を得ることができるのです。
読みやすさと合理性を追求した「Sui Move」
Moveを他の言語と比較した場合の差別点として、アセットベースモデルの採用が挙げられます。Sui Moveは、この改良をより推し進めたものです。
Sui Moveで作られたボードゲームの例を見てみましょう:
fun make_move(game: &mut Game, direction: u8, ctx: &mut TxContext) { let board = game_board::next_board(game) game_board::move_direction(&mut board, direction); vector::push_back(&mut game.boards, board);}
ゲームが関数に渡されていることがわかります:
fun make_move(game: &mut Game, direction: u8, ctx: &mut TxContext) {
そして、この関数にはゲームの状態を変更する権限があります。これが「&mut」が示していることです:ゲーム資産を変異させたり変更したりすることが許可されており、ゲームに新しいゲームボード(ゲームの状態)を要求していることがわかります:
let board = game_board::next_board(game)
これはゲームボードの状態を変化させるものです(&mutボードを渡しています):
game_board::move_direction(&mut board, direction);
そして、新しいゲームボードをゲームのゲームボードのコレクションに格納します:
vector::push_back(&mut game.boards, board);
言語の仕様に慣れるまで多少の時間が必要かもしれませんが、Sui Moveは分かりやすいプログラミング言語です。これまでの経験から、Sui Moveで開発を始めて数日で、経験豊富な開発者であれば難なく取り扱うことができるようになるでしょう。静的解析による警告やエラーメッセージは、間違いを修正するために使える即時のフィードバックとなります。テストも行っていれば、コードに対する良いフィードバックサイクルを作ることができます。これによって迅速な反復サイクルが生まれ、開発者と最終結果の両面で非常に有益なものとなっています。
アセットベースのモデルは、この高速なイテレーションプロセスをさらに促進させます。ブロックチェーンの開発は、主にアセットに関するものです。そのアセットは様々なものを表すようになりますが、基本的には誰かまたは何か(例えば別の物体やコントラクト)によって所有されているデジタル情報の一部です。開発者としては、エンドユーザーのためにアセットを保護したいと思うでしょう。また、他の開発者、監査人、ツールがあなたのコードの意図を理解し、あなたが重大な間違いを犯していないことを検証するのを容易にしたいと考えるでしょう。
Sui Moveでコーディングするとき、自分のアイデアをどのように資産として表現するかを考えるようになります。そしてこれは、読み取られ、変更され、転送され、破壊される可能性があります。この言語では、どのような動作が可能かを定義することができ、ルール違反があれば警告が表示されます。このように、本当の価値を持つ資産を扱う言語では、これは画期的なことなのです。
私たちにとって、「Sui Move」の可読性と合理性の扱い方、そしてこのアプローチに内在するメリットは、無視できないほど価値のあるものです。これらの改善によって、DeFiからNFT、ゲーム、そしてまだ想像もしていないユースケースまで、より多くのクリエイティブなブロックチェーンアプリケーションとユーザーエクスペリエンスを実現することができるでしょう。私たちは、その可能性にワクワクしています。