Java > Scala

Russel Winder russel at russel.org.uk
Mon Dec 19 23:42:41 PST 2011


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.winder at ekiga.net
41 Buckmaster Road    m: +44 7770 465 077   xmpp: russel at russel.org.uk
London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20111220/1c21ea13/attachment.pgp>


More information about the Digitalmars-d mailing list