web-dev-qa-db-ja.com

Ubuntu開発者になるには、どのプログラミング言語を学ばなければなりませんか?

プロジェクトで NetBeans を1回使用しましたが、本格的なUbuntu開発者になるには、どの言語を学ぶ必要がありますか?

NetBeans(Javaのみ)での私のプロジェクトは、計算機を設計することです(比較的簡単です)。さらに、画像ビューア、ブラウザなどの作成方法をどのように学習しますか?

また、特定のアプリケーションに最適な言語は何でしょうか?

22
fffdf

答えは簡単で、あまり役に立ちません。必要な言語。 Ubuntuは大量のソフトウェアであり、Cで書かれたものもあれば、C++で書かれたもの、Python、Perl、bashなどで書かれたものもあります。 bashを使用してスクリプトを確実に学習し、PerlやPythonなどの言語(おそらく後者)を選択する必要があります。さらに、古き良き時代のCを学ぶことは誰をも傷つけることはありません。

それ以外の場合-最初に、タスク、ニッチ、作業が必要なもの、行方不明のもの、または単に魅力的なものを見つけて、それに取り組みたいと思います。次に、その目的に適した言語を見つけます。

31
January

複数のデバイスとフォームファクター(デスクトップ、電話、タブレット、テレビなど)で実行できるUbuntu用のアプリケーションを作成する場合は、 QML および-を学ぶことをお勧めします JavaScript 。基本的に:

  • QMLを使用して、フォームファクターとデバイス間で実行される収束Ubuntuアプリを記述します
  • JavaScriptを使用して、Ubuntuアプリを作成するときにQMLを補完し、Ubuntu webappsを作成します
7
David Planella

学んだほうがいい:

  • JavaScript:ほとんどのUIフレームワーク/環境。 JavaScriptに基づいている/する予定です。とにかくいつか必要になります。

それから、残りすべてのためにあなたは何か他のものを必要とします:

  • C++/C
    • 長所:驚くほど高速、低レベル機能へのアクセス
    • 短所:安定したひどいコミュニティを書く方法を学ぶのに多くの時間
  • ルビー:
    • 長所:習得しやすく、書くのが本当に楽しい、素晴らしいコミュニティ
    • 短所:一部のタスクで遅くなる可能性があります(本当に)
  • Python:
    • 長所:多くのパッケージがpython、素晴らしいコミュニティ、高速などにあります。
    • 短所:python 3(ちょうどkindin ')

ただし、Javaなど他の言語はまだ多くありますが、C/C++を除き、上記の方が簡単に開始できますが、他の多くの言語で使用できるため、学習する価値があります(例:拡張python、Rubyなど)

5
avetis.kazarian

プログラミング作業は、実際のコードとその下のメンタルモデルの両方で構成されます。

プログラミング言語を自分で教えることは、コンピューターの動作の基本的な概念があれば簡単ですが、プロジェクトに役立つ貢献をするためには、その背後にある設計も理解する必要があります。

したがって、私の提案は、個人的な関心を持ち、頻繁に使用するプロジェクトに参加し、品質保証作業から始めることです。

  • 多少あいまいなバグレポートがある場合は、問題を再現し、説明を改善してください。自動テストのボーナスポイント。
  • しばらく注意が向けられていない古いバグがある場合は、それがまだ存在するかどうかを確認し、バグレポートを更新します
  • テストスイートの失敗がある場合、このテストが失敗する原因となるために何が起こっているかを調べてください

これにより、管理しやすい学習曲線上でプロジェクトの難しい概念的な部分について学習することができ、関心を持ち(プロジェクトが関心があるため)、プロジェクト周辺のコミュニティにアクセスできます。実際のプログラミング言語(プロジェクトで使用されるもの)は、その場で拾うことができます。

やや段階的なエントリの例については、 Beignetプロジェクトへの私の貢献 を参照してください。プログラミング言語(その場合はC/C++)の知識は、ここでの制限要因ではありません。

1
Simon Richter

あなたは学ぶべきです...それらのすべて!むしろmeta-すべての言語を学ぶ。 2つまたは3つの言語を知っている場合は、これらの言語に類似した新しい言語をすばやく学習できます。十分な言語を知っている場合、「事実上」すべての言語を知っています。さらに重要なことは、languageの一部であり、programmingに関連するものを理解していることです。言語に依存しません。最終的に、特定の言語は無関係です。

したがって、Java、C、Scheme、OCaml、Assembly(少なくとも2つのアーキテクチャ)、Forth、およびPrologの一部を、必ずしもこの順序で学習する必要はありません。新しい概念を学ぶ必要があり、また、第1言語で学習したが間違っていることがわかった概念を忘れる必要があるため、第2言語が最も困難になります。その後は簡単で、簡単になります。

次に、特定の開発タスクを扱うときは、コンパイラーとライブラリーの可用性とサポート、同僚の知識、管理者からのポリシーの制約などに基づいて、最も適合した言語を使用します。心の柔軟性が鍵です。多くの言語を知っていると、この柔軟性が得られます。

0
Thomas Pornin