Google's Goが主流言語になる可能性はどのくらいですか?[閉まっている]


58

ここで誰がGoを学習していますか?他の企業はそれを使用することを検討していますか?広く使用される可能性はありますか?


21
rubyはrailsの後に、popular-cはiphoneの後に人気を博しましたafter
-ohho

1
ひどい、それはほとんどの人にとって何も解決しません。
ダニエルリトル

6
可能性は0から1です。より具体的なことは、予後の博士号が必要ですが、私は持っていません。
ラインヘンリヒス

1
@Rein Henrichs -委員会は、最終的な論文にいくつかの変更が必要になりますが、あなたは、次のいずれかを取得します
マーティンベケット

3
Googleは、Go言語用のAndroid SDKの開発を本当に検討すべきです。少なくともスタートとして。
setzamora

回答:


46

プログラミング言語に関して言えば、古い格言「それはあなたが誰であるかではなく、あなたが知っている人である」は間違いなく当てはまります。CとC ++はAT&Tのスポンサーであり、JavaはSunによってもたらされました。.NETファミリーはMicrosoftから出ており、それらはすべて非常に急速に普及しました。次に、Objective-CとPythonがあります。これらはかなり前から存在し、それぞれAppleとGoogleによって発見および宣伝されるまで、本当に不明瞭なままでしたが、その後突然彼らは飛び立ちました。しかし、主要なスポンサーのない言語は、どれほど良いものであっても、あいまいにならない傾向があります。

GoはGoogleがスポンサーです。ここで正しい結論に達することは難しくありません。5年を与えれば、それは巨大になるでしょう。


13
@ixtmixilix:本気ですか?App EngineGWTは別の言い方をします。
imgx64

4
@ixtmixilix-Guice(JavaベースのIoCフレームワーク)はGoogleによって作成され、AdWordsフロントエンドとWaveで使用されます。多くの言語を使用するGoogleの継ぎ目。
mlk

3
+1私はあなたの主な議論に同意します(FORTRAN、COBOL、およびCは生きており、良好です)。
アパララ

2
AT&Tは実際にはCやC ++をプッシュしませんでした。Cは、Unixの言語であり、後に大きなプログラムでPascalよりも優れていたため、人気を博しました。Stroustrupの著書「Design and Evolution of C ++」によると、C ++は単なる広がりです。通常、言語を大きくするには、キラーアプリまたは大企業のスポンサーが必要ですが、言語はそれなしで大きなヒットをするか、それを逃す可能性があります。
デビッドソーン

3
5年が経ちましたが、今はどう思いますか?
ヒッピートレール

17

実際、Goがそれほど成功するとは思いません。なぜそれが大衆に届かないのかという理由は、それがシステムプログラミングのための言語であることを意図しているからです。


17
同意しません。「echo」のLinuxソースコードを見てから、Goのecho実装を見てください。言語がそのような単純なコマンドから数千行を削ることができるなら、おそらくグラフィックス処理ライブラリのようなものから行を削ることができます。そして、それがグラフィック処理ライブラリから行を削ることができるなら、多分(例えば)idソフトウェアの人々はいつかそれをC / C ++より便利だと思うでしょう。また、idにはゲームのソースコードをリリースする習慣があるため、Goの3Dグラフィックスは5年以内に巨大になる可能性があります。
ixtmixilix

14
@ixtmixilix Linuxは、GNUの一部であるエコーとは何の関係もありません。
代替案

3
アーランで書かれたものを見たことがありますか?それはひどい神ではありません。
Unix Janitor

2
GoogleのOSが離陸した場合、システム言語はC / C ++を超えるだけだと思います。もしGoogleのOSが離陸しなければ、主流を打つのにもっと苦労するだろうと思う。
ジョーダンパーマー

2
Neiter Goが非常に速く成長することを期待しています。私の理由:1.構文2.多すぎるリンボ3.ライブラリ網羅するものではない4.同時並行処理モデルはアーランに優れている、非常に奇妙である
ダニエルVoina

15

より最新の機能を備えたシステム言語が本当に必要です。CとC ++は、従来のコードと後方互換性に縛られすぎて大幅に改善できません。とはいえ、Goが現在の形でその役割を果たしているとは思いません。そのデザインはシンプルすぎます。並行性モデルはエキサイティングですが、高レベルの言語からシステムの世界に他の機能をほとんどもたらしません。(最後に確認したのは、かなり前のことですが、例外もありませんでした。)さらに、少なくともコンピューター言語ベンチマークゲームが適切な尺度である限り(明らかに非常に大まかな指標です)、そうではありません。 「実際の」システム言語が必要とする速度とほぼ同じです。

私は、より現代的なシステム言語の空白を埋める最高のチャンスを持つ言語はDだと思います。Dは技術的にはGoよりも強力ですが、政治的には弱いです。大企業に支えられているわけではありません。本当に必要なのはいくつかのライブラリ(言語仕様が安定しているため、これは急速に対処されています)とキラーアプリです。


