【原创翻译】Vala编程手册
发表于 : 2013-01-26 19:21
【原创翻译】Vala编程手册
译者注:
此手册为那些只会用 C,在不想学习其他高级语言的前提下使用面向对象编程并享受大量现代编
程技术,而加快开发效率的白痴(包括本人)所译!
原文地址:https://live.gnome.org/Vala/Tutorial
译本版权归译者所有,联系方式:Pigex.Zhang@gmail.com
Vala 是什么? ( What is Vala ?)
Vala 是一门新兴的编程语言,为那些依赖 GNOME 平台运行时(runtime),尤其是依赖 GLib 和
GObject 库的应用程序的编写提供了大量现代的编程技术的支持。目前,GNOME 平台长期持支了一套完整
的编程环境,拥有诸如动态类型系统,辅助内存管理等特性。在 Vala 诞生之前,要在 GNOME 平台上编程,
只能去调用原生的 C 语言接口,但是这样的编程方法暴露了很多根本不需要知道的细节,如果用更高级
的语言,诸如 Python,Mono C#,则需要相应的虚拟机环境,否则就只能调用 C++ 封装的库。
Vala 不同于以上提到的任何语言,Vala 最终会转换成 C 语言,然后再编译运行,不用依赖 GNOME 平
台的其他附加的库(除了 GLib 和 GObject 之外)。
由此,造成了一些细微的但又非常重要的影响:
•使用 Vala 编写应用程序和直接使用 C 编写应用程序,运行的效率非常相似,
但是 Vala 相比 C,更加容易,快速地编写和维护。
•使用 Vala 做不到 C 语言也做不到的事情,尽管 Vala 相对 C 语言来说,提供了很多 C 语言没有的特性,
但实际上 Vala 所有的特性都是映射到 C 语言本身的,只不过如果直接用 C 语言来实现这些特性的话,非常耗时,也非常困难。
综上所述,即便 Vala 提供了全部我们所希望的现代编程特性,但其实这些都是得益于一个已经存在的强力平台,因此我们在使用 Vala 的时候,必须遵守这个平台的编程规范。
更新记录:
2012.1.30
更新了继承部分,Vala的类只能继承自一个类或者不继承自任何类,不能继承自多个类
更新了接口部分,接口在定义必要条件列表时,要注意先后顺序
更新了方法隐藏部分,增加了示例代码
1月31日:
更新了错误处理部分
更新了参数路径部分
2月3日:
更新了容器部分
2月4日:
更新了语法支撑的方法
更新了多线程编程部分
更新了异步方法部分
更新了弱引用部分
更新了无属引用部分
更新了内存管理说明
2月8号:
增加了练习Vala和设计模式的代码仓库
译者注:
此手册为那些只会用 C,在不想学习其他高级语言的前提下使用面向对象编程并享受大量现代编
程技术,而加快开发效率的白痴(包括本人)所译!
原文地址:https://live.gnome.org/Vala/Tutorial
译本版权归译者所有,联系方式:Pigex.Zhang@gmail.com
Vala 是什么? ( What is Vala ?)
Vala 是一门新兴的编程语言,为那些依赖 GNOME 平台运行时(runtime),尤其是依赖 GLib 和
GObject 库的应用程序的编写提供了大量现代的编程技术的支持。目前,GNOME 平台长期持支了一套完整
的编程环境,拥有诸如动态类型系统,辅助内存管理等特性。在 Vala 诞生之前,要在 GNOME 平台上编程,
只能去调用原生的 C 语言接口,但是这样的编程方法暴露了很多根本不需要知道的细节,如果用更高级
的语言,诸如 Python,Mono C#,则需要相应的虚拟机环境,否则就只能调用 C++ 封装的库。
Vala 不同于以上提到的任何语言,Vala 最终会转换成 C 语言,然后再编译运行,不用依赖 GNOME 平
台的其他附加的库(除了 GLib 和 GObject 之外)。
由此,造成了一些细微的但又非常重要的影响:
•使用 Vala 编写应用程序和直接使用 C 编写应用程序,运行的效率非常相似,
但是 Vala 相比 C,更加容易,快速地编写和维护。
•使用 Vala 做不到 C 语言也做不到的事情,尽管 Vala 相对 C 语言来说,提供了很多 C 语言没有的特性,
但实际上 Vala 所有的特性都是映射到 C 语言本身的,只不过如果直接用 C 语言来实现这些特性的话,非常耗时,也非常困难。
综上所述,即便 Vala 提供了全部我们所希望的现代编程特性,但其实这些都是得益于一个已经存在的强力平台,因此我们在使用 Vala 的时候,必须遵守这个平台的编程规范。
更新记录:
2012.1.30
更新了继承部分,Vala的类只能继承自一个类或者不继承自任何类,不能继承自多个类
更新了接口部分,接口在定义必要条件列表时,要注意先后顺序
更新了方法隐藏部分,增加了示例代码
1月31日:
更新了错误处理部分
更新了参数路径部分
2月3日:
更新了容器部分
2月4日:
更新了语法支撑的方法
更新了多线程编程部分
更新了异步方法部分
更新了弱引用部分
更新了无属引用部分
更新了内存管理说明
2月8号:
增加了练习Vala和设计模式的代码仓库