[comp.edu] sys & lang standardization?

hp0p+@andrew.cmu.edu (Hokkun Pang) (11/16/90)

I have browsed thru all net.comp.* bboards, this seems more appropriate.
---

Will we ever get to the stage that operating system and programming language
are well stablelized(am I dreaming?). It seems to me that every month or so,
there's a new (or major upgrade to an existing) operating system or programming
language. So much energy are wasted (can I say this?) in learning new features
and rewiting old codes. Still an undergrad, I have used the following languages
already: Ada, Assembly, Basic, C, Cobol, Comal, Forth, Fortran, ML, Lisp, ML,
Pascal, Prolog, Scheme. And all of them are still widely used. How many more
do I need to learn? Do we know enough to know which direction(s) to go yet?
How long do we need to wait?

PS, don't flame me, I'm just an undergrad.

bloom-debbie@cs.yale.edu (Debbie Bloom) (11/17/90)

In article <obEuQP200VAC01XuVn@andrew.cmu.edu> hp0p+@andrew.cmu.edu (Hokkun Pang) writes:
>I have browsed thru all net.comp.* bboards, this seems more appropriate.
>---
>
>Will we ever get to the stage that operating system and programming language
>are well stablelized(am I dreaming?). It seems to me that every month or so,
>there's a new (or major upgrade to an existing) operating system or programming
>language. So much energy are wasted (can I say this?) in learning new features
>and rewiting old codes. Still an undergrad, I have used the following languages
>already: Ada, Assembly, Basic, C, Cobol, Comal, Forth, Fortran, ML, Lisp, ML,
>Pascal, Prolog, Scheme. And all of them are still widely used. How many more
>do I need to learn? Do we know enough to know which direction(s) to go yet?
>How long do we need to wait?
>
>PS, don't flame me, I'm just an undergrad.

Off the top of my head, I can think of two main reasons why there are so
many languages out there (still being used and being dreamed up anew):

1. There is a great deal of code out there written in old languages
(e.g., Cobol, Fortran) that would take an incredible amount of time to
rewrite in a new language.  People don't want to spend this time (it is
not cost-efficient in many areas), so the old code gets reused and updated
in the old language.

2. Different languages exist for different uses.  So long as computers
are used for so many widespread applications, we will need languages
geared toward those applications.

-Debbie

kend@data.UUCP (Ken Dickey) (11/17/90)

hp0p+@andrew.cmu.edu (Hokkun Pang) writes:
>Will we ever get to the stage that operating system and programming language
>are well stablelized(am I dreaming?). It seems to me that every month or so,
>there's a new (or major upgrade to an existing) operating system or programming
>language. So much energy are wasted (can I say this?) in learning new features
>and rewiting old codes. 

I don't think that you will see standardization as long as hardware
and software implementation technologies keep changing.  The basic
reason is that both the requirements and the cost equations change.
If you look at personal computers, we have gone from 4-8K -> 64K ->
640K -> 6+MB and, by extrapolation, -> 640MB.  During this time we
have gone from ttys and "glass ttys" to windowed displays.  Major
changes have taken place to use the additional resource (ram,
blitters, etc.) in terms of bitmaps, network buffers, etc.  Soon the
challanges will be interactive video and voice recognition, etc.  What
has happened is that new capabilities are taking up the added storage,
communication, and processing power.  This has meant the approach of
computers used by mere mortals (as opposed to us CS nerds, who are
merely mortal 8^) as user interfaces evolve.

The rays of hope I see is that interoperability of computers over
heterogenuous networks will bring some commonality.  Also, it still
seems that hardware technologies are changing much faster than
software technologies.  This means that to protect investment in
developing software, software must be written in a way which is
abstract enough to allow it to outlive many hardware technologies.  In
addition, it is adviseable to use software languages which have
trivial syntax and formal foundations as we can then use
source->source transformations to migrate working software to newer
software technologies as our models of computation change and clarify.
All of this is driven by basic economics.

My suggestion is to watch sw implementation technologies that have the
above properties, e.g. Scheme & ML, etc.


-Ken Dickey				kend@data.uucp
[Yes there will always be MVS/COBOL/FORTRAN, and Unix/C, but do you
really want to work in these environments?  1/2 8^]

raja@copper.ucs.indiana.edu (Raja Sooriamurthi) (11/17/90)

