To view parent comment, click here.
To read all comments associated with this story, please click here.
GCC and mono are different beasts. GCC compiles native code where as mono/java dont - Vala will be compiled C code with no odd runtime dependencies like java and mono.
Vala seems roughly comparable shedskin* or GCC's java compiler - GCJ, which compiles binaries but youll find its not used by many projects compared to sun's java.
* shedskin is python -> C++
http://sourceforge.net/projects/shedskin/
I know exactly what the differences are between GCC and mono. And mono does execute native code at the end, the VM has a backend that spits out native code to run on your machine, just like the Java vm does. The difference is that it is compiled at run time rather than ahead of time, which means that any optimizations made have to be done more quickly, but also allows for some new optimizations not available on statically compiled code. That's also why it is compiled down to a psuedo-assembly language rather than plain C code, because the final compilation step is much faster.
Edited 2007-08-08 00:04






Member since:
2005-10-13
And then you get the low overhead, fast execution speed of pure C compiled code.
Vala translates to C code because it is an order of magnitude easier than going straight to assembly, just like Java and .NET go to their virtual assembly language that abstracts away the underlying hardware. It won't be faster, though. If anything, the higher level of abstraction will slow things down more since the compiler will have less information when it is being compiled into assembly. (Of course, that assumes that GCC and mono have the same amount of optimizations in them, which is probably false, and you won't have the startup penalty of a VM)
Still, sometimes perceptions are more important than actual performance, and people usually associate C code with speed.
Edited 2007-08-07 22:43