私はコンピューターサイエンスを専攻し、C、C++、C#、Javaなどの言語を学びました。 Javaの経験はもっとありますが。 Linux用に開発したいのですが、GNOME用に開発したいのですが、PythonとValaのいずれかを選択することで混乱しています。
GNOME LiveページでValaのドキュメントをいくつか読んだ後、Pythonに比べて慣れ親しんでいるように見えます。Pythonは卒業時に学んだほとんどの言語とは構文的にかなり異なります。ヴァラの学習曲線は私には小さいようです。したがって、開発を開始するにはどの言語を選択する必要がありますか。さまざまなディストリビューションでより適切にサポートされます。推奨される言語に推奨されるIDEを高く評価します。
ありがとう。
どのプログラミング言語が優れているかについての古い議論を除いて(Pythonはスライスされたパン以来の最大のものですが)、どちらもアプリの作成に同様に適していると思いますGnomeデスクトップ用。
Pygtk、Python GTKバインディングは、 PiTiVi 、 Delugeなどのアプリケーションの作成に使用されています 、 エメセン 、 Exaile 、 Jokosher 、および WingIDE 。
Valaで記述されたアプリケーションのリストが見つかりません( Shotwell について知っていますが)。しかし、Gnome destkopの言語として設計されているため、GTK/GObjectの統合に失望することはないでしょう。
両方を試して、あなたが一番好きなものを使ってください。どちらもGTKアプリケーションを作成するための優れたツールです。また、 一部のValaコード および 一部のPythonコード 。
ヴァラをお勧めします。あなたはオブジェクト指向言語を好むようであり、Valaは設計上オブジェクト指向です。 PythonにはOOP機能もありますが、他の部分に統合されていないため、Rubyが作成されました。
Pythonは簡単に学習して使用できると考えられていますが、独自のロジックと哲学を持つ非常に独創的な言語です。 ValaはC#やJavaに非常に似ているため、学習しやすいと思います。
選択は、作成するアプリによっても異なります。 Pythonはスクリプティングとクイックプロトタイピングには適していますが、GTKバインディングは現在不十分で非常に遅いです。言語自体は、さまざまなベンチマークでCよりも約40倍遅いです。一方、ValaはCプリプロセッサであるため、それに記述されたプログラムは非常に高速に実行され、GNOMEで使用するように設計されています。
PyGTKアプリの作成は本当に簡単なので、Pythonから始めることをお勧めします。 この無料の本 は、PythonでGnomeアプリを開発するための優れたリソースです。
Valaも素晴らしいですが、初心者としてPythonに慣れているでしょう。
その後、Unixアプリ開発の哲学に慣れたら、pythonまたはvalaまたはJavascriptでアプリの一部を作成できます。必要。
プラットフォームの雰囲気をつかむためにPyGTK(PyGI)から始めてから、ValaとJavascriptを学びます。 JavascriptはGnomeデスクトップ上で巨大になるでしょう。巨大なことを意味します。
GTKのバインディングは、現在すべてのアプリで同じです。 Gobject Introspection を使用して、任意の言語から同じCバインディングを使用します。
Pythonには多くの優れたドキュメント/書籍があります。ヴァラについては知りません。
あなたが最も快適にプログラミングできるものなら何でも使用してください。コードを寄付する(つまり、フリーソフトウェアを作成する)場合は、それを楽しんでもかまいません。他の人が言ったように、両方の言語は開発に最適です。
valaはおそらく、GTKバインディングとドキュメントが優れた言語の数3(またはgtkmmを数える場合は4)です。 cで中間コードを生成します。これを変更または調査して、実行方法を確認できます。ほとんどのvalaは、GObjectとGLibの単なるラッパーです。 ValaコードはCとほぼ同じ速度で実行され、c/c#/ Javaから来た人なら誰でも簡単に実行できるはずです。
wxPython (wxWidgets)と Boa Constructor またはAptana Studio 3(PyDev)のどちらかをお勧めします。 Pythonは誰にとっても素晴らしい言語です(子供でも-「Snake Wrangling for Kids」を参照)。 Python/wxPythonでコーディングすることにより、Linuxと見事に統合されたコードを書くことになりますが、ささいな努力でWindowsやOS/Xにも移植できます。