Path: csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail From: Chris Angelico Newsgroups: comp.lang.python Subject: Re: [OT] Java generics (was: Guido sees the light: PEP 8 updated) Date: Mon, 18 Apr 2016 11:17:25 +1000 Lines: 40 Message-ID: References: <57143273$0$1610$c3e8da3$5496439d@news.astraweb.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 X-Trace: news.uni-berlin.de be22WLNYPXvLEoD5dPi19AFr3PVUjwSBkgZ0aUgCKzWQ== Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.002 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'python,': 0.02; 'subject:: [': 0.03; 'received:209.85.223': 0.03; '1996,': 0.07; 'javascript,': 0.07; 'subject:PEP': 0.07; 'cc:addr:python-list': 0.09; 'ruby,': 0.09; 'sake': 0.09; 'language,': 0.11; 'java,': 0.15; '2016': 0.16; 'bytecode': 0.16; 'compilers': 0.16; 'footing.': 0.16; 'from:addr:rosuav': 0.16; 'from:name:chris angelico': 0.16; 'received:io': 0.16; 'received:psf.io': 0.16; 'subject:Java': 0.16; 'wrote:': 0.16; 'language': 0.19; 'subject:] ': 0.19; 'cc:2**0': 0.20; 'cc:addr:python.org': 0.20; 'machine': 0.21; 'java': 0.22; 'pascal': 0.22; 'am,': 0.23; 'code,': 0.23; 'code.': 0.23; 'originally': 0.23; 'header:In-Reply-To:1': 0.24; 'mon,': 0.24; "doesn't": 0.26; 'chris': 0.26; 'message- id:@mail.gmail.com': 0.27; 'contrast,': 0.29; 'url:wikipedia': 0.29; "i'm": 0.30; 'system,': 0.30; 'url:wiki': 0.30; 'code': 0.30; 'probably': 0.31; "can't": 0.32; 'implement': 0.32; 'compiled': 0.32; 'run': 0.33; 'source': 0.33; "d'aprano": 0.33; 'steven': 0.33; 'languages': 0.34; 'lists': 0.34; 'received:google.com': 0.35; 'could': 0.35; 'sometimes': 0.35; 'but': 0.36; 'too': 0.36; 'there': 0.36; 'url:org': 0.36; 'received:209.85': 0.36; 'beginning': 0.36; 'heard': 0.36; 'subject:: ': 0.37; 'virtual': 0.38; 'received:209': 0.38; 'anything': 0.38; 'mean': 0.38; 'url:en': 0.39; 'subject:the': 0.39; "didn't": 0.39; 'enough': 0.39; 'where': 0.40; 'some': 0.40; 'back': 0.62; 'more': 0.63; 'more.': 0.63; 'interest': 0.64; 'matter.': 0.66; 'flash': 0.67; 'approaches': 0.72; 'links,': 0.76; 'click': 0.76; 'battle': 0.84; 'chrisa': 0.84; 'overloading': 0.84; 'spawned': 0.84; 'together,': 0.84; 'you.)': 0.84; 'to:none': 0.91 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:cc; bh=EvAYNc6qnzSuR+iUve/ZNY07PmfRF1uWp4k//MJNhKw=; b=oTVESx5XyHzZN26rrivkKtY44Zw0DFJ7B8MXakf6AUwJwqAs3+93yRPJdxzDPAaN2u NGiKdw1PUDQAKD8bEvzB1UTF/9sb+vw4PguiHOZjJAzh3Zih9l9qZL3Qki8chRLdf+KK oyXzwUOfX9+fdStejnys4F/MHdYa4lITBV8ORNCNZlRPO9w062PEua6Q3rOlonALBzO/ VXa/GXFRHqNZ8VXt48Q/h/7lTGqkA97lLxrFaYreZjjBKiqINBG4b728SDZVat/y7lJR gOC7OOYltjaOUi3xqwrQiqit6gipyASrEMAqWp2VxeAbgNi/DwMLVR0XoaBFO+58tPLk uuUw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:cc; bh=EvAYNc6qnzSuR+iUve/ZNY07PmfRF1uWp4k//MJNhKw=; b=nAAWq5g+1CIS+/DOqj/VW1BvR0sLptxOLaNP0r2mGeBCkdT5685vZ/wVb5m0RLzKiM edC8u4+kTQyevSYz64Nqy8TGT/5V5fwQtdCreR8yXOrQMwUUC2sRb/Nj1LG2ef6cDzcy nu45554b+4WCFzNUIaxIo73NcNw0zi4J0+pmu35c46jddnqqhgqhlqLgPXx2V3i4cek9 6ZIKCgG6VYhEWKpGdJcvEDu+GhGmioib5r7jJsMCBLjyyxg7+TxxIzPYPoUYV8W37APV +SbRkVVkf6Suy7nV6X8nB+/3ynqIr7z3fkjAqoaFZN6EyPdHNwci5IWijpyJNWzebZG1 JNkw== X-Gm-Message-State: AOPr4FVu93ljEUatla9ZDwDb7KnQkwwaNgX24gVi4K4/T5SUtOkkiCrD9vD2ZNe2wdddyPn+KyGOyv2T5jFmcA== X-Received: by 10.107.18.147 with SMTP id 19mr31114755ios.157.1460942245491; Sun, 17 Apr 2016 18:17:25 -0700 (PDT) In-Reply-To: <57143273$0$1610$c3e8da3$5496439d@news.astraweb.com> X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Mailman-Original-Message-ID: X-Mailman-Original-References: <57143273$0$1610$c3e8da3$5496439d@news.astraweb.com> Xref: csiph.com comp.lang.python:107216 On Mon, Apr 18, 2016 at 11:03 AM, Steven D'Aprano 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