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