Ubuntu(およびほとんどのLinuxディストリビューション全般)の開発を開始したいのですが、どちらが適していますか?PythonまたはVala?[閉まっている]


14

私はコンピューターサイエンスを専攻し、C、C ++、C#、Javaなどの言語を学びました。Javaの経験はもっとありますが。Linux用に開発したいのですが、GNOME用に開発したいのですが、PythonとValaのいずれかを選択するのが混乱しています。

GNOME LiveページでValaに関するドキュメントをいくつか読んだ後、Pythonに比べて慣れ親しんでいるように見えます。Pythonは卒業時に学んだほとんどの言語とは構文的にかなり異なります。ヴァラの学習曲線は私には小さいようです。したがって、開発を開始するにはどの言語を選択する必要がありますか。これにより、さまざまなディストリビューションでより適切にサポートされます。推奨される言語に推奨されるIDEを歓迎します。

ありがとう。


1
このスレッドの他の誰も示唆していないこと:あなたが既に知っているものとは違うので、あなたはPythonを学ぶべきです。Cのような言語でのみクラスの割り当てをプログラミングするときに学んだこととは異なる考え方にさらされます。また、構文ではありません、それは違います。いくつかのJavaコードに置き換え{:からすべてを削除してみてください}。そうすれば、Pythonのように見えるようになります。
ライアンC.トンプソン

回答:


18

どのプログラミング言語が優れているかについての古い議論(私は入りません)を除き(Pythonはスライスされたパン以来の最大のものですが)、どちらもGnomeデスクトップ用のアプリの作成に同様に適していると思います。

Python GTKバインディングであるPygtkは、PiTiViDelugeemeseneExaileJokosher、およびWingIDEなどのアプリケーションの作成に使用されています。

Valaで書かれたアプリケーションのリストが見つかりません(Shotwellについては知っていますが)。しかし、Gnome destkopの言語として設計されているため、GTK / GObjectの統合に失望することはないでしょう。

両方を試して、あなたが一番好きなものを使ってください。どちらもGTKアプリケーションを作成するための優れたツールです。いくつかのValaコードいくつかのPythonコードもご覧ください。


6

ヴァラをお勧めします。あなたはオブジェクト指向言語を好むようであり、Valaは設計上オブジェクト指向です。PythonにもOOP機能がありますが、他の部分に統合されているわけではないため、Rubyが作成されました。

Pythonは簡単に学習して使用できると考えられていますが、独自のロジックと哲学を備えた非常に独創的な言語です。ValaはC#やJavaに非常に似ているため、学習しやすいと思います。

選択は、作成するアプリによっても異なります。Pythonはスクリプト作成と迅速なプロトタイピングには適していますが、現在のGTKバインディングは貧弱で非常に低速です。言語自体は、さまざまなベンチマークでCよりも約40倍遅いです。一方、ValaはCプリプロセッサであるため、その中で書かれたプログラムは非常に高速に実行され、GNOMEで使用するように設計されています。


1
PythonのGTKバインディングの「悪い」ところは何ですか?また、RubyはPythonに対する反応として作成されたとは思いません!それとは別に、私はあなたの答えに同意します。
dv3500ea

解釈された言語はもちろん遅いです、それはデザインのトレードオフです。高速のPythonコードを記述するには、あなたが作業Python実装を書き、Cなどのコンパイル言語で、それらの一部の最適化を必要とする部品、および書き込みpythonモジュールをプロファイル
エギル

@ dv3500ea:実際、「Perlよりも強力で、Pythonよりもオブジェクト指向のスクリプト言語が必要でした。」必ずしも同意するわけではありませんが、OOPがPythonと統合されていないことはわかりません。
アンドレパラメス

1
Python自体は遅いですが、ほとんどの場合、その速度はほとんど問題になりません。GUIの本当に遅い部分は、まだすべてのC.なり、実際のグラフィックスに起こっている
ブレンダン・ロング

5

PyGTKアプリの作成は本当に簡単なので、Pythonから始めることをお勧めします。この無料の本は、PythonでGnomeアプリを開発するための優れたリソースです。

Valaも素晴らしいですが、Pythonを初心者としてより快適に感じることができます。

後で、Unixアプリ開発の哲学に慣れると、必要に応じてPython、vala、またはJavascriptでアプリの一部を作成できます。

プラットフォームの雰囲気をつかむためにPyGTK(PyGI)から始めてから、ValaとJavascriptを学びます。JavascriptはGnomeデスクトップ上で巨大になるでしょう。巨大なことを意味します。

GTKのバインディングは、現在すべてのアプリで同じです。Gobject Introspectionを使用して、任意の言語から同じCバインディングを使用します。


JavaScriptがGnomeまたはデスクトップ環境(Gnome Shellに大きな印象を残すことで既に持っている)を引き継ぐことを楽しみにしています。
クシャル

1

Pythonには多くの優れたドキュメント/書籍があります。ヴァラについては知りません。


0

Boa ConstructorまたはAptana Studio 3(PyDev)とともにwxPython(wxWidgets)をお勧めします。Pythonは誰でも使用できる素晴らしい言語です(子供でも-「Snake Wrangling for Kids」を参照)。Python / wxPythonでコーディングすることにより、Linuxと見事に統合されたコードを書くことになりますが、ささいな労力でWindowsやOS / Xにも移植できます。


0

プログラミングに最も慣れているものなら何でも使用してください。コードを寄付する(フリーソフトウェアを作成する)場合は、楽しんでください。他の人が言ったように、両方の言語は開発に最適です。


フリーソフトウェアを書くことは、明らかにすべてを永久に変えるものです。:
クシャル

0

valaは、おそらくGTKバインディングとドキュメントが優れた言語の数3(またはgtkmmを数えると4)です。cで中間コードを生成します。中間コードを変更または調査して、その実行方法を確認できます。ほとんどのvalaは、GObjectとGLibの単なるラッパーです。ValaコードはCとほぼ同じ速度で実行され、c / c#/ javaから来た人なら誰でも簡単に実行できるはずです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.