Notes on comparison between, and connection of, Java and Tcl - pasted from the [Tcl chatroom] ---- ''dkf:'' Java is faster at this than Tcl (optimised data structures make a difference) and much more maintainable than C (garbage collection... 'nuff said!) ''suchenwi:'' But I've heard several times on c.l.t that Java engines are very slow? ''dkf:'' Java's graphics are *ultra* slow. If you're not running graphically, then recent runtimes are pretty nippy. It certainly seems to be possible to get to around 50% of optimised C code's speed without too much effort. ''dkf:'' The problem with Java's graphics is that they have a very sophisticated model inside, with full affine transforms and anti-aliasing. Very instructive to read about it; I think a really nice implementation of Jacl will be possible at some point. However, since it does all this and does it in Java, the performance on anything other than the very fastest of computers is disgusting. And in many people's eyes, graphical performance is the only kind of performance that counts. Which is not true, of course, as you well know... ''dkf:'' Faults with Java libs: no select() equivalent, Java2D too slow by far. Faults with Java language: no assert(), no return-type polymorphism, no generic classes. I think that covers most of it. Cameron: One of the points I keep trying to make about Tcl Blend is that it's an incredible blessing to anyone working with legacy code in the sense of C bindings. A Java IDE plus JNI is sloooooooow and cumbersome and flaky, and Tcl Blend just feels like all sorts of fun. And is also a bit fragile on occasions. ''Jeffrey Hobbs (in comp.lang.tcl, but it fit here so well):'' I've come to the realization that there are so many more Java jobs than Tcl jobs because it takes 10 Java programmers to do what I can do in Tcl. I'm only half-joking... ---- [Rick Hedin] (also from comp.lang.tcl - again, because it fits so well): Okay, I can't stand this anymore. I know I'm the only person in the multiverse who feels this way, but I'm going to say it. Java doesn't work. I posted to that effect on the java group, and I got answers that basically amounted to: no, it doesn't. But no one summarized: well, then, we've agreed -- Java doesn't work. There are four reasons why I say that Java doesn't work. 1. The demo they ship with the distribution doesn't work on a reasonably configured Windows 98 system. A fellow on the newsgroup said it worked on his 64Mb system. On my 32 Mb system, the editor demo fails. The system freezes up. This behavior is not unique to me; other people on the newgroup got the same results. 2. If you use Sun's distribution for Microsoft's system, you can watch your keypresses echo. Even in the 1.3 release, that they told me to wait for because "client systems are handled better." 3. If you use Microsoft's distribution, there is no Swing. The rest of the world is touting Swing. 4. Sun and Microsoft don't agree on what is correct behavior. Or, the Microsoft version has some bugs. One example is difference of treatment of insets and menubars. After spending a year messing with Java, we moved the project to Tcl/Tk. Guess what? It works. ''Another c.l.t snippet, by [Ioi Lam], on Kanji display in Java:'' And by the way, TK is WAAAAAAYYYY better than Java in this respect. Trying to get Java to display Kanji chars on English win32 is like soliciting sex with a nun. You know all the equipments are there, but she just won't do it. ---- [Larry Virden] says "I'm still looking for a '''useful''' Java application that I can just download and use. I've tried about a dozen Java apps, each required that I mess around with wrapping scripts, weird sets and unsets of various shell environment variables, downloading various versions of various run time packages - and in the end, the programs didn't work and the authors weren't able/interested in resolving the problems. ---- '' wrote in comp.lang.tcl on Mar 1, 2001:'' Only intelligent people should use Swing. It's got thousands of classes and hundreds of thousands of methods and fields. Whenever I need to do something, like, "How do I put a character into this seemingly simple widget", I'd have to look up 5 different interfaces and classes and still fail to compile. With a complex beast like Swing, it's not just a matter of "what button should I push", but rather "How do I put myself into a nice metamorphosis so that I am deemed acceptable by the Swing Gods." In contrast, most stuff in Tk can be explained within a single manpage. ---- [Cameron Laird] on [the comp.lang.tcl newsgroup]: Java: the performance of a prototyping language, the convenience and portability of Assembler. ---- '''PSE''' --- I was asked to evaluate the applicability of JAVA to something that will be at least a 10 man-year project, and could not find anyone who could deliver a well-considered evaluation of the solaris/linux interoperability and core development path (for JAVA) projected over the next couple of years. This surprised me, since I expected to hear that they proceeded in lock-step. Of course, this does not mean that they don't... but it is bothersome that the folks who I thought would KNOW could only guess. The least convincing argument I heard was the one about how "gcc includes a JAVA compiler now, so JAVA must be 'it'". I guess that means that CHILL was 'it', and before that Objective C was 'it', etc. It looks to me like JAVA is the greatest beneficiary of high hopes and wishful thinking... and not much else besides. One CS prof explained to me that M$ provided every student in his class with a free copy of J++, so of course that was what he used to teach the class. Apparently the (Large University System I May One Day Be Working For Not Mentioned Here) system is utterly ignorant of free software. ---- Larry McVoy on Tcl being an order of magnitude superior to Java in GUI programming memory, speed, ...: [http://marc.theaimsgroup.com/?l=linux-kernel&m=99305629011185&w=2] ---- Feb 19, 2002, [kennykb] wrote on comp.lang.tcl about Java and Tcl: My experience is that managers don't give a rat's arse about the looks and themes. The biggest resistance that I get to Tcl/Tk from managers comes in arguments like, "Tcl? Where am I going to hire developers that know that outdated stuff? I get dozens of Java-developer resumes on my desk every week," and "Scriptics went under, what are you going to do if ActiveState does the same?" Eye candy has nothing to do with it. Presenting Tcl as a C library doesn't help very much, because that gets into "C applications aren't reliable, they have pointer errors and memory leaks, why aren't you using Java?" TclBlend gets the same reaction because of the amount of C in it, and Jacl does nothing to civilise Swing. ---- Have we mentioned lately that Tcl programs tend to be FAR thriftier than Java in memory usage? At one time "embedded Java" seemed like a good idea. Now it's mostly a joke. ---- [Tcl and other languages] - [Arts and crafts of Tcl-Tk programming]