[SDL] Re : ANN: Dao language 1.0.1 with SDL and OpenGL bindings
masonwheeler at yahoo.com
Mon Jun 8 09:41:51 PDT 2009
>----- Original Message ----
>From: Pierre Phaneuf <pphaneuf at gmail.com>
>Subject: Re: [SDL] Re : ANN: Dao language 1.0.1 with SDL and OpenGL bindings
>On Mon, Jun 8, 2009 at 6:37 AM, Paulo Pinto<pjmlp at progtools.org> wrote:
>> As you can see quite a few examples.
>> Please note I am not a Java fanboy. I use whatever tool is best for a
>> certain job, because languages are just that, tools.
>> But many Java myths are no longer true nowadays.
>The same methods are going into other traditionally interpreted
>languages, too. V8 and Tracemonkey (and possibly the new Apple one
>that I forget the name) both generate native code when JITting. The
>"Unladen Swallow" project is working on making Python faster,
>including adding native code generation. And so on.
The problem with Java (and most managed code languages) is that
it creates so many layers of abstraction that you can't penetrate,
leading to all sorts of ugly abstraction inversions and a fair number of
things you just can't do.
Pure OOP, for example. It sounds like a good idea at first, until you
try to do something that doesn't map well to the object paradigm.
Then things get ugly real fast. See
for a great illustration of the problem.
As for JIT compilation, am I the only one who thinks that it's a
Very Bad Thing from a maintenance perspective? If something
goes wrong in a native program, you can open it up in a debugger
and trace through at any layer of abstraction, right down to the
assembly code level if necessary, which it is sometimes. I've seen
glitches that don't make any sense until I'm at the ASM level,
because the compiler was doing something weird while optimizing.
If you distribute a native, compiled binary, you can be sure that every
user is running the same machine code, and you can debug like that
if necessary. But if you your code gets JITted, and the JITter optimizes
the program to the current hardware configuration like a lot of them do
these days, you're potentially distributing a different set of machine
code for *every single machine* it runs on. What happens if it makes a
mistake on one specific CPU that you don't have, and a small
percentage of users come to you with bug reports that are impossible
More information about the SDL