ホームページ >バックエンド開発 >Python チュートリアル >Go言語の責任者が辞任した後、国産言語が誕生

Go言語の責任者が辞任した後、国産言語が誕生

PHPz
PHPz転載
2023-04-10 12:21:031202ブラウズ

イベントレビュー

先週、GoogleのGo言語プロジェクト責任者であるスティーブ・フランシア氏が辞任を発表した。理由としては、Go プロジェクトの作業が停滞しており、それが彼を不快に感じさせたということでした。興味深いことに、国内の Gopher (Go 言語愛好家の自称) の中には、Go 言語について新しいアイデアを持っている人もいます。たとえば、中国で最初の Go 言語愛好家の 1 人である Chai Shushan や、世界の Go 貢献者のトップ 50 に長年ランクされている Shi Bin などの Gopher は、Go 言語をベースにした新しいプログラミング言語を立ち上げることを決定しました。 Ao Language™ (Ao)。「ワ」と発音します。

現在、Concave Language™ のコードは Github でオープンソース化されており、簡単な実行可能サンプルが提供されています。ウェアハウスの紹介によると、WaGo Language™ の設計目標は次のとおりです。 1. Go および Rust 構文で覆われた C 言語 2. Wago Language™ のソース コード ファイルの接尾辞は .wa3 であり、凹型言語™ コンパイラは、WaGo 構文と互換性があります。Concave 文法は、AST レベルで WaGo 文法と一致します (2 つは同じ AST を生成し、ロスレスで相互に変換できます)。 4. Concave Language™ は、中国語/英語のバイリンガル キーワード、つまり任意のキーワードをサポートします。中国語版と英語版があり、この 2 つは文法レベルでは同等です

Go言語の責任者が辞任した後、国産言語が誕生

concave language™ 表示、画像ソース @GitHub

Chai Shushan 氏、Shi Bin 氏らによると、Go 言語の「抑制された」スタイルが、プログラミング言語の美しさの最大公約数です。したがって、Concave Language™ プロジェクトが立ち上げられたとき、Go の設計アイデアと具体的な実装が大きく活用されました。

もちろん、初期の青写真として Go 言語を選択することは、限られた投資の中で妥協しなければならないことだとも言いました。彼らは、プロジェクトが発展するにつれて、より独創的なデザインを蓄積し、独立したイノベーションの傾向に貢献することを望んでいます。 Chai Shushan 氏や Shi Bin 氏などは上級 Gopher であるため、彼らが Go 言語を好むことを理解するのは難しくありませんが、彼らをそこまで Go 言語に魅了するほどの Go 言語はどれほど魔法のようなものなのでしょうか?

Go 言語を選ぶ理由

Go 言語を使用した多くの開発者による Go の評価を見ると、Goこの言語はデザイン上以下の4つの特徴を持っています。

1. シンプルで使いやすい
他のものとは異なります。常に新しい機能を追加する主流のプログラミング言語 (C、Java など) を利用する Go の設計者は、言語設計の初期段階で言語機能統合の道を選択することを拒否し、「」を選択しました。引き算。」

彼らは、複雑さについては言語自体の設計と実装、つまり Go コア開発チームに任せ、シンプルさ、使いやすさ、わかりやすさについては、ほとんどの開発者は Go 言語を使用します。したがって、Go 言語は次のようになります:

    簡潔で従来の構文 (シンボル テーブルを解析する必要なし)、キーワードはわずか 25 個;
  • ヘッダー ファイルなし;
  • 明示的な依存関係 (パッケージ);
  • 循環依存関係なし (パッケージ);
  • 定数は単なる数値です;
  • 最初の文字の大文字と小文字が可視性を決定します;
  • どの型にもメソッドを持つことができます (クラスはありません) );
  • #サブタイプ継承なし (サブクラスなし);
  • #算術変換なし;
  • #コンストラクターやデストラクターはありません;
  • 代入は式ではありません;
  • は代入と関数呼び出しで定義されています 評価順序 (概念はありません) "シーケンス ポイント");
  • ポインタ演算なし;
  • メモリは常にゼロ値に初期化されます;
  • 型注釈構文はありません (C の const、static など)
  • ......
  • #2. 好みの組み合わせ

C や Java などの主流のオブジェクト指向言語は、巨大なトップダウン型システム、継承、明示的なインターフェイス実装、その他のメカニズムを通じてプログラムのさまざまな部分を結合しますが、Go 言語では次のようになります。古典的なオブジェクト指向の構文要素、型システム、継承メカニズムはありません。

では、Go 言語はプログラムのさまざまな部分をどのように結合するのでしょうか?それは組み合わせです。

言語設計レベルでは、Go は Go 言語の型なしシステムを含む、直交する文法要素を使用します。型は独立しており、サブタイプの概念はありません。各型には独自のものを持たせることができます。メソッドのセット、型定義とメソッド実装は直交しており、独立しています。
型間の型埋め込みを通じて、既に実装されている関数が新しい型に埋め込まれ、新しい型の機能要件を迅速に満たします。新しい型のインスタンスでメソッドを呼び出す場合、メソッドの一致は型ではなくメソッド名に依存します。
さらに、インターフェイスの動作の集約は、インターフェイスの定義にインターフェイスの型を埋め込んで大規模なインターフェイスを形成することによって実現されます。この方法は、特に、標準ライブラリであり、Go言語のイディオムとなっています。

