On 13 Mar 2008, at 13:24, Tim Hunter wrote: > James Tucker wrote: >> On 12 Mar 2008, at 01:58, Tim Hunter wrote: >> >>> t3chn0n3rd wrote: >>>> right now I am running ruby on red hat 8. Is there a compiler for >>>> windows vista? >>> >>> If by "compiler" you mean "interpreter," then yes. Google "ruby >>> +windows". If by "compiler" you mean "a thing that turns Ruby code >>> into object code," then no. There are no Ruby compilers. If you mean >>> something else, please clarify. >> >> Except the one in jruby. oh and rubinius (is that working yet?). Oh >> and 1.9. >> >> ;) > > I knew somebody would quibble. That's why I specified "a thing that > turns Ruby code into object code." Neither JRuby nor YARV is turns > Ruby > code into object code. VM instructions, yes. Object code, no. I don't really want to argue, but I do feel it's important to point this out. Most code that you will ever write (including C or any form of assembler to run under an operating system (any of the 6 most common OSes), runs inside a virtual machine). Whilst some or even most of the instructions may run directly on the processor, there are many layers of indirection providing a genuine virtual machine experience. That is, memory management, scheduling, memory access security, and so on and so forth. Many C heads (of which I am actually not one) will tell you that "most C code is written for a virtual machine on any modern OS". Now if you want to get 1 step closer to the processor, and this is your definition (of object code), that's fine, but there are often no genuine benefits to doing so, by comparison to what becomes available expanding the size (or more specifically capability) of the VM you run on. Start up time aside, it's relatively well known that Java is starting to push these boundaries. The real gain that businesses see to 'object code' is that it is very hard to 'steal implementation code' from 'object code'. This is partly a product of optimization and of the effective (co-incidental) obfuscation of the code. According to some of the Jruby folks, it's very hard indeed, to get 'implementation code' from jruby compiled classes. Moreover, I'm not sure it's practical, or even entirely possible, to implement ruby without at least some 'VM' style code running in the background, even under an attempt to make that all static, stateless code. I'd like to be proven wrong, though. As I say, I don't want to argue on the definition of object code. We probably share different opinions. This is just mine, and I'm happy to discuss it, but not to argue. :-)