2001年4月、Paul Grahamは
「平均を破る」という記事を執筆しました
-orig 。
この投稿は、記事に続いてGoがすべてのスタートアップが持つべき非常に秘密の武器である理由についてです。
秘密兵器
ソフトウェアは非常に競争の激しいビジネスであり、独占の出現にとって良い土壌です。 ソフトウェアをより速く、より良く書く企業、セトリス・パリバスは、競合他社をビジネスの外に置いています。 スタートアップでは、間違ったテクノロジーを使用すると、競合他社があなたを地球の表面から拭き取ります。
引用された段落は、スタートアップにとって開発速度がどれほど重要であるかを説明しています。 そして、これは論理的です。なぜなら、スタートアップは常に時間とお金に限りがあるからです。
そして、高い生産性を達成することがまさにGoの魅力です。
Goは機能が豊富な言語ではありません。 ジェネリックはありませんが(コード生成を使用してカスタムデータ構造を作成できますが)、継承へのアプローチはほとんどの人が使用しているものとは大きく異なり、末尾再帰の部分的な最適化などしかありません。 しかし、これがまさにGoの優れた点です!
言語のコンパクトな仕様と優れたツールにより、非常に高速で問題を解決でき、通常は次のようなコードが生成されます。
1.書きやすい
- Go標準ライブラリは非常に豊富で読みやすく、非常に優れた品質と速度です。 サードパーティのライブラリを使用せずにどれだけできるか驚くでしょう。 たとえば、 データベース/ sqlがすぐに接続プーリングを提供することを知っていましたか?
- go getは完璧ではありませんが、設定なしでサードパーティのライブラリを接続できます。これは開発段階で非常に重要です。
- 型システムは、私にとって必要なものです。 彼女は、最小限の儀式的な問題をすべて取り除きます。
2.わかりやすい
go fmtのおかげで、Goコードのほとんどは同じように見えます。 これは非常に重要な側面です。開発部門が成長するにつれて、新参者はプロジェクトを非常に迅速に開始できます。
しかし、初心者がGoを知らない場合はどうでしょうか? 問題ありません。 最低限の言語仕様のため、優れたプログラマーは、すべての機能を習得しながら、1〜3日以内にGoを学習できます。
3.導入が簡単
現在、ほとんどのスタートアップは、迅速なプロトタイプ開発のためにRailsまたはDjangoを使用しています。 合理的に見えますが、本番環境でコードをデプロイする必要があるとすぐに、何が始まりますか? 人々が通常行うことは次のとおりです。
- EC2で5から10の培地インスタンスを上げる
- キャップまたはファブに展開するための複雑なパイプラインを作成します。
- UnicornまたはGunicornはインターネットからの直接トラフィックを受け入れる準備ができていないため、アプリケーションの前にNginx / HAProxyをインストールします。
- Webソケットはどうですか? ああ、Node上のスタンドアロンアプリケーションであり、デプロイするのと同じ複雑なパイプラインがあります。
- バックグラウンドタスクはどうですか? 同じ問題、デプロイパイプラインでアプリケーションを分離します。
スタートアップがこれをすべて取り除き、速度をさらに上げることができるとしたらどうでしょう。
- アプリケーションメモリの高いパフォーマンスと効率的な使用により、お金を節約できます。つまり、最初の操作性が向上します。
- コードは単一のバイナリにコンパイルされるため、開発環境と本番環境の違いについて考える必要はほとんどありません。
- 1つのバイナリにより、展開手順がはるかに簡単になります。 最も単純なケースでは、rsync、symlink、およびrunの3つのコマンドが必要です。 バイナリをバージョン管理している場合、以前のバージョンにロールバックすると、シンボリックリンクが簡単に置き換えられます。
- また、単一のバイナリを使用すると、Vagrant環境のセットアップがはるかに簡単になり、これにより、クロスOSテストをより多く行うことができます。
- Nginx / HAProxyをインストールする必要はなくなりました。 ビルトインnet / httpサーバーは、バタンと重い負荷で動作します。
- Webソケット? Goの設計のおかげで、1つのアプリケーションでhttpハンドラーとwebsocketハンドラーを安全に使用できます。 github.com/gorilla/websocketを接続するだけです。
- バックグラウンドタスク? ほとんどのタスクでは、ゴルーチンを実行し、チャネルを使用してプログラム内のキューを操作します。
4.生産準備完了
ほとんどの場合、GoのパフォーマンスはJavaに似ており、メモリの消費量が大幅に少なくなります。
Blubパラドックス(元の記事へのリンク)
LispとBlubsに関するこのすべての部分は、Goコミュニティについて考えるように促しました。
Xの機能がないので、Goを軽hypoしている仮想Blubプログラマーがいないことについて文句を言う必要はありません。
Goコミュニティはそれらについて心配する必要がありますか? そうは思いません
Goはすぐにスタートアップコミュニティを獲得しています。 Goを使用している企業の完全ではない、絶えず成長しているリストは、Bit.ly、Baidu、CloudFlare、CoreOS、DigitalOcean、Disqus、Docker、Dropbox、GitHub、Heroku、New York Times、Parse、Square、Twitch、Tumblr、Twitter、など
十分にすぐに、敵の多くは単に市場の動向に従ってGoに切り替わります。
元の考えに戻る
上記のすべての議論、スタートアップの創設者を考えると、皆さんはGoを非常に真剣に考えるべきです。
プラスとゼロの短所が多すぎます。 なぜ待つの? 1-800-SWITCH-GOに電話して、今すぐすべての特典を入手してください。