From owner-freebsd-chat Tue Oct 30 10: 6:43 2001 Delivered-To: freebsd-chat@freebsd.org Received: from mail.acns.ab.ca (h24-68-206-125.sbm.shawcable.net [24.68.206.125]) by hub.freebsd.org (Postfix) with ESMTP id E9DB137B401; Tue, 30 Oct 2001 10:06:30 -0800 (PST) Received: from colnta.acns.ab.ca (colnta.acns.ab.ca [192.168.1.2]) by mail.acns.ab.ca (8.11.6/8.11.3) with ESMTP id f9UI6UM03614; Tue, 30 Oct 2001 11:06:30 -0700 (MST) (envelope-from davidc@colnta.acns.ab.ca) Received: (from davidc@localhost) by colnta.acns.ab.ca (8.11.6/8.11.3) id f9UI6Ti03567; Tue, 30 Oct 2001 11:06:29 -0700 (MST) (envelope-from davidc) Date: Tue, 30 Oct 2001 11:06:29 -0700 From: Chad David To: Terry Lambert Cc: Nate Williams , John Baldwin , chat@FreeBSD.ORG Subject: Re: time_t not to change size on x86 Message-ID: <20011030110629.A3499@colnta.acns.ab.ca> References: <3BDE6ED3.64DC027E@mindspring.com> <15326.50508.909158.688936@caddis.yogotech.com> <3BDED2DC.A04B6822@mindspring.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5i In-Reply-To: <3BDED2DC.A04B6822@mindspring.com>; from tlambert2@mindspring.com on Tue, Oct 30, 2001 at 08:18:36AM -0800 Sender: owner-freebsd-chat@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org On Tue, Oct 30, 2001 at 08:18:36AM -0800, Terry Lambert wrote: > Nate Williams wrote: > > > Java has several problems: > > > > > > 1) It can't do multiple inheritance > > > > This is certainly not a problem. This is a good thing, and one of the > > strengths of Java. It doesn't bring in all of the *crap* that C++ does. > > In any case, you can perform almost all of the same functionality using > > interfaces, in a much cleaner fashion. I've yet to find a good example > > of multiple inheritance that couldn't also be done in a simpler fashion > > using Java + inheritance. > > I've run into several instances where I needed to marshall > objects from a local node to a remote node, and then reinstance > them, without explicitly knowing anything other than that they > inherit from a particular class, and then later marshall them > again (either back or elsewhere). What does this have to do with multiple inheritance? Every major java server I've every written did exactly this, and a base class being a constant is a must. I don't see how multiple inheritance would change this. > > Sprite has a nice example of this in their FS implementation, > when doing user space developement of FS code. > > Choices (University of Kentucky, circa 1994 Bell Labs sponsored > research) has similar issues, and the whole OS supports object > inheritance. > > I've also seen a number of design patterns that could not > be used without a bridge pattern because of the lack of > multiple inheritance (i.e. instead of doing an overlay of > the common parts of two or more patterns, you had to use > reflection to make the common parts act common, even though > they weren't actually common). Could you give a more concrete example of what you are talking about. If you are arguing that using reflection is not pure then I might agree (if you have a better way). Also, I've observed the exact opposite, you need reflection to stop the common parts from acting common, ie. in order to cast the base class to its real type. Have you ever taken a look at SableCC? They make very effective use of interfaces without every using reflection or multiple inheritance. > > Java is really "dumbed down" in order to make it safe for > people who aren't very meticulous about their coding. I think this is a very easy statement to make without actually giving the language any of its due credit. I spent four indepth years with java, and while I do not miss it, I do have a respect for it in its place. Come to think of it, C is really "dumbed down" in order to make it safe for people who aren't very meticulous about their [assembly] coding. :). > > > > > 2) You can instance classes without constructing them (the > > > JavaMail API has a number of examples of this) > > > > And your point is? > > Instance but unconstructed objects are inherently bad. Again could you give an example. I don't really understand what you mean. I am unaware of any way of creating an object without invoking one of a classes constructors. The Serialization classes do it via a native method (since a class may not have a predictable constructor signature). > > > > > 3) Strong typing is for weak minds > > > > That's an elitist attitude from someone who hasn't tried using it. > > I've implemented the majority of the Java 1.2 and JavaX 1.2 > classes, as well as the JavaMail API in C++. I've also done > not an inconsiderable amount of work in Rational Rose with > "plain old Java". > > I think that historically, we will find that Java will end up > being a compiled language, and will serve predominantly as a > cross platform API. I would like to see an Objective C like implementation for java, but I fear some of the language and class interation design decisions may make that very difficult to actually acheive. > > This is, I think, the reason that Microsoft targeted it for > the "embrace and extend" treatment. > > The inability to apply a decent optimizer to JIT'ed code is > just the icing on the cake. > > FWIW: dynamic scoping is cool; but garbage collection is not > something one can afford, when designing an embedded system. Have you ever worked with the Real-Time Specification? I do not know anybody who has... > > The InterJet, going forward, was intended to have much code > in Java (in fact, it had some interesting Java code from the > IBM Almaden research center in it); Archie Cobbs is also a > major contributor to Kaffe, and was one of the primary > developers on the InterJet. > > That said, the overhead of using Java was _significant_, and > one of the things we had to do (add a more powerful CPU and > more RAM) pushed in a number of undesirable attributes, as > wll, including, but not limited to, the addition of moving > parts to the product (fans) to dissipate the increased heat > from the increased hardware bulk required. I agree entirely that the size and speed of java is its weakest point. The memory footprint of two or three jvm's on a server is just stupid, and GUI's are way to slow... makes me want to go back to win32. > > -- Terry > > To Unsubscribe: send mail to majordomo@FreeBSD.org > with "unsubscribe freebsd-chat" in the body of the message -- Chad David davidc@acns.ab.ca ACNS Inc. Calgary, Alberta Canada "When Linux was first ported to the Furby platform, it suffered from significant stability and performance problems, which gave the Furby an unfortunate reputation as being unsuitable for enterprise-level computing." -- furbeowulf site To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-chat" in the body of the message