On Mon, Apr 18, 2016 at 11:03 AM, Steven D'Aprano <st...@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 -- https://mail.python.org/mailman/listinfo/python-list