Go について読んでいましたが、Go は非常に優れた言語であり、数か月のうちに多くの開発者が使用する言語になる可能性があることがわかりましたが、簡単なことを決めたいと思います: Go を学ぶか、Python や Ruby の知識を向上させるか?
Python 開発年数: 1
Ruby 開発年数: 0.3
楽しみながら視野を広げたいだけなら、Pythonをすでに知っているので、Goを学びます。
開発者としての向上を目指している場合は、実際のプロジェクトに取り組むことを個人的にお勧めします(Pythonは、最も経験豊富な言語であるため、Pythonを使用してください)。
私は個人的に、実際に使用できるものをコーディングして新しい言語を学ぶのに費やした時間は、通常は正味の勝利だと信じています(もちろん、私が言ったように、楽しいレクリエーションやリラクゼーションのためにそれをしている場合を除きます) 。
実際には、両方を行う必要があります。それがあなたの望むものなら。私にとっては、2 つのうち、Python だけを見たいと思います。それほど新しい言語にはまったく興味がありません。
それはあなたの目標とあなたのニーズが何であるかに依存します。
仕事のためのスキルを身に付けたい場合は、PythonまたはRubyを使用してください。Googleで働いていない限り、Goが職場に現れるのをかなりの時間(もしあれば)見ないでしょう。(それでも疑わしいです。)
楽しみたいなら、やりたいことをしてください。一番いいのは、やりたいプロジェクトを選んで、そのプロジェクトに最適な言語を選ぶことだと思います。
考慮すべきその他の事項:
各言語は特定のタスクに適しています。Goはマシンコードにコンパイルされますが、PythonとRubyはインタープリターで実行されます。Goは、やや低レベルの作業に適しています。並行タスクにも適しています。より高いレベルのタスクは、PythonまたはRubyに適している可能性があります。
Goは、変化を経験する可能性が高い実験的な言語です。これらの変更は、下位互換性がない可能性があります。今それを学ぶなら、それが変わったので、6ヶ月か1年であなたはそれのいくつかを再学習しなければならないかもしれません。とは言うものの、最先端にある何かの一部になることは楽しいかもしれません。そして、それがたまたま「次の大きなもの」になった場合、あなたは地上にいます。
どのくらい Python を使っていますか?
私だったら、Go の実用的な知識 (基本的な構文、独自の言語機能にある程度の知識) を得るために最善を尽くし、いつものように Python を使い続けます。
最終的には、Go に適していると思われる小さなプロジェクトを思いつくかもしれません (または、今思いつくこともできます!)、その方法で言語に実際に飛び込むことができます。
1つだけに限定する理由はありません。:)
それはあなた次第です。可能であれば、おそらく両方を実行する必要があります。そうすることで、比喩的なプログラマーのベルトにさらに多くのツールが追加されるからです。
私が同じようなジレンマに陥っているときはいつでも、検討する価値があると思うことがたくさんあります。
新しい言語(なじみのないだけでなく、Goのように実際には新しい言語)が普及する可能性はありますか?(もしそうなら、それを学ぶことは、単なる良い考えではなく、実際に必要になるでしょう。)
なじみのない言語を学ぶために少し時間を費やす必要があります。今回の投資は、ある種のプラスのリターンをもたらすでしょうか?ここで明らかなのは開発時間です(つまり、最終的にはより多くのことを成し遂げ、それを学ぶために費やした時間を取り戻すことができます)が、言語が他の点で優れている場合(より速く実行されるか、より少ないメモリで実行される場合は、特定の人に最適です問題のあるドメイン)それらも考慮に入れる可能性があります。
なじみのない言語を学ぶことで、あなたがすでに知っていることでは解決できない関連性のある/重要な/緊急の問題を解決することができますか?
残念ながら、私たちの誰もがこれらの懸念のそれぞれをどのように評価するかをあなたに教えることができません。あなたはそれについて本当に慎重に考えて、あなた自身で答えに来る必要があるでしょう。
まず第一に、それは非常に個人的な質問であり、私の最初の推奨事項は、そう思う場合は、1か月ほどGoを試して、基本を学んでから決定することです.特定の言語は別の言語より...
また、Python と Ruby の両方を引き続き使用することをお勧めします。興味がある場合は、快適に使用するのに十分な経験があるため (私は思います)、次の月にはそれらを使用する経験が大幅に向上する可能性があります...
厳密な功利主義の観点からすると、Go を広範に学習することはリスクを冒す可能性がありますが、使用を開始し、誰もが構文を学び始めたばかりのときに、ある程度の経験を持つ数少ない人の 1 人である場合は価値があります...
Python はほとんどのオペレーティング システムで使用でき、一般的にスクリプト言語として受け入れられており、製品品質にまで成熟しています。
Go は、Linux と OS X のベータ版でのみ利用できる研究言語です。他では利用できません。他の方法では使いにくいいくつかの概念 (型付きチャネルと簡単なマルチタスクの組み合わせ) を学習して適用できるという点で、知的観点から興味深いものです。
Go に関しては、AT&T の「Plan 9」オペレーティング システムを最初に検討することになるかもしれません。「Aleph」と呼ばれるプログラミング言語が付属しており、これも C ベースで、チャネルとマルチタスク機能を備えています。Go は、主流のオペレーティング システムでの Aleph の再実装のように見えます。
これら 2 つの言語は、異なる目標を達成します。Go は C よりもわずか 20% 遅いだけです。驚異的な速度と簡単な並列処理が必要な場合は、Go を学習してください。ただし、読みやすさは設計目標ではありませんでした。また、例外はありません。リアルタイム製品に使用できますが...
IMO Python の知識を向上させる必要があります。Python は広く採用されている言語ですが、Go はまだ非常に初期の段階にあり、成功すると信じる理由はありません。
純粋に功利主義的な観点から言えば、Python を学ぶことでより多くの価値を得ることができます。
Python がどれだけ優れているか、何をしているか、どこで Go を使用するかを知らずに、これに答えるのは簡単ではありません。仕事を探しているなら、Python が最適だと思います。現時点で (Google 以外で) 主要なプロジェクトに Go を使用している人がいることに驚かされます。
また、Go は決してファイナライズされていないことにも注意してください。Go ロードマップについてはこちらを参照し、将来の潜在的な変更に注意してください。そのため、現在動いているターゲットを攻撃しようとしている可能性があります。