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 408636
To view parent comment, click here.
To read all comments associated with this story, please click here.
RE[4]: valanator
by moondevil on Wed 10th Feb 2010 09:56 UTC 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

RE[6]: valanator
by moondevil on Wed 10th Feb 2010 11:59 in reply to "RE[5]: valanator"
moondevil Member since:
2005-07-08

Then by your definition, .Net is not a runtime, because on Windows Vista and Windows 7 it is already installed.

Reply Parent Score: 2