Purpose: provide some pointers and references to Java in particular, and its relationship to Tcl. ---- See http://www.java.com/ for the home of Java, an OO language most commonly implemented as a bytecode interpreter whose byte codes are intended to run cross platform. Or, whose byte codes run on the Java Virtual Machine, which is ported to a number of platforms. See [Jacl] and [TclBlend]. ---- Interesting Java article: http://sakima.ivy.net/~carton/academia/java_languageoftomorrow.html ---- [LV] says "So far, in 5+ years of reading and looking at Java, I've only found 1 application that was useful and worked ''out of the box'' - and that is a command line app that generates DOC files for the Palm Pilot!". He continues to seek useful applications written in Java that work out of the box. [TP] I'll add a few more that work out of the box: * [Jacl] The Tcl interpreter written in Java. The 'java' package that allows introspection and manipulation of other Java objects is absolutely delightful for those of us that work with Java. * [Jedit] A very nice text editor, with modes for dozens of languages, including Tcl. Lots of plugins (mostly Java oriented.) ---- [RS] quotes from [http://www-106.ibm.com/developerworks/library/script-survey/] that Tcl's set out [open file.txt a] is in Java only PrintWriter out = new PrintWriter(new FileOutputStream("file.txt",true));" ---- The usual graphical toolkits for Java are [AWT] and [Swing], though each has its deficiencies (notably colossal verbosity relative to [Tk]...) See for example [Click me]. [Swank] is a Tk-like toolkit as an extension to [Jacl]. ---- [escargo] I think there should be a distinction made between the Java language, the implementations of Java compilers, and the Java Virtual Machine. The Java language is a hybrid object-oriented langauge (hybrid in the sense that there are both primitive types and objects) with single inheritance. (Some aspects of multiple inheritance can be simulated using interfaces.) Source code in the Java language is often translated into Java class files (which contain byte codes) that are interpreted by a Java Virtual Machine (JVM). There are '''native''' compilers that translate Java source code into native machine code that does not require the JVM (and isn't cross platform anymore, of course). ---- [davidw] I think one of Tcl's advantages over Java is that it scales down, in a number of ways. Let's have a look: * Getting started: as Richard indicates, you can do the same thing in Tcl that it takes almost twice as much Java to do. Furthermore, the Java version requires you to understand a little bit about classses. * Application size: this depends on the implementation, but most Java programs seem to require much more in the way of system resources. To be fair, a lot of that may be common to any Java application, large or small, so when scaling up it's less noticable, but for an app that is not large, it's quite apparent that Tcl wins hands down. * Application structure: Java can be used to force a more elegant architecture in some cases, but falls down for "quick and dirty". You can't do quick web pages (like Rivet, for example) with Java - you need servlets, jsp's, and maybe a bunch of other junk. If you are working on a large project, all this extra overhead might not make a difference, but if you need to scale down, to something small, fast, easy, light and portable, Tcl is probably a better bet. ---- [Java and Tcl]; [Tcl and other languages] ---- [[ [Category Language] | [Category Java] ]]