Ubuntu開発者になるには、どのプログラミング言語を学ぶべきですか?[閉まっている]


22

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

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

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


3
それはかなり主観的です...例:perlはpythonの代わりになることができますが、インデントの欠如または強制以外の理由でpython / perlを
軽sp

あなたは私たちは、その後の答えが、bashのより良いことができるかもしれませ書きたいものについて、より具体的にすることができれば...、あなたは異なった意見の多くを取得する可能性があり、あなたがより良いでこの尋ねるかもしれUbuntuのフォーラム:開発とプログラミング
ウォーレンヒル

回答:


31

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

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


5
シンプルだが正確;)仕事を最も効率的に行うために必要な言語は何でも。
リンツウィンド

3
OPはJavaの経験があると言及しているため、UbuntuでもJavaが正常に動作することを言及する価値があります。再コンパイルする必要さえありません(別のOSから移植する場合)
BlueRaja-ダニーPflughoeft

@ BlueRaja-DannyPflughoeft低レベルのシステムコールを必要とするアプリケーションを開発している場合を除きます。多くの場合、これらの機能用のプラットフォーム固有のライブラリを提供するアプリケーションが表示されます。しかし、一般的にははい、あなたは正しいです。
デニスアイヒホルン

特定のCPUアーキテクチャ用にコンパイルできるものなら何でもできます。特定のプラットフォーム向けに開発する場合は、さらに重要な側面を考慮する必要があります。その人がどれくらいの時間を始めなければならないか、メモリ管理を扱いたいか、クロスプラットフォームプログラムをしたいか、どのような種類のプログラムを作りたいか、チームで働くことを知っているかなど、彼はユーザーやモバイル空調システムをマッサージしながらベーコンサンドイッチを提供するコンピューターを作りたいですか、空はいくつかの制限などです
...-userDepth

7

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

  • QMLを使用して、フォームファクターとデバイス間で実行される収束的なUbuntuアプリを作成する
  • JavaScriptを使用して、Ubuntuアプリの作成時にQMLを補完し、Ubuntu Webアプリを作成します

これらの2つが適している理由についてもう少し詳しく教えてください。
-don.joey

Doneを、私はそれが明確なガイダンスを提供願っています:)
デビッドPlanella

5

学んだほうがいい:

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

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

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

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


1

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

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

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

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

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

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


0

あなたは学ぶべきです...それらのすべて!または、すべての言語をメタ学習します。2つまたは3つの言語を知っている場合は、これらの言語に類似した新しい言語をすばやく学習できます。十分な言語を知っていれば、「事実上」すべての言語を知っています。さらに重要なことは、言語の一部であり、言語とは独立したプログラミングに関係するものを理解していることです。最終的に、特定の言語は無関係です。

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

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


それらのすべて?本当に?いくつかの古典的な「HelloWorld」プログラムをご覧ください。ほとんどのプログラマーは少数の言語しか知らない。必要なものを知ることだけが重要です。
ウォーレンヒル
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.