「Go言語のおかげで開発効率がよくなった」ことに関して少し書いてみた。
C/C++での開発ではネットワーク関連に開発のしにくさを感じていました。
例えばTCPのコードを書こうと思うとLinuxとWindowsではコードの完全な互換性がもてないと言いますか、なんというか、、、
少しダラダラ書いておく
WindowsでTCPのコードを書いてそれをモジュール単位に区切ったところでWindowsでしか使えません。
Linuxでは、また仕様が違ってきます。
BoostのAsioだと補助記憶装置の容量を食うし、開発を行うコンピュータが違えば毎度入れなければいけない。。。。面倒!!!
単純に言語一式を入れてすぐに開発スタートではない、つまりC/C++の標準にネットワークライブラリが含まれていないのが悪いんだ!と、思ったのです。
厳密に言いますと、その僕の考えは間違っています。
C/C++はそうでなくてはいけないのですよね。。。
低水準なんですから。。。。
C/C++はベースな部分から一から作れることに価値があるのですよ。
なぜGoを選んだか
1
C/C++ほど低水準な言語ではありませんが、C/C++のような分野での開発に適していると耳にしたことと、実際にDockerの開発に用いられていること。
2
現代的にネットワークなどのライブラリが標準にあること。
3
一応はポインタが用いれること。
4
クロスコンパイルが可能なので、マルチプラットフォームな開発に適していると感じたこと。
5
セットアップがめちゃくちゃ楽なこと。
実際に開発に使ってみた
クロスコンパイルのおかげで、OSに依存しない部分のコードに関しては開発しやすくなった。
(マルチプラットフォーム対応が楽)
基本マルチプラットフォームな開発が1つのOSで行えるので、プログラマーの数を節約。
変数宣言で、使っていない変数があればそれはエラーとなるし、インポートしても使っていないライブラリであればそれもエラー。このおかげで、コードがめちゃくちゃになりにくくなった。メンテナンス効率UP.
Go言語のインストールがとても楽なので、セットアップに時間を取られなくなった。