代码之家  ›  专栏  ›  技术社区  ›  Ande Turner

掌握,技巧和技巧

  •  44
  • Ande Turner  · 技术社区  · 16 年前

    作为一个对瓦拉来说是新手的程序员,你对语言新手的第一条建议是什么?

    9 回复  |  直到 11 年前
        1
  •  35
  •   DarenW    16 年前

    这很大程度上取决于你的背景。如果你来自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仍在开发中。它是一种相当新的语言,还没有达到1.0。现在编写的代码将来可能会中断。
    • 如果选择学习vala,就编程语言概念而言,请注意它有点过时。它对多核编程没有任何帮助。它对内存管理没有任何帮助(代码性能主要基于缓存一致性——好的垃圾收集语言可以重新组织内存以帮助实现这一点)。它是围绕C的一个包装器,并且带有许多C的限制(尽管它确实添加了闭包)。

    另外,其中一张海报推荐Tinycc。这是一个合理的开发选择,但是您应该使用像gcc这样的优化编译器(或者如果支持的话,使用英特尔的编译器)进行部署。

        2
  •  22
  •   Ryan Prior    16 年前

    我的一条建议是学习有关采空区的知识。它们是Vala的力量和灵活性的支柱,学习如何用Gobject包装各种库使您的Vala程序能够访问C可以链接到的所有内容(这是很多!).

    以下是一些可能感兴趣的链接:
    * 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

        3
  •  15
  •   o3o Krzysztof Kozmic    13 年前
    1. 对于多个资源,这将是一个基本资源: Vala - GNOME Live! .
    2. 近距离接触Gobject: GObject Reference Manual .
    3. 我不知道你来自什么背景,但你会发现这很有用: Vala Quick Intro for C# Programmers

    在任何情况下,C的知识都是很有用的。我们的团队实际上正在考虑进行一次渐进式的改造并移植到Vala。我们的成员在C/C++中有着很强的背景,并且这个方向的改变会有助于我们的产品的性能和灵活性。

        4
  •  9
  •   user82450    16 年前

    提示:通过使用tinycc而不是gcc进行开发,可以显著加快构建时间。vala使用cc env变量来选择后端编译器,因此“export cc=tcc”可以做到这一点。

        5
  •  6
  •   Esteban Araya    16 年前

    这是我给你的建议:阅读官方文件。:)

        6
  •  4
  •   ssokolow    14 年前

    一般来说,vala非常好,但我发现的一个大问题是,它对数组的处理与其他语言相比非常原始,或者它的文档中有一个非常大的漏洞。

    尽管对文档、教程和谷歌进行了长时间的仔细研究,但我得出的结论是:

    • 连接两个数组的唯一方法是 fall back to C-style tricks 或使用 foreach += manually 将一个数组逐元素添加到另一个元素。
    • 你可以做一个切片 argv[1:-1] 但似乎没有与Python的 argv[1:] 所以你必须回到某个地方 more procedural 为此。
    • Libgee 对我来说是无用的,因为当地球上的物体 add_all ,没有一个采用C样式的数组,所以我重新使用 add 具有 前额 += .
        7
  •  3
  •   Noah Heldman    16 年前

    注意:我不熟悉瓦拉,但希望我的答案适用于学习任何新语言。我只是想提供一些想法,以防他们帮助…我绝对不应该得到我的答案的赏金。

    底线:这取决于你为什么要学习它…

    如果你对它很感兴趣,因为它是一种很酷的新语言,但是你不知道如何在实践中使用它,那么试着重新创建/移植一些你非常熟悉的东西,看看它是如何比较的。

    如果你学习它是因为你相信它能解决你所面临的一个特定问题,那么确保它值得预先投资,因为学习任何一种新语言都是非常耗时的,而且用一种更熟悉的语言可能会有一个合理的解决方案。

    否则,一切都是关于你如何学得最好。你是需要了解语言内部的人,还是只需要快速完成工作?(或者,像我一样,在中间的某个地方?)对于完成工作的方法,我只是寻找简单的教程,并尝试一些基本的东西,并运行,以了解它的感觉。如果我喜欢这门语言,那么我将开始阅读关于这门语言的更深入的信息,并了解引擎盖下发生了什么。

    不管你怎么做,祝你好运!

        8
  •  2
  •   user69969    12 年前

    我的建议是阅读文档,但我通过查看vala代码示例亲自学习了该语言:

    The official vala tutorial

    some documentation

    Vala教程帮助了我很多,文档页面包含了很多有用的例子,但是帮助我最多的一个站点是valadoc.org:

    valadoc.org

    Valadoc将帮助您处理不同的类和函数,以及其他库。

    VARA非常类似C,但是您也经常会看到类似Java的接口。任何使用C的经验都是好的,因为Vala周围的所有库都是用C编写的,调用函数时,几乎可以看到表面下的所有C代码。

    对于那些说瓦拉太年轻的人来说:瓦拉将继续像现在这样年轻,直到有人做了一个非常大的文件或开始一个像qt这样大的项目,每天有成千上万的人问问题。

    瓦拉一开始有点难学,因为文件不好,但不要放弃!它是一种很好的语言,当你学会了它的基础知识。祝你好运! 为糟糕的英语感到抱歉:)

        9
  •  1
  •   KRoy    11 年前

    如果您考虑使用vala来编写服务器应用程序,那么您可能需要 Aroop . aroop是一个执行内存池的vala fork。它有引用计数的垃圾收集器。您可以找到功能列表 here . 让我在列表中列出一些目标,