In article <obEuQP200VAC01XuVn@andrew.cmu.edu> hp0p+@andrew.cmu.edu (Hokkun Pang) writes:
>I have browsed thru all net.comp.* bboards, this seems more appropriate.
>---
>
>Will we ever get to the stage that operating system and programming language
>are well stablelized(am I dreaming?). It seems to me that every month or so,
>there's a new (or major upgrade to an existing) operating system or programming
>language. So much energy are wasted (can I say this?) in learning new features
>and rewiting old codes. Still an undergrad, I have used the following languages
>already: Ada, Assembly, Basic, C, Cobol, Comal, Forth, Fortran, ML, Lisp, ML,
>Pascal, Prolog, Scheme. And all of them are still widely used. How many more
>do I need to learn? Do we know enough to know which direction(s) to go yet?
>How long do we need to wait?
>
>PS, don't flame me, I'm just an undergrad.

Would you be satisfied in still driving a Ford model T? As advances in
engine design, aerodynamics, electronics etc came about newer and
newer cars were produced; some meant for racing some meant to take the
family shopping.

So is the case with any other engineering displine inluding
programming. People have constantly been finding newer and better
techniques to express themselves leading to the myriad languages we
have today. I do agree that keeping abreast is difficult but that
difficulty shouldn't be a cause to stop this evolutionary process.

Coming back to your question,

>Will we ever get to the stage that operating system and programming language
>are well stablelized(am I dreaming?). 

I would say no and further add that, that is not a goal we should
strive for.  International standardisation of established languages is
an attempt to control this complexity and that is the proper approach.
But trying to 'stabilize' programming languages is an attempt to
stifle one's own creativity.


- Raja


---------------------------------------------------------------------------
Raja Sooriamurthi                              Computer Science Department
raja@copper.ucs.indiana.edu                       Indiana University
---------------------------------------------------------------------------

andy@xwkg.Icom.Com (Andrew H. Marrinson) (11/19/90)

raja@copper.ucs.indiana.edu (Raja Sooriamurthi) writes:


>Would you be satisfied in still driving a Ford model T? As advances in
>engine design, aerodynamics, electronics etc came about newer and
>newer cars were produced; some meant for racing some meant to take the
>family shopping.

Sure, cars have changed, but I think the previous poster was more
concerned about stability in his interface to the computer.  That
aspect of cars has been relatively stable for years.  Even the
adoption of something like automatic transmissions led to only fairly
small changes in how you use a car (if you switched :-).

Car analogies never worked from me.  In fact most analogies for
computers used in discussions like this fall apart rather quickly.
Computers seem to be fundamentally different from mundane things like
cars.  I think it is because they are fundamentally more mutable.
Cars don't have software.  (No, they don't.  You're thinking of
firmware.)  When the user of a computer is a programmer, he can
radically change the way he thinks about a machine by switching
programmer languages.  There is no analogy for that with a car.

I think because computers are by definition mutable, the ways in which
we use them will always be changing and expanding.  After all, you can
change them by expending only time, no raw materials required!  Maybe
a good analogy for the computer (rather than cars) is a lump of clay.
Asking with computer systems, languages, etc. is like asking if
sculptors will ever run out of things to do with a lump of clay.  I
think the answer to both questions is no.

--
		Andrew H. Marrinson
		Icom Systems, Inc.
		Wheeling, IL, USA
		(andy@icom.icom.com)

raja@copper.ucs.indiana.edu (Raja Sooriamurthi) (11/19/90)

andy@xwkg.Icom.Com (Andrew H. Marrinson) writes:

|raja@copper.ucs.indiana.edu (Raja Sooriamurthi) writes:


|>Would you be satisfied in still driving a Ford model T? As advances in
|>engine design, aerodynamics, electronics etc came about newer and
|>newer cars were produced; some meant for racing some meant to take the
|>family shopping.

|Sure, cars have changed, but I think the previous poster was more
|concerned about stability in his interface to the computer.  That
|aspect of cars has been relatively stable for years.  Even the
|adoption of something like automatic transmissions led to only fairly
|small changes in how you use a car (if you switched :-).

|Car analogies never worked from me.  In fact most analogies for
|computers used in discussions like this fall apart rather quickly.
|Computers seem to be fundamentally different from mundane things like
|cars.  I think it is because they are fundamentally more mutable.
|Cars don't have software.  (No, they don't.  You're thinking of
|firmware.)  When the user of a computer is a programmer, he can
|radically change the way he thinks about a machine by switching
|programmer languages.  There is no analogy for that with a car.

|I think because computers are by definition mutable, the ways in which
|we use them will always be changing and expanding.  After all, you can
|change them by expending only time, no raw materials required!  Maybe
|a good analogy for the computer (rather than cars) is a lump of clay.
|Asking with computer systems, languages, etc. is like asking if
|sculptors will ever run out of things to do with a lump of clay.  I
|think the answer to both questions is no.

