Channels ▼

New Native Languages

, May 08, 2012 D, Go, Vala, and Rust: A new generation of native languages.
  • E-mail
  • Print


Vala takes most of the core OO features of C++, simplifies them, and adds them to C. It uses the Gnome GObject system to create objects and greatly hides the usual complexity associated with that library. Vala also adds exception handling, type inference, and memory management. The latter requires that you use pointers and objects from GObject and Glib, the universally ported C libraries that form the core of the GNOME package. Because of this integration, Vala comes with a huge set of ported libraries and a good set of collections that have been tested through years of use. In this regard, it has the largest and most mature libraries of the languages I discuss here. It has one additional unique feature: It compiles to C, not to object code. This feature, reminiscent of the earliest C++ compilers, underscores what Vala is: a cleaned-up and improved version of C++ with most of the complexity and a lot of the syntactical cruft removed. In most Vala toolchains, a C compiler is built in, so builds do generally go to native code, but this is a convenience, not a language feature.

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.