From ... Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!npeer.kpnqwest.net!nreader2.kpnqwest.net.POSTED!not-for-mail Newsgroups: comp.lang.lisp Subject: Re: In praise of Java. References: <3C0854B0.5CB67632@nyc.rr.com> <3216205787209641@naggum.net> <9uj7as$si9$4@news.schlund.de> Mail-Copies-To: never From: Erik Naggum Message-ID: <3216490531386367@naggum.net> Organization: Naggum Software, Oslo, Norway Lines: 48 User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.1 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Tue, 04 Dec 2001 21:35:33 GMT X-Complaints-To: newsmaster@KPNQwest.no X-Trace: nreader2.kpnqwest.net 1007501733 193.71.66.49 (Tue, 04 Dec 2001 22:35:33 MET) NNTP-Posting-Date: Tue, 04 Dec 2001 22:35:33 MET Xref: archiver1.google.com comp.lang.lisp:21881 * Erik Naggum > amends unless you threaten him. C++ is a language that encourages such > cheating and lying because you _have_ to tell your compiler something you > cannot possibly know, yet, such as the type of all your variables and > functions, and then you make up a reality that fits the lies. * Hannah Schroeter | That particular point doesn't match my experience. Usually my assertions | about types (which are checked according to the type system) are true, at | least *now*. Maybe they'll become wrong due to evolution of the system | I'm (co)developing. Then there may be excessive changes to the type | declarations etc., of course, but still, usually things are true *now*. | Except you excessively cheat yourself around the type systems using casts | or things like that. But things that are true _now_ which turn out to be false a short time later are generally regarded as unpredictable. The problem is that you have to make those changes without any changes in external requirements, they are required as your knowledge of only your _own_ code increases. I consider this to be a case of being forced to say that something is true when you are clearly not certain that it is, and then when you cannot make up a credible world around it so it holds true, you change your testimony, as it were. | Now, frankly, C++'s type system is usually more expressive. You can map | almost everything save for GC-based issues from Java into C++, but not | necessarily vice versa. This is actually an argument that C++ is a lower-level language than Java. The most expressive type system is that of machine language, or assembler. We sacrifice expressibility on one level to attain it another. | However, I don't really like using such simple drawers like "male" and | "female". People actually do come in these easily labeled packages. The difference is whether one confuses the descriptive and the prescriptive statements. Induction is a tricky business, prediction even more so. I really tried to avoid both and just report my observations so far. See my signature for a hopefully succinct summary of all the possible arguments why I think you misdirected your comments on stereotyping. /// -- The past is not more important than the future, despite what your culture has taught you. Your future observations, conclusions, and beliefs are more important to you than those in your past ever will be. The world is changing so fast the balance between the past and the future has shifted.