The reason for my analogy seems to have been misunderstood. The
automobile example wasn't meant to compare learning to drive a new car
with learning a new programming language. It was meant to expose the
evolutionary nature of technology. As you had pointed out the
interface to driving has remained more or less the same. Agreed.
But that wasn't my point. The original poster enquired about the
stability of software systems. My reply was technology is never stable
(the car example) and trying to stabilize it is not the way to
progress.

- Raja

lmebgo@eds.ericsson.se (Bengt G{llmo, L M Ericsson, Stockholm, Sweden) (11/20/90)

In article <27318@cs.yale.edu>, bloom-debbie@cs.yale.edu (Debbie Bloom) writes:
> In article <obEuQP200VAC01XuVn@andrew.cmu.edu> hp0p+@andrew.cmu.edu 
(Hokkun Pang) writes:

>>.....  It seems to me that every month or so,
>>there's a new (or major upgrade to an existing) operating system or 
>>programming language. So much energy are wasted (can I say this?) in 
>>learning new features and rewiting old codes. Still an undergrad, I have 
>>used the following languages already: Ada, Assembly, Basic, C, Cobol, 
>>Comal, Forth, Fortran, ML, Lisp, ML, Pascal, Prolog, Scheme. And all of 
>>them are still widely used. How many more do I need to learn? Do we know 
>>enough to know which direction(s) to go yet? .....

> Off the top of my head, I can think of two main reasons why there are so
> many languages out there (still being used and being dreamed up anew):
> 
> 1. There is a great deal of code out there written in old languages
> (e.g., Cobol, Fortran) that would take an incredible amount of time to
> rewrite in a new language.  People don't want to spend this time (it is
> not cost-efficient in many areas), so the old code gets reused and updated
> in the old language.
> 
> 2. Different languages exist for different uses.  So long as computers
> are used for so many widespread applications, we will need languages
> geared toward those applications.

Other posters have pointed to the evolutionary character of technology,
with comparisons to cars etc.

Why doesn't anyone admit that there is an element of religion also, in the
history of programming languages? This started already in the 1950's
with the Algol/Fortran dispute, which clearly had religious overtones. The 
credo of the Algol believers was that a programming language should be 
designed to be self consistent, complete, and preferably aesthetically 
pleasing, whether it could be implemented efficiently on then available 
computers or not. In Fortran, efficient implementation and practical 
usefulness were the top priorities, and to hell with recursive procedures
(which were allowed in the Algol language but could not be implemented 
efficiently in those days, and were not implemented by most Algol compilers). 
The argument between Fortran and Algol was not resovable by rational means. 
It was easy enough to prove that programming in Fortran was more efficient 
than programming in Algol, in terms of compilation time and execution time, 
but that didn't impress the Algol believers one bit. As we know, Algol won 
in academia, Fortran in the rest of the world. Much later, when hardware 
and software technology had developed much further, Algol derivatives like 
Pascal and Ada started making inroads in industry. But, to this day, we have 
to live with Fortran, for Debbie's reason # 1.

True, many of the languages that have appeared between then and now have
been developed by someone who saw a functional deficiency in all existing
languages and therefore developed a new one. This is technological 
development. But, sometimes one can wonder if the improvement over earlier 
languages is large enough to justify the introduction of a new language,
and why do so many people seem to feel that their language is the
ONLY sensible language, superior to all others? That, again, is religion!

-----
Bengt Gallmo                        e-mail: lmebgo@eds.ericsson.se
Telefonaktiebolaget L M Ericsson    phone:  +46 8 719 1940
S-126 25 STOCKHOLM                  fax:    +46 8 719 3988
SWEDEN

Sometimes a majority only means that all the fools are on the same side!

gillies@m.cs.uiuc.edu (11/21/90)

Think of computer languages as similar to spoken languages.
Individual spoken languages cannot be standardized, but their
evolution can be slowed (through mechanisms like books on syntax,
dictionaries, etc).

Individual operating systems should not be standardized, since we are
still struggling to generalize them to new environments (networks,
real-time systems, parallel processing, etc).


If we don't do something soon about the complexity of programmer
interfaces to windowing systems, then this area will have to be
standardized since the complexity and learning necessary to take full
advantage of these interfaces is enormous.

bloom-debbie@cs.yale.edu (Debbie Bloom) (11/22/90)

In article <4200046@m.cs.uiuc.edu> gillies@m.cs.uiuc.edu writes:
>
>If we don't do something soon about the complexity of programmer
>interfaces to windowing systems, then this area will have to be
>standardized since the complexity and learning necessary to take full
>advantage of these interfaces is enormous.

You might enjoy some articles in this month's CACM which highlight reasons
to standardize graphical user interfaces.

(The articles on Women in CS are interesting too.)

-Debbie