* smalltalk vs. Ada @ 2001-06-07 22:20 Rod Weston 2001-06-07 22:27 ` Ed Falis ` (4 more replies) 0 siblings, 5 replies; 12+ messages in thread From: Rod Weston @ 2001-06-07 22:20 UTC (permalink / raw) Still investigating OOP languages. I'm quite impressed with Ada, from what I've seen and read so far, but now want to turn my attention to smalltalk. Any ideas on how Ada and smalltalk compare? Are there any other OOP languages worth looking at? ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: smalltalk vs. Ada 2001-06-07 22:20 smalltalk vs. Ada Rod Weston @ 2001-06-07 22:27 ` Ed Falis 2001-06-08 0:32 ` Gary Scott 2001-06-07 22:46 ` Aron Felix Gurski ` (3 subsequent siblings) 4 siblings, 1 reply; 12+ messages in thread From: Ed Falis @ 2001-06-07 22:27 UTC (permalink / raw) Rod Weston wrote: > Still investigating OOP languages. I'm quite impressed with Ada, from > what I've seen and read so far, but now want to turn my attention to > smalltalk. Any ideas on how Ada and smalltalk compare? Are there any > other OOP languages worth looking at? They're birds of quite different feathers - and both worth familiarizing yourself with. Sticking just to OO, I'd also take a look at Eiffel. For scripting, Ruby. And in functional languages, Haskell is worth a look, too. Language exploration can be a lifetime pasttime. - Ed ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: smalltalk vs. Ada 2001-06-07 22:27 ` Ed Falis @ 2001-06-08 0:32 ` Gary Scott 0 siblings, 0 replies; 12+ messages in thread From: Gary Scott @ 2001-06-08 0:32 UTC (permalink / raw) Hi, You can review OO Fortran here: http://www.j3-fortran.org/Fortran-200x.html Ed Falis wrote: > > Rod Weston wrote: > > > Still investigating OOP languages. I'm quite impressed with Ada, from > > what I've seen and read so far, but now want to turn my attention to > > smalltalk. Any ideas on how Ada and smalltalk compare? Are there any > > other OOP languages worth looking at? > > They're birds of quite different feathers - and both worth familiarizing > yourself with. Sticking just to OO, I'd also take a look at Eiffel. For > scripting, Ruby. And in functional languages, Haskell is worth a look, > too. > > Language exploration can be a lifetime pasttime. > > - Ed -- Gary Scott mailto:scottg@flash.net mailto:webmaster@fortranlib.com http://www.fortranlib.com Support the GNU Fortran G95 Project: http://g95.sourceforge.net ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: smalltalk vs. Ada 2001-06-07 22:20 smalltalk vs. Ada Rod Weston 2001-06-07 22:27 ` Ed Falis @ 2001-06-07 22:46 ` Aron Felix Gurski 2001-06-08 1:26 ` Jon S Anthony ` (2 subsequent siblings) 4 siblings, 0 replies; 12+ messages in thread From: Aron Felix Gurski @ 2001-06-07 22:46 UTC (permalink / raw) Rod Weston wrote: > Still investigating OOP languages. I'm quite impressed with Ada, from > what I've seen and read so far, but now want to turn my attention to > smalltalk. Any ideas on how Ada and smalltalk compare? Are there any > other OOP languages worth looking at? You might consider looking at Modula-2. The ISO standard 10514 (parts 1, 2 and 3) added generics and object-oriented features to the original object-based language. -- -- Aron NB: To reply by e-mail, remove "spam-block." from my address. - - - - - - - - - - - "If you don't learn to laugh at your problems, then you will have nothing about which to laugh when you are old." -- E.W. Howe ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: smalltalk vs. Ada 2001-06-07 22:20 smalltalk vs. Ada Rod Weston 2001-06-07 22:27 ` Ed Falis 2001-06-07 22:46 ` Aron Felix Gurski @ 2001-06-08 1:26 ` Jon S Anthony 2001-06-08 14:16 ` Marin David Condic 2001-06-08 20:17 ` Mark Lundquist 4 siblings, 0 replies; 12+ messages in thread From: Jon S Anthony @ 2001-06-08 1:26 UTC (permalink / raw) Rod Weston wrote: > > Still investigating OOP languages. I'm quite impressed with Ada, from > what I've seen and read so far, but now want to turn my attention to > smalltalk. Any ideas on how Ada and smalltalk compare? Are there any > other OOP languages worth looking at? Common Lisp and CLOS. In terms of sophistication, industrial strength, and unparalleled flexibility combined with high efficiency,nothing else available really matches it. BTW, I think both Ada and Smalltalk are worthy. /Jon -- Jon Anthony Synquiry Technologies, Ltd. Belmont, MA 02478, 617.484.3383 "Nightmares - Ha! The way my life's been going lately, Who'd notice?" -- Londo Mollari ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: smalltalk vs. Ada 2001-06-07 22:20 smalltalk vs. Ada Rod Weston ` (2 preceding siblings ...) 2001-06-08 1:26 ` Jon S Anthony @ 2001-06-08 14:16 ` Marin David Condic 2001-06-08 20:17 ` Mark Lundquist 4 siblings, 0 replies; 12+ messages in thread From: Marin David Condic @ 2001-06-08 14:16 UTC (permalink / raw) AFAIK, Smalltalk pretty much restricts you to doing OOP even if that isn't the best way to build a particular part of the system. Ada, OTOH, is more "general purpose" and will let you design/implement with traditional functional techniques (or pure spagetti-code ala "The Good Old Days" if you like! :-) when necessary, yet still support all of the object creation you may want. There are practical concerns as well. You'd want to ask about the quality of Ada & Smalltalk implementations, the target systems for which they are available, tools, cost, etc. I've never done anything real with Smalltalk, so I couldn't advise you on that aspect. I can say that Ada is available from a number of sources with different qualities for each implementation, so you have some choices available depending on your intended use. There are a large number of target computers for which Ada can be had. There are also a large number of tools available for working with Ada that are in general pretty good. (Yes, I complain because they're not always everything I want them to be, but in fairness, there really are a lot of things out there to support Ada development.) I'd suspect that Smalltalk will be a bit more obscure than Ada and (based on complaints heard here often) if you have a hard time finding Ada programmers, you'll have an even harder time finding Smalltalk programmers. If you need long-term future support, etc., Ada is probably in a better position than Smalltalk. Hope this helps. MDC -- Marin David Condic Senior Software Engineer Pace Micro Technology Americas www.pacemicro.com Enabling the digital revolution e-Mail: marin.condic@pacemicro.com Web: http://www.mcondic.com/ "Rod Weston" <rod_weston@yahoo.com> wrote in message news:f7ce0059.0106071420.2f38d37a@posting.google.com... > Still investigating OOP languages. I'm quite impressed with Ada, from > what I've seen and read so far, but now want to turn my attention to > smalltalk. Any ideas on how Ada and smalltalk compare? Are there any > other OOP languages worth looking at? ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: smalltalk vs. Ada 2001-06-07 22:20 smalltalk vs. Ada Rod Weston ` (3 preceding siblings ...) 2001-06-08 14:16 ` Marin David Condic @ 2001-06-08 20:17 ` Mark Lundquist 2001-06-08 22:01 ` Wes Groleau 2001-06-08 22:08 ` Ed Falis 4 siblings, 2 replies; 12+ messages in thread From: Mark Lundquist @ 2001-06-08 20:17 UTC (permalink / raw) "Rod Weston" <rod_weston@yahoo.com> wrote in message news:f7ce0059.0106071420.2f38d37a@posting.google.com... > Still investigating OOP languages. I'm quite impressed with Ada, from > what I've seen and read so far, cool... :-) > but now want to turn my attention to > smalltalk. Any ideas on how Ada and smalltalk compare? OK, let's go! I'll also throw in Java as an additional point of comparison... Smalltalk is a typeless language. That doesn't mean there are no types or that objects don't have types (that would be nonsense!); rather, it means that the things in Smalltalk that correspond to what are called "names" in Ada -- variables, method parameters, and method invocations -- are untyped. That is, they denote objects whose types are unknown. But since the only thing you can do with an object is to "send it a message" -- that is, invoke one of its methods -- the only error that can arise from an object having the wrong type is when you try to invoke a method that does not exist for the target object, and this is a run-time error. Ada, by contrast, is a quite strongly typed language. Java also has strong static type checking. But in both Smalltalk and Java, the only new types the programmer can create are classes, where in Ada you can create new elementary types, array types, etc. And Ada's type system includes the powerful "subtype" mechanism which is not found in any other mainstream language. Smalltalk is also a "by-reference" language -- that is, a name denotes a reference to an object, and the reference in turn designates or points to the actual object. There is no other way to access an object. Ada is a "by-value" language -- names denote objects themselves, and reference semantics are explicit, i.e. a reference is an ordinary object, but of a particular kind of type (an "access type" in Ada). In languages with by-reference semantics, the equality test really tests for *identity* of the designated objects (since that's what equality of two references means), and assigment creates an alias, not a copy. So things feel a lot different in a by-reference language. In Smalltalk, the reason for being a by-reference language is deeply connected to typelessness. If there is no static typing, the implementation can't generate code to create an object as a stack local, because if you don't know the type then you don't know the size of the object. So everything is allocated off the heap, and you just pass around pointers to everything. Java is also a by-reference language, but for half-baked reasons. Smalltalk (like Java) is a class-oriented language, i.e. everything is an instance of a class. Ada is not a class-oriented language. Both Smalltalk and Java are "pure class-oriented" -- they have a single-rooted class hierarchy. A practical implication is that although you might not like not having generics, you can generally survive without them :-) The classic Smalltalk (Smalltalk-80) doesn't have multiple inheritance, although there are variants that do support MI. Smalltalk, like Java, is meant to run on a virtual machine, and the compiler compiles methods to bytecodes. Ada is meant to be compilable to native code, although of course it can also compile to bytecodes to run on a virtual machine. Smalltalk doesn't have a notion of "public vs. private members", because an object's instance variables are visible only to the object's own methods, i.e. all instance variables are "private". Smalltalk, like Java, has a standard library that includes collection classes. Ada has no standard collection library. Smalltalk has a programming environment including class browser, compiler, debugger etc. that are all written in Smalltalk and run on the same virtual machine as your program. This is pretty important in a language where type mismatches cause run-time errors :-). When this happens, you are notified by the fact that the debugger comes up in the context of the error, and presto, you are debugging your code. Also, you don't really compile a "program" in Smalltalk as you compile individual methods as you write or modify them. Because of these factors, programming in Smalltalk has a real incremental, dynamic, "rapid-prototyping" feel. Ada has a hierarchial namespace. In Smalltalk, the class namspace is flat. There is a one-level "class category" attribute of classes, but this only effects how the class is displayed in the class browser; it doesn't create a namespace. For instance, if I have a class Bone in category Body-Parts, I cannot create a new class Bone in category Dog-Toys. Ada is made for concurrent programming. Smalltak has enought support to get you by as long as you're not doing anything too complex. Smalltalk was the system that brought together OOP, the mouse, and the WIMP metaphor. It brought class-oriented programming out into the daylight, and class-oriented programming was the blunt instrument needed by the masses to clobber into their brains an appreciation for the benefits of encapsulation, inheritance, and dynamic polymorphism. I guess it was probably worth the brain damage. I'm not a Smalltalk "believer", but I am a Smalltalk "fan", if that makes any sense :-). Although Ada is still my language of choice, I like Smalltalk and I think it has a certain kind of coolness. I learned Smalltalk back in '87 -- before I learned Ada. I'd suggest you try these languages out! Download GNAT if you haven't already, and start playing! There are a lot of people on this NG who will help you learn. Same w/ Smalltalk; you can find an open source implementation on www.squeak.org. > Are there any > other OOP languages worth looking at? Eiffel is probably worth looking at. It's a pure class-oriented language that supports multiple inheritance. It embodies a philosophy called "design by contract" that really seems like it belongs in Ada too, but nobody can quite figure out where to make it fit. Eiffel does not really have any concept of interface and implementation being textually separated, so like Java the methods are written in-line as part of the class definition. I much prefer the Ada approach where you have a specification and a body. From what I've seen, Ada people seem to have a lot of respect for Eiffel as a well-designed language, so I basically regard it positively even though I've never actually used it :-). Have fun! Hope this helps... Mark Lundquist ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: smalltalk vs. Ada 2001-06-08 20:17 ` Mark Lundquist @ 2001-06-08 22:01 ` Wes Groleau 2001-06-08 23:03 ` Chris Campbell 2001-06-09 11:11 ` Gerhard Häring 2001-06-08 22:08 ` Ed Falis 1 sibling, 2 replies; 12+ messages in thread From: Wes Groleau @ 2001-06-08 22:01 UTC (permalink / raw) > pass around pointers to everything. Java is also a by-reference language, > but for half-baked reasons. In fact, it's "pure-OO, everything's an object claim" is itself only half-baked. The programmer before doing anything with any name has to know whether it's an object or a primitive, since they have different semantics. A violation of "information hiding" in the sense that you can do almost nothing with "employeeNumber" without knowing something about it's implementation. > Smalltalk (like Java) is a class-oriented language, i.e. everything is an > instance of a class. Ada is not a class-oriented language. Both Smalltalk > and Java are "pure class-oriented" -- they have a single-rooted class Again, not really pure. > Ada has a hierarchial namespace. In Smalltalk, the class namspace is flat. Java has a sort of hierarchical namespace, but--here we go again--it's tied to a particular implementation: a hierarchical directory structure. -- Wes Groleau http://freepages.rootsweb.com/~wgroleau ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: smalltalk vs. Ada 2001-06-08 22:01 ` Wes Groleau @ 2001-06-08 23:03 ` Chris Campbell 2001-06-09 11:11 ` Gerhard Häring 1 sibling, 0 replies; 12+ messages in thread From: Chris Campbell @ 2001-06-08 23:03 UTC (permalink / raw) > > pass around pointers to everything. Java is also a by-reference language, > > but for half-baked reasons. > > In fact, it's "pure-OO, everything's an object claim" is itself only > half-baked. Maybe take a look at Self which going by the documentation is a pure OO language from Sun that presumably was discontinued by Sun when they developed Java. As far as i can tell there is a JVM based compiler called JSelf and a few Linux/Unix compilers. Also there is agora and omega that are both described as OO, but i'm not sure about the availability of compilers for those languages. Self, Omega and Agora are prototype based OO languages which are different from class based languages, and this might be worth investigating if you're used to the standard (class based) OO. Chris Campbell ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: smalltalk vs. Ada 2001-06-08 22:01 ` Wes Groleau 2001-06-08 23:03 ` Chris Campbell @ 2001-06-09 11:11 ` Gerhard Häring 1 sibling, 0 replies; 12+ messages in thread From: Gerhard Häring @ 2001-06-09 11:11 UTC (permalink / raw) On Fri, 08 Jun 2001 17:01:25 -0500, Wes Groleau wrote: >> Ada has a hierarchial namespace. In Smalltalk, the class namspace is flat. > >Java has a sort of hierarchical namespace, but--here we go again--it's tied >to a particular implementation: a hierarchical directory structure. No, it's not (the Java language specification doesn't specify this at all). This may be an implementation restriction of many of the more popular Java compilers (most, not all; IIRC IBM's VisualAge only works on a repository, no files or directories) For the runtime, this restriction does not exist at all. In fact, you can implement any custom class loader by extending the abstract class java.lang.ClassLoader. Typical examples are loading classes from the network (applets) or from a database. Gerhard -- mail: gerhard <at> bigfoot <dot> de registered Linux user #64239 web: http://highqualdev.com public key at homepage public key fingerprint: DEC1 1D02 5743 1159 CD20 A4B6 7B22 6575 86AB 43C0 reduce(lambda x,y:x+y,map(lambda x:chr(ord(x)^42),tuple('zS^BED\nX_FOY\x0b'))) You will be a winner today. Pick a fight with a four-year-old. ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: smalltalk vs. Ada 2001-06-08 20:17 ` Mark Lundquist 2001-06-08 22:01 ` Wes Groleau @ 2001-06-08 22:08 ` Ed Falis 2001-06-09 7:36 ` Pascal Obry 1 sibling, 1 reply; 12+ messages in thread From: Ed Falis @ 2001-06-08 22:08 UTC (permalink / raw) Mark Lundquist wrote: > Eiffel is probably worth looking at. It's a pure class-oriented language > that supports multiple inheritance. It embodies a philosophy called "design > by contract" that really seems like it belongs in Ada too, but nobody can > quite figure out where to make it fit. Eiffel does not really have any > concept of interface and implementation being textually separated, so like > Java the methods are written in-line as part of the class definition. I > much prefer the Ada approach where you have a specification and a body. > From what I've seen, Ada people seem to have a lot of respect for Eiffel as > a well-designed language, so I basically regard it positively even though > I've never actually used it :-). > I have. It's a pleasure - much less "plumbing" to do OOP compared to Ada, if that's what you want to do. The MI facilities work really well (unlike C++), the syntax is clean like Ada, and DbC is very useful (though pragma Assert in Ada gets you most of the way there). It's much weaker in terms of portability of code between compilers than Ada is. And it's not quite there yet for concurrency, or IMO real-time and systems programming. Garbage collection also removes a lot of plumbing for general kinds of applications. If you can't tell, Ada and Eiffel are my favorite languages. - Ed ^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: smalltalk vs. Ada 2001-06-08 22:08 ` Ed Falis @ 2001-06-09 7:36 ` Pascal Obry 0 siblings, 0 replies; 12+ messages in thread From: Pascal Obry @ 2001-06-09 7:36 UTC (permalink / raw) Ed Falis <efalis@mediaone.net> writes: > I have. It's a pleasure - much less "plumbing" to do OOP compared to Ada, if > that's what you want to do. The MI facilities work really well (unlike C++), > the syntax is clean like Ada, and DbC is very useful (though pragma Assert in > Ada gets you most of the way there). It's much weaker in terms of portability > of code between compilers than Ada is. And it's not quite there yet for > concurrency, or IMO real-time and systems programming. Garbage collection also > removes a lot of plumbing for general kinds of applications. If you can't > tell, Ada and Eiffel are my favorite languages. I second that. And for me too Ada and Eiffel are my favorite languages. Pascal. -- --|------------------------------------------------------ --| Pascal Obry Team-Ada Member --| 45, rue Gabriel Peri - 78114 Magny Les Hameaux FRANCE --|------------------------------------------------------ --| http://perso.wanadoo.fr/pascal.obry --| --| "The best way to travel is by means of imagination" ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2001-06-09 11:11 UTC | newest] Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2001-06-07 22:20 smalltalk vs. Ada Rod Weston 2001-06-07 22:27 ` Ed Falis 2001-06-08 0:32 ` Gary Scott 2001-06-07 22:46 ` Aron Felix Gurski 2001-06-08 1:26 ` Jon S Anthony 2001-06-08 14:16 ` Marin David Condic 2001-06-08 20:17 ` Mark Lundquist 2001-06-08 22:01 ` Wes Groleau 2001-06-08 23:03 ` Chris Campbell 2001-06-09 11:11 ` Gerhard Häring 2001-06-08 22:08 ` Ed Falis 2001-06-09 7:36 ` Pascal Obry
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox