What are the differences between C++ and smalltalk? 
Author Message
 What are the differences between C++ and smalltalk?

Hi.

  I am working on a paper describing a C++ Tool with roots in
Smalltalk. The folks who programmed it ported a lot of the
methods of the Object superclass to C++.

  I want to tell my audience a bit about (1) why C++ was chosen
as implementation language (efficiency --- and I pray that this
won't instigate yet another flamewar) and (2) which features of
smalltalk were copied.

  In order to familiarize myself a bit with Smalltalk, I ftp'ed
the GNU Smalltalk version and the Smalltalk.FAQ. Yet, I have been
unable to ascertain precisely which differences there are (For
instance: is Smalltalk capable of multiple inheritance? Every bit
of information I have seen seems to indicate that, no,
this is not the case. The C++-Smalltalk Objectclass interface, however,
supports MI.)

  So, if anybody has a nice, comprehensive table comparing
Smalltalk to C++, I would be delighted.

Thanks in advance,
Roland.



Mon, 28 Apr 1997 23:56:02 GMT  
 What are the differences between C++ and smalltalk?

Quote:

>   So, if anybody has a nice, comprehensive table comparing
> Smalltalk to C++, I would be delighted.

While I don't have such a table, I *CAN*, through my contacts with the city
of New York, sell you a share of a wonderful, classic bridge joining
Manhattan and Brooklyn.


Tue, 29 Apr 1997 11:06:37 GMT  
 What are the differences between C++ and smalltalk?

Quote:
>  So, if anybody has a nice, comprehensive table comparing
>Smalltalk to C++, I would be delighted.

The problem with nice, comprehensive tables is that many differences are
subjective and gray. If you try to simplify the comparison then you will
compromise the intent.

For your particular need, if there is not already an artifact of the decision
process of choosing to convert from Smalltalk to C++, then I would (humbly)
suggest you're spending your time on the wrong problem.


Intel ProShare Teleconferencing
(503) 696-9309 FAX: (503) 696-4210



Tue, 29 Apr 1997 20:04:56 GMT  
 What are the differences between C++ and smalltalk?

Quote:

> Hi.

>   I am working on a paper describing a C++ Tool with roots in
> Smalltalk. The folks who programmed it ported a lot of the
> methods of the Object superclass to C++.

>   I want to tell my audience a bit about (1) why C++ was chosen
> as implementation language (efficiency --- and I pray that this
> won't instigate yet another flamewar) and (2) which features of
> smalltalk were copied.

>   In order to familiarize myself a bit with Smalltalk, I ftp'ed
> the GNU Smalltalk version and the Smalltalk.FAQ. Yet, I have been
> unable to ascertain precisely which differences there are (For
> instance: is Smalltalk capable of multiple inheritance? Every bit
> of information I have seen seems to indicate that, no,
> this is not the case. The C++-Smalltalk Objectclass interface, however,
> supports MI.)

>   So, if anybody has a nice, comprehensive table comparing
> Smalltalk to C++, I would be delighted.

> Thanks in advance,
> Roland.

[In a C++ programmer's humble opinion:]

Briefly--there's obviously more than what I can throw together in a few  
minutes:

The big difference between C++ and Smalltalk is the notion of type.  In  
Smalltalk, a type may be defined as implementing a certain message set  
(the reciever object doesn't throw a "does not understand" exception when  
told to do something).  In C++, type is intimately related to the public  
class hierarchy: only those objects that are of a class or its public  
descendants are able to respond to messages intended for the base class  
(the intended class becomes part of the message signature).

This difference has several major implications.  First, it means that C++  
objects if they want to behave like two different classes must be  
multiply-derived from those classes (in Smalltalk, the object must only  
implement messages with the same names as those in the different classes).  
MI is necessary in C++; optional in Smalltalk, although IMHO it's a sound  
abstraction mechanism--giving C++ a bit of an edge in closely mapping to  
problem analysis.  Second, C++ provides compile-time typing (since  
membership in the class hierarchy is the same as type, and is readily  
available--in fact, required).  Compile-time typing is seen by this C++  
programmer as a mechanism for reducing some kinds of errors.  In  
Smalltalk, I find myself getting lost in lots of message forwarding, and  
am unable to figure out what class the message got forwarded to.  
(Smalltalk programmers might argue that it's not of interest what class  
actually got the message, but the use of abstract base classes to define  
types is a useful C++ idiom.  Much like Objective C's protocol....)

There are other less academic but as-important differences: C++ being  
compiled gives it a speed advantage, although good garbage collection in  
Smalltalk can be more efficient than C++'s often intensive new/delete  
activity.  Garbage collection probably makes for easier (safer, more  
productive) programming.  And Smalltalk makes for a very nice development  
environment.

hope this is of interest
kit transue



Wed, 30 Apr 1997 06:59:42 GMT  
 What are the differences between C++ and smalltalk?
There aren't any differences.  The foundation of all software languages is
what is known as the "Universal P-Code", a risc engine controlled by a
secret order, of which I am a member, headquartered on the island of
Malta. This secret universal p-code (a constant in fact, code-named "p"
for secrecy's sake) has a byte value of 4.  Of course "byte" is itself
an artifice derived from "p" (the derivation is too complex to explain here.)

All computers, and all languages are based on "p".  They all offer at
best a feeble imitation of "p"'s power, elegance, and intuitiveness.

I can make this statement because all computer languages are the invention
of me and the other members of the Order of the .. Oops! I almost let it
slip.  Every couple of years, we get together in our castle, drink a
couple of truckloads of Pepsi, whoop it up playing Pong, and amuse
ourselves by inventing a "new" language.  We shove some manuals and a
delivery medium into a box, and let the marketing people have at it.

If you promise not to tell anyone, I can give you some sneak previews of
some languages that we'll be releasing soon:

"RaceHorse" - It's fast.  Really, it's fast.  It comes with blinders so
that you can ignore the other languages (also invented by us, of course),
that claim to be as fast.  RaceHorse replaces an earlier, similar
language, which we have retired, called "Stud".  Did I mention it's fast?

"Faith" - It's better, lots better than those other languages.  They're
simply _not as good_.  We don't have any benchmarks to prove it, but at
least in the demo, it turns procedural code into OO code.  Earplugs
included, so you can ignore the criticism that the OO code doesn't
actually do anything.  We're planning to call next year's version "Visual
Faith" - you'll have to see it to believe it.

"Fancy" - This is the language for people who don't like to get their
hands dirty.  There's no work involved.  It's easy, it's new-age.  OK,
basically it's a demo.  Recommended for employees of very large
programming staffs.  The continually running demo alternately displays
"compiling" or "debugging" on the screen.  For those who work in a
cubicle, the "Professional Developers" edition (an additional $495)
parrots the sound of rapid typing on a keyboard.  We're hoping to develop
an ANSI standard for the language.

"B-" - the successor to C++.  All vestiges of C have been removed.
Actually, the inventor of B- recently died, and the Grand High Council of
the Order of the ...(Yikes! almost did it again), hasn't decided who will
inherit the rights to the language, or even if the rights are protected.
There currently rages a debate within the Order, whether the announcement
of access to the language should be a private (within the Order only) or
public declaration.  So far the dispute appears to be virtually
unresolvable.

"Simple" - the successor to Basic.  Anyone can use it to make working
programs, quickly and easily.  Optionally delivered with nose plugs for
programmers who think it smells bad.

"ZealTalk" - The successor to all current versions of Smalltalk.  
There are no changes in the language, since Smalltalk devotees insist
that the language is perfect in all ways - faster than RaceHorse
(Smalltalk people have interesting benchmarks), better than Faith (can't
be proved, though), and nowhere nearly as smelly as B- and Simple.

Gotta run - the marketing people want me to pick up some prayer rugs on
the way to the castle.

Bob Cram
Knight of the Order of the (Censored)
Argyles crossed over Keds, Garbage Collectors Rampant, Eyelid pendulant,
Smoke obscuring, Snake Oil flowing, Holy Grail a-Chasing.



Tue, 06 May 1997 15:39:32 GMT  
 
 [ 5 post ] 

 Relevant Pages 

1. C++/Smalltalk differences and keys to learning C++

2. What are the differences between C++ and smalltalk?

3. What difference(s) am I missing? (Tcl_Eval) (Tcl_EvalFile)

4. The difference between smalltalk/v and smalltalk/v

5. REQUEST: Differences between Gnu Smalltalk & Smalltalk-80

6. Multiprocessing (Differences between Smalltalk/V and Smalltalk/V286)

7. C++ question for Smalltalk/C++ programmers

8. C++ or (Smalltalk and C++)?

9. C++ or (Smalltalk and C++)?

10. C++ or (Smalltalk and C++)? Experience added

11. Help: major differences between Eiffel & C++

12. Difference between ADA and c++

 

 
Powered by phpBB® Forum Software