2012-05-01 109 views
9

我正在使用一些遺留的C代碼,我需要重構和一般清理,以刪除麪條類型編程,堅持幹原則等。Vala和Genie的生產準備好了嗎?

我想用C++重寫,但我沒有想要走得那麼遠,並且希望儘可能接近C(同時使用一些OOP概念[而不必手動編碼])。

我最近遇到GObject,Vala和Genie。後兩者相當近。有沒有人知道在生產代碼中使用Vala或Genie?

最後但並非最不重要 - 是否有兩種語言之間的優點和缺點比較列表。我對Genie有點偏向,因爲我喜歡Python並且不太熱衷於C#,但是Genie的(明顯的)對標籤的堅持在實踐中可能會讓人感到煩惱 - 我會對一系列的優點和缺點感興趣兩種語言(假設其中一種或兩種都可以用於生產)。另外,我正在Linux上開發,所以與我相關的任何與Windows相關的問題都不相關。

+0

您也可能要考慮目的C](HTTP://en.wikipedia。 org/wiki/Objective_c),[D](http://en.wikipedia.org/wiki/D_%28programming_language%29)以及可能的[一堆其他語言](http://en.wikipedia.org/ wiki/Object-oriented_programming#OOP_languages)類似於「C with objects」。 – pmg

回答

10

Unity,所有最新版本的Ubuntu使用的用戶界面都使用Vala。

Here is a list使用Vala開發的應用程序。其中一些是一些主要的GNU/Linux發行版的默認GUI安裝的一部分。對於Genie而言:它是Vala編譯器可以理解的另一種語言(與Python類似的語法)。所以它真的只是你喜歡哪種語法的問題(在我看來)。下面是從精靈語言指導報價,這似乎是說同樣的話:

精靈非常相似,瓦拉的功能,但不同之處語法 允許開發者使用更清潔,更少的代碼來完成 同樣的任務。

像瓦拉,精靈有着相同的優點:寫在精靈

  • 程序應該有類似的性能和資源使用那些直接在瓦拉和C書面
  • 精靈現在沒有臃腫和開銷隨它利用虛擬機(例如Python的,單聲道, 的Java)的精靈
  • 類實際上是GObjects所以精靈可用於創建平臺的代碼像小工具和庫,其中GObjects是需要結合 許多其他高級語言到另一邊[R語言

如果你不喜歡TAB字符,你可以用空格代替:

[indent=2] //two space indent instead of TAB 
init 
    print "Hello World" 
+1

謝謝。我想我會和Vala一起去的。它仍在開發中(看起來,最近幾年對Genie的代碼更改已完成)。 –

+1

措辭「在Genie中編寫的程序......直接寫入*在Vala和C中編寫的程序」有所說明。使用Genie會引入什麼樣的間接性?我知道Vala/Genie在編譯爲二進制文件之前首先編譯爲C,但是這句話使得看起來好像在Genie編寫的程序在編譯爲C之前首先編譯爲Vala,然後編譯爲二進制文件。或者也許在斯瓦希里之間。我不知道。 – robru

+0

我檢查出Unity的源代碼,只能看到cpp,c,py的擴展名。 – exebook