Linked by Thom Holwerda on Mon 8th Feb 2010 13:23 UTC, submitted by kragil
Graphics, User Interfaces You may remember that back in November last year, I wrote about the lack of a decent Paint.NET-like application for Linux (or, more specifically, for Gtk+ distributions, since Qt has Krita). As it turns out, this compelled Novell employee Jonathan Pobst to code a Paint.NET clone in Gtk+ using Cairo. Version 0.1 is here, and it's remarkably advanced for something so young.
Thread beginning with comment 408575
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE[3]: valanator
by FooBarWidget on Tue 9th Feb 2010 23:52 UTC in reply to "RE[2]: valanator"
FooBarWidget
Member since:
2005-11-11

No, Vala really has no runtime. It compiles directly to C, no bytecode, interpreters or whatever. It also has no standard library. The result only depends on GLib (they use GObject to implement the object model) and the C library (for obvious reasons).

Vala is very interesting but I wouldn't use it because it doesn't look mature enough. The website looks like it's incomplete, there doesn't seem to be much tool support, there doesn't seem to be much of a community around it and documentation is lacking.

Edited 2010-02-09 23:54 UTC

Reply Parent Score: 2

RE[4]: valanator
by moondevil on Wed 10th Feb 2010 09:56 in reply to "RE[3]: valanator"
moondevil Member since:
2005-07-08

Then I advise you to go back to your compiler design classes, since you seem to have missed quite a few of them.

All languages have runtimes!

Assembly - The microcode used by the processor to perform all steps required by the each instruction
C - The code that usually lives in crt0 and allows main() to be called from the OS, execution of atexit() registed callbacks, sbr() style of memory management from malloc and friends
C++ - Same as C, plus the code to ensure proper initialization of constructors for static objects, object construction/destruction, management of stack unwinding for exceptions


Should I carry on with more examples?

A runtime is more than just people know JVM or CLR for. It is all the required library infrastructure a language needs to exist.

For example, on embedded systems the languages sometimes target directly the hardware, without any OS support. On those cases, the required infrastructure to start the application and interface with the hardware is the runtime.

Again, please remember to attend your compiler classes.

Reply Parent Score: 2

RE[5]: valanator
by FooBarWidget on Wed 10th Feb 2010 10:48 in reply to "RE[4]: valanator"
FooBarWidget Member since:
2005-11-11

That depends on how you define "runtime". While strictly speaking libc is a runtime, for all practical purposes it's already installed everywhere. If you say "requires the libc runtime" then that would just confuse end users.

Is the kernel part of the runtime too? Is the CPU part of the runtime too? How about the BIOS? I could go on and go on.

I am not interested in the strict definition of "runtime". I am interested in what *end users* would consider a "runtime". Anything that you have to install externally to get the app running is definitely a runtime to them. Anything that's already installed, while strictly a runtime, is not considered a runtime by end users because they don't have to deal with it.

Reply Parent Score: 2