Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!uunet!mcsun!inesc!unl!unl!px From: px@fct.unl.pt (Joaquim Baptista [pxQuim]) Newsgroups: comp.object Subject: Re: Which OOPL is the best? Message-ID: Date: 26 Mar 91 15:42:18 GMT References: <1991Mar25.045952.813@agate.berkeley.edu> Sender: news@fct.unl.pt (USENET News System) Organization: Universidade Nova de Lisboa -- Lisbon, Portugal Lines: 63 In-Reply-To: jls@rutabaga.Rational.COM's message of 26 Mar 91 03:09:05 GMT Smalltalk: For me, it's the purest of them all. Clean enough, excelent programming environment, reasonably fast for some jobs. I produced a toy compiler in Smalltalk/V for a fast PC. Compilation was fast enough, about half a second for each source file. Execution was horrible, since I compiled to objects, and used objects to represent activation frames and such. My final idea is that it's fast enough to do a lot of flexible things, like user interfaces, and that it's horrible to do one thing a lot of times, like executing a sequence of "instructions" very fast. All in all, it was a pleasure to use, and final speed could have been obtained by implementing a bytecode interpreter in any traditional language. CLOS: Don't know it. Heard some good things about it, though. Eiffel: I never used the language, but I've read the book. For me, Eiffel is definitely in the right direction. If I wanted to do some real work out there, I'll probably be using it. It's a strongly typed language, but I think the type system is flexible enough to work. C++: I've teached it, but I did not used it so much :-) It misses some points that some consider relevant to "true" OO programming, like good polymorphism (memory fails here: this point intentionaly left vague) and garbage collection. Some thing garbage collection is not really useful, but one quickly changes its mind after starting to decide where and who destroys which objects. One gets tempted to either copy everything or else look really well at ones program, and that is sometimes very difficult. Dangling pointers are just everyday's problems. Although C++ is strongly typed, you will have to circumvent the type system and use casts almost everywhere if you need generic code. Final opinion: Learn at least Smalltalk and Eiffel. You will learn techniques that will always be useful, even if you end up programming in C++ for the rest of your days. And you will have a perspective to judge the continuous flame wars in comp.lang.c++ :-) -- Joaquim Manuel Soares Baptista, aka px@fct.unl.pt, px@unl.uucp Snail: CRIA, UNINOVA, FCT/UNL, 2825 Mt Capar