[OT] Java generics (was: Guido sees the light: PEP 8 updated)

Chris Angelico rosuav at gmail.com
Sun Apr 17 21:17:25 EDT 2016


On Mon, Apr 18, 2016 at 11:03 AM, Steven D'Aprano <steve at pearwood.info> wrote:
> On Mon, 18 Apr 2016 09:30 am, Chris Angelico wrote:
>
>> "Java" was originally four related, but separate, concepts: a source
>> language, a bytecode, a sandboxing system, and one other that I can't
>> now remember.
>
> The virtual machine? Or is that what you mean by bytecode?

Could be. I can't remember where it was that I read about the
four-part name overloading on "Java", but it doesn't much matter. The
VM and bytecode go together, and the sandboxing is the thing that
makes that better than just compiling to machine code.

> The Java Virtual Machine is probably the most successful part of Java, as it
> has spawned a whole lot of new languages that are built on the JVM,
> including Clojure, Groovy and Scala, as well as JVM implementations of
> Python, Ruby, Javascript, Perl6, TCL, Fortran, Oberon, Pascal and more.
>
> https://en.wikipedia.org/wiki/List_of_JVM_languages

Yes, but how long did it take before they came along? I didn't click
on all the links, but the five that Wikipedia lists as "High Profile"
are all post-2000. By that time, Flash had already established a
strong footing. NetRexx, in contrast, dates back to 1996, when the
battle was on. It could have been Java's game entirely if there'd been
enough interest in the early days.

> One of the more interesting approaches is of Fantom, a new language designed
> from the beginning to run on top of any of the JVM, the .Net CLR, or a
> Javascript VM.

I hadn't heard of that one specifically, but there have been some
extremely interesting forays into language layering. (PyPyJS, I'm
looking at you.) Code is code, compilers are compilers, you can
implement anything in anything. Although sometimes it's just for the
sake of showing off ("hey look, I just compiled Firefox to asm.js and
ran it inside Firefox!")... but that's fun too :)

ChrisA



More information about the Python-list mailing list