Vala:陷阱,提示和技巧

And*_*NER 44 vala

作为Vala的新手程序员,对于该语言的新手,您的第一条建议是什么?

use*_*045 36

这在很大程度上取决于你来自哪个背景.如果您来自C/C++/Java,最好的建议是学习函数式编程.Vala支持真正的闭包,因此你应该(深入地)学习如何使用lambda表达式.最好的资源是Abelson和Sussman的计算机程序结构和解释.这是多年来麻省理工学院CS的入门教材.它可以在http://mitpress.mit.edu/sicp/full-text/book/book.html免费在线获得,但纸质版本更具可读性.视频讲座可在http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/上找到.问题集可在http://icampustutor.csail.mit.edu/6.001-public/免费获得.

除此之外,我通常只是尝试很好地学习C#编程风格.它与Vala类似,但有很多关于该主题的书籍.

渔获:

  • 请注意Vala没有垃圾回收.它确实引用计数.
  • 请注意,Vala仍在开发中.它是一种相当新的语言,并没有达到1.0.您现在编写的代码将来可能会中断.
  • 如果选择学习Vala,请注意,就编程语言概念而言,它有点过时了.它对多核编程没有任何帮助.它对内存管理没有任何帮助(代码性能主要基于缓存一致性 - 好的垃圾收集语言可以重新组织内存以帮助这里).它是C的包装器,并且带有许多C的限制(尽管它确实添加了闭包).

另外,其中一张海报推荐使用tinycc.这是开发的合理选择,但您应该使用优化的编译器(如gcc(或支持,Intel的编译器))进行部署.

  • @ user274045:我没有看到缺乏一个不确定的GC作为一个缺点,我也不认为*它是一个C包装*作为一个问题.编译为本机字节代码并成为C库.它可能有一些C限制 - 但比C#具有更大的灵活性. (9认同)
  • 没有矛盾.如果你今天要制作像Fortran这样的新语言,它将是新的和过时的.C年龄38岁.它专为计算机设计的速度慢1000倍,内存比我输入的内存少1000倍.处理器更简单; 可以通过计算机器周期来手动优化代码.性能不受内存层次结构和多核的限制.您没有资源来实现优化编译器或VM和JIT.我们现在正处于一个新的世界.编译低级别越来越无法与VM高级别竞争功耗和性能. (8认同)
  • @ user274045:你在第2点和第3点之间有点自相矛盾.*这是一种相当新的语言......*然后*......要注意它有点过时......*.即使您正在讨论语言概念,它似乎也融合了一些最好的C#产品和C的强大功能. (7认同)
  • 你的链接现在超级. (3认同)

Rya*_*ior 22

我的第一条建议是了解GObjects.它们是Vala强大功能和灵活性的支柱,学习如何使用GObject包装各种库使您的Vala程序可以访问所有可以链接的内容(这很多!).

以下是一些可能感兴趣的链接:
*http://library.gnome.org/devel/gobject/stable/
*http://fosswire.com/post/2009/7/gobject-vala/
*http: //developer.gnome.org/doc/tutorials/#gobject
*http://en.wikipedia.org/wiki/GObject


IAb*_*act 15

  1. 对于多种资源,这将是一个常规资源:Vala - GNOME Live!.
  2. 与GObject:GObject参考手册近距离接触.
  3. 我不知道你来自哪个背景,但你会发现这很有用:Vala Quick Intro for C#Programmers

无论如何,对C的了解将是非常有用的.我们的团队实际上正在考虑逐步改造并移植到Vala.我们的成员具有C#/ C++的强大背景,这种方向的改变(随着时间的推移)将有利于我们产品的性能和灵活性.


小智 9

提示:通过使用TinyCC代替gcc进行开发,可以显着加快构建时间.Vala使用CC env变量来选择后端编译器,因此"export CC = tcc"就可以了.


Est*_*aya 6

以下是我的提示:阅读官方文档.:)

  • +1:如果我让它重新回答,我认为这将是我的答案. (2认同)