PHP開発者の観点から言語を使用する

Goは、2009年11月にLinuxおよびMac OS Xバージョンで発表されたRobert Griesemer、 Rob Pike 、およびKen Thompsonによって考案された言語です。人々(たとえば、UTF-8エンコーディングは、プラン9のプライマリエンコーディングとして使用するために、トンプソンとパイクによって発明されました)。



個人的に、 ロブパイクのパフォーマンスのビデオをここで公開した後、どのような言語であるかを確認することにしました 。 私はGoを長い間勉強していませんでしたが、勉強に2週間を費やしましたが、たとえばJsHttpRequestライブラリのバックエンドJsHttpRequest ; Goの私のバックエンド )など、いくつかのプロジェクトをやり遂げました。 JsHttpRequestは、その便利さ(JSとPHPの両方)のため、今でも使用しています。 この記事では、コード例をほとんど使用せずに、PHPとJavaScriptでプログラミングした後の自分の気持ちについてのみ説明します。



言語についての簡単な説明



プロジェクトの公式ウェブサイトはhttp://golang.orgです。 短いチュートリアル、言語と組み込みパッケージ(パッケージ)の説明、Wikiへのリンク、ベンチマーク、 サードパーティパッケージのリストがあります



Goは、CとJavascriptの両方のように感じるガベージコレクターを備えた静的に型付けされた言語です(多くの構成体は、Python、Pascal、Javaなどの他の言語にも似ています)。 Goはコンパイルされた言語であり、(Javaや.NETとは異なり)ネイティブ実行可能コードにコンパイルされ、そのパフォーマンスはCに非常に近いです。



言語には、少し奇妙な構文があります(たとえば、文字列strの定義は、他のほとんどすべての言語のように、 string str



ではなくstr string



ように見えstr string



)、UTF-8の組み込みサポート、不変文字列(不変文字列)、およびインターフェイスを使用した動的型付けのサポート(他のOOP言語のインターフェースと混同されます)



最小限のコード例を示します。Goでコードを確認する場合は、 チュートリアルをよく理解することをお勧めします。



<Java、.NET、Ruby、Python、...>ではなく、PHP開発者の観点から言語が考慮されるのはなぜですか?



私はPHPでプログラミングを始めたので、意図せずにPHPと比較しました。私は約7年間プログラミングを中断していて、PHPと根本的に異なる言語を見たいと思っていましたが、同時にウェブに適しています。 もちろん、Googleの言語は2番目の基準を満たす必要があるため、注意を払うことにしました:)。



PHPとGoを比較することは完全に正しいわけではありません。これらはさまざまな目的の言語であるため、かなり補完的ですが、PHPが強化されている分野でGoとPHPを比較してウェブサイトを作成することにしました



PHPを超える利点



-優れたパフォーマンス(PHPの10〜100倍高速)を実現する静的型付け付きコンパイル済み言語

-システムユーティリティとデーモンの作成に最適

-厳密なタイピングによる膨大な数のランタイムエラーの排除

-UnicodeおよびUTF-8の例外的なサポート:ソースコードと行はUTF-8で必須であり、UTF-8を操作するための豊富な組み込みメカニズム

-優れたマルチスレッドおよび並列プログラミング機能(同時および並列)

-API * nix-systems、システムおよびファイルを操作するためのよく組織された内部データ構造との緊密な統合

-WebSocket APIのような最新のWeb標準の良好なサポート



PHPと比較した場合の欠点



-Apacheとの統合の欠如(サードパーティ開発者のスタンドアロンWebサーバーまたはFastCGIとしてのみ動作します)

-構文と機能が不完全な言語-1年未満の一部のGoプロジェクトはコンパイルできなくなりました

-コードの動的な接続の欠如(* .soファイルを即座にダウンロードおよびアップロードできない)

-はるかにユーザーフレンドリーな動的機能

-少数のサードパーティライブラリ-MySQL、PostgreSQL、および接続しないNoSQLベースを除く

-Microsoft Windows®™の公式サポートの欠如

-言語のセマンティクスをよりよく理解するために、Cプログラミングの経験があることをお勧めします。



全体的な感覚



Goは、プログラミングに干渉せず、PHPやJavaScriptの2〜3倍のコードを記述することを強制しない、初めて見た静的型付け言語です。 また、Goはネイティブコードにコンパイルされ、システムユーティリティとデーモンを記述するための言語として位置付けられます。 この言語とコンパイラーは、Javaや.NET(実際、私がJavaで書いていない主な理由)のような、怪しくて不器用なものの感覚を引き起こしません。



一方、言語はまだ活況を呈しているように感じます(たとえば、ある日、目の前にhtmlというパッケージが描かれ、Go環境をダウンロードしてインストールした直後に表示されたため、再構築する必要がありました:))。 また、PHPの代わりとして、それは非常にうまく適合しません。各ホストに対して、Webサーバー全体を記述し、誤って落ちないようにする必要があるためです:)、また、サーバーの再起動時にこれらのデーモンの起動を別に気にする必要があるため、 。 共有ホスティングでは、Goでできる最大のことはGoでCGIハンドラーを接続することです。これは、PHPよりも高速に動作しますが、まったく高速に動作しません。



一般的に、言語自体と組み込みライブラリは十分に安定しているため、Goを運用環境で使用できます(たとえば、 golang.org自体がGoでサーバーを実行します。つまり、-http = "キーで実行されるgodocのみです。 。:80 ")。 しかし、私はネットワークとシステムのプログラミングの経験があまり好きではないので、ネットワークのプログラミングとデーモンの作成の経験があれば回避できたはずのライブラリの使用でエラーに遭遇することがよくあります。 しかし、一般的に、JavaまたはASP.NETを学習したい場合は、より良いGoを試してください-この言語で無関心になることはまずありません。



All Articles