On Sun, 2011-12-18 at 01:51 -0800, Walter Bright wrote: > On 12/17/2011 11:23 PM, Russel Winder wrote: > > It's the indirection thing again: rather than provide a C toolchain for > > each platform, you load Java (or Python, Ruby, ...) which is already > > precompiled for the platform which then allows a single toolchain across > > all platforms. > > If you can compile the JVM for a machine, then C exists on that machine (even > if > you do not make the C tools available).
I think this is moving away from the reason. True to have a JVM you need a compilation language -- usually C++, but sometimes C -- for the bootstrap bit. That is not the problem that I was referring to. In the context of teaching with a heterogeneous set of platforms, it is easier to give one set of instructions on how to compile and run a program. Trying to tell people how to compile C can get very complicated, telling people how to run javac has much less difficulty. It is the uniformity of the development platform that favours a virtual machine based language over a native code system. Also there is the issue that code compiled on one platform works when executed on another. But then this may be considered a positive, especially if you are Intel, Microsoft or Apple. In teaching Python, all platforms are the same -- except when it comes to doing native code extensions, and that is where the pain starts. [...] > The ones that don't know assembler tend to have peculiar deficits and blind > spots when they program. This is as true today on modern machines as it was > 30 > years ago. > > I see it over and over. I think this might be more true of native code languages than virtual machine languages. Java programmers generally don't know the bytecodes, Python programmers generally don't know the bytecodes, Ruby programmers generally don't know the bytecodes (Ruby 1.8 may have been interpreted, but 1.9 is a bytecode bases system). [...] > > I am not sure I'd go quite that far but I agree that all programmers > > really ought to have worked with assembly language at least once in > > their lives. > > Exactly, which is why I'd make it a first or second course in programming for > a > professional programming education. I am not sure about the last 10 years but until then a hardware course and an assembly language programming course were effectively mandatory in the first year of a computing course in the UK. The problem was that all too often the staff teaching the courses didn't really know what they were talking about :-(( -- Russel. ============================================================================= Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.win...@ekiga.net 41 Buckmaster Road m: +44 7770 465 077 xmpp: rus...@russel.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
signature.asc
Description: This is a digitally signed message part