7
「それも、例外を持っていなかった」再それは主要な決定がなされたある- golang.org/doc/go_faq.html
user151019

1
@マーク:興味深い。パニックと回復は、例外のように見えます。Dには、defer()とほぼ同等のスコープステートメントがありますが、通常の例外があります。
-dsimcha

3
例外はありませんが、必要ありません。代わりに、複数の戻り値が許可され、foo, err := SomeFunc()一般的になります。重大な問題、またはerrがあまりうまく機能しないスポットについては、panic()and を使用できますrecover()。ただし、これらが意図的に使用されることはほとんどありません。スタックが非常に短い場合、例外をスタックに渡す方法はありません。また、短いスタックは、多くの並行スレッドがある一般的なものです。
crazy2be

3
「Dは技術的にはGoよりも強力です」、「そのデザインはミニマリストすぎます」。これが事実であるようにあなたがどのように言うか興味深い。それはあなたの意見です、それに直面します。
モシェレバ

10

Goを学んでいます。はい、GoogleとHeroku以外に生産的に使用されています。

Goは間違いなくシステムプログラミングに適した言語です。Cのような単純なコード、C ++のような強力な構造、Javaのような安全機能。非常に若い言語であるため、他の言語から多くの素晴らしいものが継承されています。

  • 範囲にわたる反復
  • チャネル(ミューテックスなどを忘れる)
  • 型階層なし、インターフェイス継承のみ
  • 実際、Goはクラスさえも知りませんが、より柔軟な「タイプ」:定義されたメソッドが一致すると、インターフェイスが自動的に継承されます
  • 以下の定型:のi := 1代わりにint i = 1、のfunc f(x, y, z int)代わりにvoid f(int x, int y, int z)、のtype Foo struct { a, b int }; bar := Foo{1, 2}代わりにclass Foo { int a; int b; Foo(int a, int b) { this.a = a; this.b = b; } } /* ... */ Foo bar = new Foo(1, 2);
  • 例外(「パニック」)は本当に例外的な場合にのみ:他の場合には、エラーを起こしやすい関数は、簡単に無視できる追加のエラーパラメータを返すことができます

これらすべての優れた点と、静的に型付けされた言語でのみ知られている安全性とパフォーマンスを考慮すると、動的言語コミュニティの多くの人々がGoを好きになり始めました。ほとんどの場合、GoコードはRubyコードよりも長くありませんが、どの場合でも安全で構造化されています。

しかし、結局のところ、Goの致命的な議論は並行性であると思います。これは、関数型言語でのみ知られている強力な同時実行性サポートを備えたCに似た言語です。


2
私は最近、AppEngineプログラミングのためにGoを学習しているときにGoに夢中になりました。よくやった。
アダムクロスランド

5

これは主に、Goで作成/使用/使用するライブラリ/サービス/ソフトウェアに依存していると思います。人々は3つの状況で何かを使用します(順序が重要です):実質的に他のオプションがないとき(Objective-C)、周囲がそれを使用するとき(FORTRAN)、それが生活を楽にするとき(Ruby)。


5

これには少し遅れる可能性がありますが、Goは現在人気のある言語になりつつあり、Googleがそれを推し進めて主流になりそうです。Google内のシステムや製品で使用される言語としてプッシュされ、Google App Engineで使用する言語としてプッシュされています。Goの構築と拡張のバックエンドには、非常に鋭い人々がいます。Goのサードパーティライブラリに取り組んでいる非常に賢明で想像力豊かな人々がいます。

Goは、他の言語ではまだ満たされていなかった空白を埋めます。私にとっては、Perlと多くの回避策とトリックでその隙間を埋めようとしていました。私はそれがすべての状況とすべての人々にとって完璧な言語だとは思いませんが、確かに非常に多くの状況の候補です。たとえば、Webアプリには最適ですが、デスクトップアプリやサーバーベースのアプリにも最適です。HTTPとWebSocket(Apacheまたはnginxを完全にスキップできることを意味します)で非常に素晴らしい仕事をします。また、Windows、Linux、OS Xの両方のデーモンと通常のol 'デスクトップアプリでも非常にうまく動作します。今のところ、私にとって失敗する唯一の状況はAndroidアプリです。Windowsデスクトップアプリ、Linuxデスクトップアプリ、およびLinuxベースのWebアプリに使用します。

本当に主流になるまでには数年かかると思いますが、そこに到達するでしょう。PerlがCPANで持っている数や選択のようなものと同じように、より多くのサードパーティライブラリを構築する必要があると思います。そこに着くでしょう。


3

とにかく「メインストリーム」とはどういう意味ですか?それを知らずに、この質問に答えるのはとても難しいです。少し見てみましょう。

多くの可能な定義があります。以下にいくつかを示します。

