On Sat, 30 Apr 2011 02:39:09 -0700 Matthew Brush mbrush@codebrainz.ca wrote:
On 04/29/11 09:06, Nick Treleaven wrote:
On Thu, 28 Apr 2011 20:13:05 -0700 Matthew Brushmbrush@codebrainz.ca wrote:
I'm sure you can see what I mean, there's a lot of gray area using the term Compiled, since many languages can either be compiled to machine code, interpreted by a VM/runtime, compiled then interpreted, compiled to one format then another, compiled just in time, and so on.
Obviously all source code is compiled at some point. The Compiled group all have one thing in common - separate compilation is normally required before execution. This is still true for Java. Python compiles on the fly, and is obviously thought of as a scripting language rather than a compiled one.
I guess I just don't see much difference between a .class/.jar file and a .pyc/.egg at this level. Python is typically not compiled on the fly, it's compiled once, and then the bytecode is run many times, it only compiles on the fly when there's no up to date .pyc file. Usually you'll have compiled .pyc/.pyx files in your system directories, PATH, etc., AFAIK.
Yes, the result is cached, kind of. But it is usually done when the user wants to run a Python program, the user doesn't compile modules first, unlike Java.
A (probably bad) analogy would be like grouping computers by "those with a hard drive" and "those which run Windows". Which group does a laptop fit in? A desktop? A server? A thin client?
That is unfair. Compiled has a technical meaning which you are using, but languages that don't auto-compile is a distinct category and recognisable by users.
Anyway, it's not such a big deal, and Compiled is more accurate than Programming, so thanks for addressing it.
Ok. If others mostly dislike the current grouping and can agree on a better alternative (one without long menus) I don't mind switching.
Regards, Nick