From mboxrd@z Thu Jan 1 00:00:00 1970 From: David Tolpin Message-Id: <200403010934.i219YNhh064852@adat.davidashen.net> To: 9fans@cse.psu.edu Subject: Re: [9fans] Re: Threads: Sewing badges of honor onto a Kernel In-Reply-To: Content-Type: text/plain; charset=KOI8-R Date: Mon, 1 Mar 2004 13:34:23 +0400 Topicbox-Message-UUID: 0675b7f6-eacd-11e9-9e20-41e7f4b1d025 > in other words: if you're capable of understanding `finalised virtual hyperstationary factory class', > remembering the Java class hierarchy, and all the details of the Java Media Framework, In fact, there is no such thing as 'virtual' in Java, it is from other languages. Finalised cannot be a feature of a class in a hierarchy, since finalized is a state of an object after it was deleted and it is only needed to define the semantics of the language, not to program in it; remembering all the details of Java Media Framework is no more necessary than remembering all the details of PDF 1.5 specification -- unless you earn money by winning contests on writing multimedia java applets or checking PDF generators for conformance. Factory in Java is a simple concept, one more level of indirection. Think of it as something similar to 'bind' in Plan9. In general, Java is very close to Plan9 in many things. It is built to provide a cleaner and smaller alternative to C++; it offers very few concepts to learn -- and the extensive libraries are not meant to learn -- there are javadocs for them. The core language and system design is small and logical. It bears many ideas from Oberon (the system acme took its interface and interaction design), including the language design and the idea of embedded applets. Parallel programming in Java is easy and natural, as easy and natural as in other language or system or even easier, dare I say it. You just use threads, and use basic language features, such as variable scopes, to have shared and private thread resources. No additional flags and bits to remember; everything is easy and straightforward. I think that the major objection against Java is its closedness, but Plan9 has this problem too -- and it is being solved for both designs. David Tolpin