想要开始为Ubuntu(以及大多数Linux发行版)进行开发,哪个合适?Python还是Vala?[关闭]


14

我是计算机科学专业的毕业生,并且学习过C,C ++,C#和Java等语言。虽然我对Java有更多的经验。我想为Linux开发,而我想为GNOME开发,我在从Python和Vala中选择一个感到困惑。

在浏览了GNOME Live页面上有关Vala的一些文档之后,与Python相比,对我来说似乎更熟悉,与从我在毕业期间学到的大多数语言相比,这在语法上完全不同。虽然对Vala而言,学习曲线对我来说似乎较小。因此,我应该选择哪种语言开始开发,哪种语言在各种发行版中都有更好的支持。推荐使用IDE来推荐语言。

谢谢。


1
这个线程中没有其他建议:您应该学习Python,因为它与您已经知道的有所不同。与仅使用类C语言编写类分配时所学的知识相比,它将带给您不同的思维方式。此外,语法是不是有所不同。尝试替换{:,然后删除}一些Java代码中的所有代码,它看起来可能看起来更像Python。
瑞安·汤普森

Answers:


18

除了关于哪种编程语言更好的老争论(尽管Python是自切成薄片以来最伟大的东西)之外,我不会说这两种说法,我想说两者都非常适合为Gnome桌面编写Apps。

Pygtk(Python GTK绑定)已用于创建诸如PiTiViDelugeemeseneExaileJokosherWingIDE之类的应用程序

我找不到用Vala编写的应用程序列表(尽管我了解Shotwell)。但是,由于它非常适合作为Gnome destkop的语言,因此可以肯定的是,它不会因GTK / GObject集成而失望。

同时尝试它们,并使用您最喜欢的一种。它们都是创建GTK应用程序的出色工具。您可能还想看看Some Vala代码Some Python代码


6

我建议瓦拉。您似乎更喜欢面向对象的语言,而Vala在设计上是面向对象的。Python也具有OOP功能,但是它们没有集成到其他部分中-这就是创建Ruby的原因。

Python被认为更易于学习和使用,但是它是一种非常原始的语言,具有自己的逻辑和哲学。我认为Vala对您来说会更容易学习,因为它与C#和Java非常相似。

选择还取决于您要编写的应用程序。Python非常适合脚本编写和快速原型制作,但是它的GTK绑定目前很差,而且非常慢。在各种基准测试中,语言本身的速度比C慢40倍左右。另一方面,Vala是C预处理程序,因此用它编写的程序运行速度非常快,并且可以在GNOME中使用。


1
Python的GTK绑定的“可怜”是什么?另外,我不认为Ruby是对Python的反应!除此之外,我同意你的回答。
dv3500ea 2011年

解释语言当然较慢,这是设计的折衷。要编写快速的python代码,您可以编写一个有效的python实现,分析需要优化的部分,并使用诸如C的编译语言为这些部分编写python模块
。– Egil

@ dv3500ea:实际上,“ 我想要一种比Perl更强大,比Python更面向对象的脚本语言。 ”并非我一定同意,我不知道OOP如何不与Python集成。
安德烈Paramés

1
尽管Python本身很慢,但在大多数情况下它的速度几乎没有关系。一个GUI的很慢,部分是要实际的图形,这仍然是所有C.
布伦丹龙

5

我建议您从Python开始,因为创建PyGTK应用程序非常容易。这本免费书籍是使用Python开发Gnome应用程序的绝佳资源。

Vala也很棒,但是作为初学者,您会发现自己对Python更加满意。

稍后,一旦您熟悉Unix应用程序开发的理念,便可以根据需要使用python或vala或Javascript创建应用程序的各个部分。

我要说的是,从PyGTK(PyGI)开始,以了解该平台,然后学习Vala和Javascript。Javascript在Gnome桌面上将变得非常庞大。我的意思是巨大的。

GTK的绑定,现在所有应用程序都相同。您将使用Gobject Introspection在任何语言中使用相同的C绑定。


我期待JavaScript接管Gnome或任何桌面环境(通过在Gnome Shell上留下深刻的印象,它已经具有了这一功能)。
Kushal 2011年

1

Python有很多不错的文档/书籍。对于瓦拉,我不知道。


0

我建议将wxPython(wxWidgets)与Boa Constructor或Aptana Studio 3(PyDev)一起使用。Python是一种很棒的语言,任何人都可以使用(甚至是孩子,请参阅“为孩子争吵”)。通过使用Python / wxPython进行编码,您将编写与Linux完美集成的代码,并且可以轻而易举地移植到Windows和OS / X。



0

vala可能是具有良好GTK绑定和文档的语言的第3种语言(如果您计算gtkmm,则为4种)。它在c语言中生成中间代码,您可以更改或研究该代码,以了解其工作方式,大部分vala只是GObject和GLib的包装。Vala代码的运行速度几乎与C一样快,并且来自c / c#/ java的任何人都应该很容易

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.