管理ビュー:

  • 顧客にあなたにそれを使うように要求してもらう
  • 管理者に使用を要求する
  • それを使用するために経営者から批判されることはありません

開発者の見解:

  • 一般的に利用可能な言語ツール(Linuxディストリビューションなど)
  • 言語ツールは10年間一般的に利用可能になります
  • 持続し、少なくとも10年間使用されるソフトウェア成果物を作成します

経歴ビュー:

  • 言語固有のスキルは他の仕事に移行できます
    • リクルーターはそれを求めます

上記のすべてを考えると、唯一の正直な答えはおそらく「すぐに伝える」ことだと思いますが、本当の寿命の最良の指標は小さな数ですその言語を使用する企業。大規模な組織はすべて非常にうまく機能しています。投資規模が大きいため、言語やツールのシステムの成長に不可欠な場合もあります。対照的に、中小企業が言語を使用して製品やサービスを提供することで自身を築き上げた場合、彼らは将来もそうすることができるように貢献したいと考える可能性が非常に高いです。また、この地域の強力な雇用市場の基盤を形成し、ツールの需要も高まっています。おもしろいことに、これらは私のリストの主流性のいくつかの指標です(おそらく、経営者の気まぐれに応じて、もっと多くなります)。

では、Google以外で何人がGoを仕事に使っているのでしょうか?何も思いつきません。(私はそうではありません。私のニーズは現在、Java、C、およびTclの混合物で十分に満たされています。YMMV。)


「主流」の意味のすばらしい要約。私は行くがためを除き、これらのすべてを持っていると思う「の顧客は、あなたがそれを使用する要求。」
ワイルドカード

2

すでにいくつかの言語よりも人気があります。

Goは20年以上で最も重要な言語である可能性があります。ソーシャルメディアサイト、クラウドコンピューティング、検索、モバイルが提供する大規模なデータセットに関して、いくつかの大きなメリットがあります。

Facebook、Twitter、Linkedin、YouTube、Ad-Servingネットワークなどのサイトは、少なくとも一部のコンテキストでは、Ruby On RailsよりもGoogle Goの用途がはるかに多くなっています。


1

私はそれを聞いたときにGoを調べました。完全な初心者として、私はまだ初心者の言語(私の場合はJava、C#、Python、およびScheme)を学んでいますが、多くの異なる言語に夢中にならなければ真剣に考えていたでしょう

私は自分のレベルで考えていますが、時流に乗る前に基本を下ろしても害はありません。しかし、私が正しいことを覚えていれば、Goを探していたとき、何らかの理由でErlangに非常に惹かれました。


1

この質問のためにGoを見ただけなので、主流の言語として普及するかどうかについては本当にコメントできませんが、1つだけが本当に興奮しています。

http://golang.org/doc/go_spec.html#Channel_types

私は最初にOccam-piでチャンネルの概念に出くわしましたが、これは史上最高のプログラミング概念の1つであると言わざるを得ません。C型言語で同じことをするのが面倒な場合があるので、並行処理はとても簡単に思えます。

私が見てきたことから(私が見た10分間で)、Goは多くの異なるプログラミングの概念を組み合わせようとしているように見えますが、それはすべての取引のジャックであり、誰のマスターでもないというリスクがあります。


0

メインストリームになるかどうかは、GoogleがAppengineやGWTのサポート言語として採用するかどうかにかかっていると思います。


2
システム言語はGoogle App Engineにどのように役立ちますか?
ixtmixilix

現時点で機械語にコンパイルされたシステム言語であるからといって、Googleが将来他のプラットフォームをターゲットにするのを止めることはないでしょう。GWTの場合にJavaScriptをjavaでコンパイルし、Android用のdalvik vmをタギングすることで、彼らが何をしたかを見てください。同様に、FacebookはPHPをコンパイルします。将来のある時点でappengineにインストールできるGoの出力を想定できます。
クリスバケット

+1-重要なことは、何かに役立つことです。iPhoneがObjective-Cに対して行ったことを見てください。

3
まあそれはちょうど起こった。今...それが離陸する場合を見てみましょう
ELAD

3
記録のために、私は現在AppEngine Goランタイム上で大規模で意欲的なWebアプリケーションを開発しています。Goは非常に生産的で高速です。コードは非常に読みやすいです。それは素晴らしい言語です。
アダムクロスランド

0

Goが人気になることを願っています。

構文が強力です。(Python、C、Javaの利点を学んでください)。マルチコアCPUに適しています。(チャネル機能はスレッドプログラミングよりもはるかに優れています)。この設計は、多くのプログラマーの落とし穴を防ぎます。(間違ったポインター、ツールgofmtによる同じコーディングスタイル、変数の初期化されていないバグを防ぎます。最初は、Python + Cであるが、Cの1/2の速度に近い速度で試してみます。

しかし、深く学んだ後、フォールトトレランスとスケーラブルなアーキテクチャを開発することが適切であることがわかりました

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.