9

我正在使用一些遗留的 C 代码,我需要对其进行重构和清理,以删除意大利面条式编程,遵守 DRY 原则等。

我正在考虑使用 C++ 重写,但我不想走那么远,并且希望尽可能地接近 C(同时使用一些 OOP 概念 [无需手动编写代码])。

我最近遇到了 GObject、Vala 和 Genie。后两个是相当新的。有没有人知道 Vala 或 Genie 被用于生产代码?

最后但并非最不重要的一点 - 是否有两种语言之间的优缺点比较列表。我有点倾向于 Genie,因​​为我喜欢 Python 并且不太热衷于 C#,但是 Genie(显然?)坚持使用选项卡在实践中可能有点烦人 - 我会对两种语言(假设其中一种或两种都可以用于生产)。

顺便说一句,我正在 Linux 上开发,所以就我而言,任何与 Windows 相关的问题都无关紧要。

4

1 回答 1

10

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

这是使用 Vala 开发的应用程序列表。其中一些是一些主要 GNU/Linux 发行版的默认 GUI 安装的一部分。

至于 Genie:它是 Vala 编译器可以理解的另一种语言(具有类似 Python 的语法)。所以这真的只是你喜欢哪种语法的问题(在我看来)。这是 Genie 语言指南的引述,似乎是在说同样的事情:

Genie 在功能上与 Vala 非常相似,但语法不同,允许开发人员使用更简洁和更少的代码来完成相同的任务。

和 Vala 一样,Genie 也有同样的优势:

  • 用 Genie 编写的程序应该具有与直接用 Vala 和 C 编写的程序相似的性能和资源使用情况
  • Genie 没有许多其他使用 VM 的高级语言(例如 Python、Mono、Java)所带来的臃肿和开销
  • Genie 中的类实际上是 GObjects,因此 Genie 可用于创建平台代码,如小部件和库,其中 GObjects 需要绑定到其他语言

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

[indent=2] //two space indent instead of TAB
init
  print "Hello World"
于 2012-05-01T09:10:55.473 回答