我正在使用一些遗留的C代码,我需要重构和清理,删除意大利面条型编程,遵守DRY原则等。
我正在考虑使用C ++进行重写,但我不想走得那么远,并且希望尽可能保持与C的接近(同时使用一些OOP概念[无需手动编写代码])。 / p>
我最近遇到了GObject,Vala和Genie。后两者是最新的。是否有人知道在生产代码中使用了Vala或Genie?
最后但并非最不重要 - 是否有两种语言之间的利弊比较列表。我倾向于Genie,因为我喜欢Python而且我对C#并不太热衷,但Genie(显而易见的)对标签的坚持在实践中可能有点烦人 - 我会对一系列的利弊感兴趣两种语言(假设其中一种或两种语言可供生产使用)。
顺便说一句,我正在开发Linux,所以任何与窗口相关的问题都与我无关。
答案 0 :(得分:10)
Unity使用Vala。
使用Vala开发的应用程序的{p> Here is a list。其中一些是一些主要GNU / Linux发行版的默认GUI安装的一部分。至于Genie:它是Vala编译器理解的另一种语言(使用类似Python的语法)。所以它只是你喜欢哪种语法的问题(在我看来)。以下是Genie语言指南的引用,似乎也有同样的说法:
Genie在功能上与Vala非常相似,但语法不同 允许开发人员使用更清晰,更少的代码来完成 同样的任务。
与Vala一样,Genie也有同样的优势:
- 用Genie编写的程序应该具有与直接用Vala和C
编写的程序相似的性能和资源使用- Genie没有任何使用VM的许多其他高级语言带来的膨胀和开销(例如Python,Mono, 爪哇)
- Genie中的类实际上是GObjects所以Genie可用于创建平台代码,如小部件和库,其中GObject是 绑定到其他语言所必需的
如果您不喜欢TAB
个字符,则可以改为使用空格:
[indent=2] //two space indent instead of TAB
init
print "Hello World"