Newsgroups: comp.lang.smalltalk
Path: cantaloupe.srv.cs.cmu.edu!bb3.andrew.cmu.edu!nntp.sei.cmu.edu!cis.ohio-state.edu!math.ohio-state.edu!howland.reston.ans.net!torn!nott!cunews!dbuck
From: dbuck@superior.carleton.ca (Dave Buck)
Subject: Re: Why use Smalltalk as the primary development language ...
X-Nntp-Posting-Host: superior.carleton.ca
Message-ID: <DK6DM4.8As@cunews.carleton.ca>
Sender: news@cunews.carleton.ca (News Administrator)
Organization: Carleton University, Ottawa, Canada
References: <9512181732.AA07788@fred.nfuel.com> <4bkl22$dti@news2.ios.com> <DK58qu.CD6@cunews.carleton.ca> <4bmucv$p6j@news2.ios.com>
Date: Tue, 26 Dec 1995 03:56:28 GMT
Lines: 73

In article <4bmucv$p6j@news2.ios.com>, vlad <vlad@gramercy.ios.com> wrote:
>dbuck@superior.carleton.ca (Dave Buck) wrote:
>
>>In article <4bkl22$dti@news2.ios.com>, vlad <vlad@gramercy.ios.com> wrote:
>> >According to me the Smalltalk is an application development tool not a
>> >language. I simply don't know how to prove it because nobody told me
>> >how to recognize a programming language. 
>> >
>> >Is Windows SDK with the all APIs a programming language? No!
>> >Is Smalltalk a SDK? Yes!
>
>>Languages have constructs such as variables, conditions, looping
>>constructs, procedures/functions, and data representations along with
>>a syntax for describing the desired functionality.  Smalltalk has all
>>of these.  the Windows SDK with all the API's doesn't.
>
>Thanks, it helped. 
>But if I am not wrong, Smalltalk has no loops. It uses recursion...

Smalltalk doesn't need to use recursion.  You can write loops in
several different ways:

1000 timesRepeat: [Transcript show: 'hello';cr]
1 to: 1000 do: [:i | Transcript show: i printString; cr]
#(1 2 3) do: [:i | Transcript show: i printString; cr]
#(1 2 3) select: [:i | i > 2]

There are many others.  In fact, Smalltalk has much richer looping
constructs than most other languages.

>But I agree with you. Smalltalk maybe is a language, but modularity is
>very bad. 

Actually, its modularity is quite good.  Envy Developer helps a lot to
make things more packageable and a product called Runtime Packager is
an excellent utility to create executables without the overhead of
classes you don't need.

>I know, we have classes. But you cannot uses them "INDEPENDENTLY". 

What do you mean by "independently"?  Granted, there are some base
classes which you cannot do without in most reasonable Smalltalk
systems, but the same applies to almost any other language.  Utilities
like Runtime Packager (like I mentioned) can get rid of classes you
don't need.

>Also, I can develop my objects in C/C++ and make them work together
>with whatever version of Smalltalk. 

This is not exactly easy because of the difference in philosophy
between C++ objects and Smalltalk objects.  In general, an object
that's well designed for one environment is not well designed for the
other.

>Try to distribute your object (written in Smalltalk) to C++
>programmers. Will they be able to use them in their C++ programs?

HP Distributed Smalltalk provides this facility by providing a CORBA
interface between Smalltalk and C++.  Again, though, the design
philosophies between Smalltalk and C++ can make it difficult to share
the same objects exactly.

David Buck
dbuck@ccs.carleton.ca

_________________________________
| David K. Buck                 |
| dbuck@ccs.carleton.ca         |
| The Object People             |
|_______________________________|