これは Go 言語の革新的な設計です。インターフェイスは単なるメソッドのコレクションであり、実装者との関係は暗黙的であるため、言語のさまざまな部分間の結合を減らすことができます。プログラムを一番下まで。
3. 同時実行性と軽量

Go 言語デザイナーに関する 3 つのことロブ・パイク、ロバート・グリーズマー、ケン・トンプソンはかつて、C 標準委員会は近視眼的な考え方をしていると信じていました。ハードウェアは今後 10 年間で大きな変化が起こる可能性が高く、言語とハードウェアを緊密に結び付けるのは非常に賢明ではないからです。開発者が大規模な同時実行プログラムを作成する場合、これはあまり役に立ちません。
そのため、彼らはマルチコア指向のネイティブ組み込み同時実行サポートを新しい言語の設計原則の 1 つとみなしています。

Go 言語の同時実行性のネイティブ サポートの設計哲学は、次の 2 つの点に反映されています。
# (1) Go 言語は軽量のコルーチン同時実行モデルを採用しており、マルチコア ハードウェアに直面する場合に Go アプリケーションのスケーラビリティを高めます。 (2) Go 言語は、同時実行をサポートする構文要素とメカニズムを開発者に提供します。
#4. エンジニアリング志向

# Go 言語のデザイナーGo 言語の初期設計段階では、工学的問題の解決が Go の設計原則の 1 つとみなされ、その後 Go の文法、ツールチェーン、標準ライブラリの設計が検討されました。研究指向のプログラミング言語、これが大きな違いです。
#これにより、Go 言語の仕様はシンプルかつ柔軟になり、他の言語の基礎を持つプログラマーでもすぐに使い始めることができます。さらに重要なことは、Go には完全なツール チェーンが付属しており、これによりチームのコラボレーションの一貫性が大幅に向上します。たとえば、Gofmt は Go コードを自動的にフォーマットするため、さまざまな人々が作成したコードのフォーマット スタイルが一貫していないという問題が大幅に解消されます。アーカイブの編集時に Gofmt を自動的に実行するようにエディターを構成すると、コードを記述するときに Gofmt をどこにでも配置でき、アーカイブ時に自動的に正しくフォーマットされたコードになります。さらに、Gofix や Govet などの非常に便利なツールもあります。

つまり、言語レベルでのシンプルさにより、Go は C/Java などに劣らない表現力を得ることができ、同時に可読性と柔軟性も向上します。高い開発効率など、ソフトウェアエンジニアリングの分野でより重要な要素。

凹型言語の未来™

現在でも、優れたパフォーマンスで Go 、主流のプログラミング言語の 1 つになりました (75%#CNCF プロジェクト (Kubernetes## を含む) 以上) # と Istio は両方とも Go で記述されています。 ## も主要なクラウド アプリケーション言語の 1 つです)、Go 言語も中国では非常に人気がありますが、## から生まれた言語であることを依然として心配せずにはいられません。 #Go の concave language™ には明るい未来があるでしょうか? #未来を予測することは常に困難でしたが、幸いなことに、Concave Language™-Go 言語の前には先駆者が存在します。 Go の開発に基づいて、Concave Language™ の将来について大まかに推測するのもよいでしょう。

Go は、Qiniu Cloud CEO Xu Shiwei によって発明されたプログラミング言語です。2020 年 7 月に正式にリリースされ、2021 年 10 月にバージョン 1.0 がリリースされました。現在、最新バージョンは 6 月 13 日にリリースされています。今年、バージョン 1.1 をリリースしました。つまり、正式リリースから現在までに 2 年近くが経過していますが、Go はまだ初期段階にあり、大規模なアプリケーションにはほど遠い状況にあり、Concave Language™ が市場に投入されるまでには長い時間がかかることが予想されます。大多数の開発者の目から見ると、

さらに、ECUG Con 2022 カンファレンスでの Xu Shiwei の見解によれば、誰もがプログラミング言語のパフォーマンスにより注意を払っていますが、パフォーマンスの観点だけで見ると、Xu Shiwei は Python が優れていると信じています。はスクリプト言語の 1 つですが、Python は二流としか考えられず、実際には高速ではありません。

Xu Shiwei 氏の見解では、新しい言語にとって最も重要なことは、その言語が選択するターゲット グループです。

Go が選んだターゲットは国民全体であり、許世偉氏は Go を「子供でも習得できる言語」と呼んでいます。ユーザーベースを築きます。

Go のこれらの特性により、一部の開発者は Go の将来について楽観的になります。 Go に対する前向きな期待は、Go のさらなる発展に役立ちます。

この原則は Concave Language™ にも当てはまります: Concave Language™ の開発の焦点はパフォーマンスではなく、どのグループをターゲット ユーザーとして選択するかにあるかもしれません。シード ユーザーを取得する方法。

Ao Language™ のプロジェクトチームが今後このようなニュースを発表してくれるのであれば、Ao Language™ の今後がまだまだ楽しみです。

以上がGo言語の責任者が辞任した後、国産言語が誕生の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事は51cto.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。