The Day Computers Died: 20 Years Later, a Reflection on Programming Languages

  • Thread starter oldtobor
  • Start date
  • Tags
    Computers
In summary: Then you really start to appreciate the power that OO brings to the table. Until then, it's just a pretty language.In summary, Pascal and Basic were the next "big things" in programming, and they slowly started to lose popularity to more modern languages. programmers started to run out of new ideas, and so they invented a new language, C++. This is when computers started to "die."
  • #1
oldtobor
132
0
They say that to understand the history of something, you can't be too close to the events. So I am referring to something that happened about 20 years ago, namely when pascal and turbo pascal started to become popular and started to substitute basic as the programming language for home/PC computers. That is the day computers died. Pascal was the next "big thing" and cool and also "harder" so it started to pick up. Basic slowly started to become out of style. But the question I asked then and I still ask today is "why say an old thing in a new way ?" I also guess that is when programmers started running out of ideas. When you run out of new ideas invent a new programming lanuguage.

I started programming microprocessors in summer 1978 using the SCAMP National semiconductors development kit in machine language (aka load accumulator with 0 was C4, 00). Then I learned basic and used it until about 1988. I then went down the road of learning all the sequence of languages: turbo pascal; turbo C; unix systems ksh; awk; perl; javascript; visual basic; java; c++; delphi; php; python.
After all these years I have come to the conclusion that we would have been all better off just sticking to basic and maybe improving it's compiler and creating a possibly huge library of reusable programs and modules. If all those man years used for just "java" would have been used to really program, we would be light years ahead of where we are now.

Do you want an example ? Try to write this simple basic program in Java:

FOR i = 1 TO 5
a$ = ""
WHILE a$ = "": a$ = INKEY$: WEND
PRINT a$
IF a$ = "w" THEN SOUND 150, 2
IF a$ = "z" THEN SOUND 550, 2
NEXT

Hey don't forget we are in the year 2005 and we have all the great Object oriented java crap available!
 
Computer science news on Phys.org
  • #2
Great. And that piece of code will power our nuclear generators?

What? You'll need to write something more complex? Wait, maybe more sophisticated functions than keyboard beepers might require a more sophisticated language. Try programming an autopilot for a commerical airliner using Basic. Don't forget, it's real time, and zero fault tolerance.



Or, you could have a keyboard beeper be the highlight of your personal computing world...
 
  • #3
Also, any good programmer has a large toolkit of languages, technologies, and skills. You use the one that is best for each situation, and many complex situations require you to use more than one on a given problem.

The mere fact that standard Basic doesn't have subroutines should be enough to falsify your position.
 
  • #4
In 1985 we already had a set of excellent high powered languages for finance and industrial use. Those languages were and still are:

1) COBOL
2) FORTRAN
3) ADA
4) PL/1
5) C
6) ASSEMBLY

Now what I think is that we really didn't need to go on and develop C++, Java and others. Maybe the best of the more recent is perl. Javascript could have been made very similar to basic. Windows itself was mostly created with a slightly modified C language. If all the effort for java and object oriented programming was dedicated to perfecting basic and the various compilers of the above languages, maybe we would be much more ahead by now. It just intrigues me to see how much money was dedicated to java when we mostly had everything already.
 
  • #5
oldtobor said:
In 1985 we already had a set of excellent high powered languages for finance and industrial use. Those languages were and still are:

1) COBOL
2) FORTRAN
3) ADA
4) PL/1
5) C
6) ASSEMBLY

Now what I think is that we really didn't need to go on and develop C++, Java and others. Maybe the best of the more recent is perl. Javascript could have been made very similar to basic. Windows itself was mostly created with a slightly modified C language. If all the effort for java and object oriented programming was dedicated to perfecting basic and the various compilers of the above languages, maybe we would be much more ahead by now. It just intrigues me to see how much money was dedicated to java when we mostly had everything already.

You're missing a point. Java is portable. So is BASIC, but Java is also compiled bytecode, therefore, much, much faster. Where you see Java's beauty (as was in my case) is when you're working on, say 5 different platforms. You quickly see how much of a pain C becomes (type conversions). With Java, that's all standardized on every platform to some extent, but much more so than C.

There's really no way to see how nice object orientation is until you're writing a huge program with lots of functions. It becomes a lot more easier to understand, and thus, easier on the eyes.

I'd also like to see someone debug 10,000 lines of BASIC code *cringes*. I can hear it now, "Boys, looks like that line 701 is getting us. What is it? It's a GOTO statement boss. Oh, well, where does it go to?." Talk about iteration..
 
Last edited:
  • #6
oldtobor said:
In 1985 we already had a set of excellent high powered languages for finance and industrial use. Those languages were and still are:

1) COBOL
2) FORTRAN
3) ADA
4) PL/1
5) C
6) ASSEMBLY

Now what I think is that we really didn't need to go on and develop C++, Java and others. Maybe the best of the more recent is perl. Javascript could have been made very similar to basic. Windows itself was mostly created with a slightly modified C language. If all the effort for java and object oriented programming was dedicated to perfecting basic and the various compilers of the above languages, maybe we would be much more ahead by now. It just intrigues me to see how much money was dedicated to java when we mostly had everything already.

Didn't need perl?

You've never tried shift through 5000 text files of data each roughly 50 pages long, have you?
 
  • #7
oldtobor said:
In 1985 we already had a set of excellent high powered languages for finance and industrial use. Those languages were and still are:

1) COBOL
2) FORTRAN
3) ADA
4) PL/1
5) C
6) ASSEMBLY

Now what I think is that we really didn't need to go on and develop C++, Java and others. Maybe the best of the more recent is perl. Javascript could have been made very similar to basic. Windows itself was mostly created with a slightly modified C language. If all the effort for java and object oriented programming was dedicated to perfecting basic and the various compilers of the above languages, maybe we would be much more ahead by now. It just intrigues me to see how much money was dedicated to java when we mostly had everything already.

Do you actually have any useful ideas for how to perfect those tools, or are you just complaining because the computer industry is moving on from tools you know how to use and you're unable to adapt to change?

Your complaint isn't that uncommon; it is something of a waste that so many new programming languages are developed all the time. But the problem is that most of the time the new languages are just half-assed reimplementations of ideas that have already been done a million times over.

But that doesn't apply in your case. Most of the languages you seem to idolize, just plain suck. They're missing a lot of modern features that enable a competent programmer to write programs with much less effort. They were designed for a time when programmer time was cheaper than computer time. And they were designed at a time when we knew much less about how to build good languages.

Not that we should completely ignore the past; assembly language, fortran and C still have their uses. But there's only so much we can do with those languages. Pumping more money and time into these languages isn't going to be able to produce a dramatic improvement to them.
 
  • #8
graphic7 said:
You're missing a point. Java is portable. So is BASIC, but Java is also compiled bytecode, therefore, much, much faster. Where you see Java's beauty (as was in my case) is when you're working on, say 5 different platforms. You quickly see how much of a pain C becomes (type conversions). With Java, that's all standardized on every platform to some extent, but much more so than C.

You just substituted the "native compiler" with "jvm machines" which are different for every platform. There is really nothing standard about having to install a different jvm for every platform. Why not just install a different native compiler for a single lanugauge ?

Why always change the "way you say the same thing ?" . Why introduce yet another java like language like "C sharp" ? Because it is a "market" thing. Companies like to own languages and then shove it down everyones throat. People like complicated languages and then a whole new host of services for a new language bring about other activity. It is really mostly a social-economical choice and not at all a technical choice.

An artificial intelligence researcher once said that you could study a field in AI for all your life and then after many years realize that your approach was completely wrong. Something like this is happening in IT.
 
  • #9
nameta9 said:
You just substituted the "native compiler" with "jvm machines" which are different for every platform. There is really nothing standard about having to install a different jvm for every platform. Why not just install a different native compiler for a single lanugauge ?

That still wouldn't get rid of type conversions now would it?
 
  • #10
I wouldn't be so sure. Who would of thought that a unix dialect (namely linux) would have become the greate NEW operating system of the year 2000s back in 1985 ? Aside from the fact that Basic is still around in a lot of variants, I wouldn't be suprised if in 10, 20 years after going insane after Java and OO in general an LBasic (like linux basic) became the next great NEW programming language. By then we would have all learned our lessons to KEEP THINGS SIMPLE!
 
  • #11
Compiler Compatibility...


How exacly did Java solve the problem with type conversions?
 
Last edited:
  • #12
Why didn't that happen to unix ? Why after 35 years we still have unix and shell as linux ? This goes to show that not necessarily you must invent "new" languages. Hell, it didn't happen with operating systems ...
 
  • #13

How exacly did Java solve the problem with type conversions?

Type conversions on Java are standardized across all the platforms. Langauges like C and C++ let the compiler specify the size of an int, for instance, where as Java specifies all that. I know I can take an application that I've written in Linux/Windows/Solaris and take it over to my Octane that runs IRIX, and I'll get the same data output.

With a language like C, I'd have to have a configure script/ifdefs that would automatically do the type conversions based on the compiler's specifications, and then do a separate build for each platform that I'm working with. This isn't hard or anything, really, but it's a step that I don't have to take with Java.

Why didn't that happen to unix ? Why after 35 years we still have unix and shell as linux ? This goes to show that not necessarily you must invent "new" languages. Hell, it didn't happen with operating systems ...

Are you saying Linux is a shell? You're contradicting yourself, also. A few posts up you were downing on Windows (coded in C++), now you're saying that none of the operating systems available today are bloated, (insert derogatory word here), etc. ?
 
Last edited:
  • #14
Whatever. It won't change at least not in this era. What I wanted to say is "idealistically" if back in 1985 people decided to improve basic and it's compilers, add some extensions etc and concentrate on a top notch library of functions, problems and solutions MAYBE we would be better off today. I don't know.

Software gets more and more bloated. Java to me seems really quite complex for most applications. Maybe applications should be made from a group of simple modules but not with all the OO overhead and fluff. A simlpe top notch BASIC module could easily do, and then string a few thousand of them together. I don't know. I know that IT isn't going to improve if it continues on this track.

Java has always seemed more like an extreme exercise in syntax and fluff more than anything else. And C++ was already THERE. WHY INVENT JAVA IF WE ALREADY HAD C++ THAT HAD EVERYTHING WE NEEDED? I don't know. I may even be dead wrong.
 
  • #15
Compiler Competition...



I started with the Basic source code sample, then translated it into a MSVB source code variant, then translated it with a MSVB to Java convertor and produced the following results:

MSVB source code variant:
Code:
Private Sub Option1_KeyPress(KeyAscii As Integer)

Cls
For I = 1 To 5
A$ = ""
A$ = Chr(KeyAscii)
Print A$
If A$ = "w" Then Beep
If A$ = "z" Then Beep
Next I

End Sub
MSVB source code to Java source code convertor results:
Code:
import java.awt.*;
import java.util.*;
import java.applet.Applet;
import java.net.*;

public class Form1 extends Applet {
  CheckboxGroup group = new CheckboxGroup(); //used or reserved for radio buttons
  Checkbox Option1 = new Checkbox( "Option1", group, false);


  float d_x;
  float d_y;
  protected void addPosition( Component c,
    int x,
    int y, 
    int width,
    int height ){
    add(c);
    x= (int)(x * d_x);
    y= (int)(y * d_y);
    width =  (int)(width  * d_x);
    height = (int)(height * d_y);
    c.reshape(x,y, width, height);
  } //end addPosition

  public void init() {
    setLayout(null);
    addNotify();
    setFont(new Font ("Dialog", Font.PLAIN, 8));
    Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
    d_x = (float)(d.width) / 800;
    d_y = (float)(d.height)/ 600;
    resize ((int)(0 * d_x), (int)(0 * d_y) );
    setForeground( new Color (192, 0, 192));
    setBackground( new Color (14, 0, 0));

    addPosition( Option1 , 0,0,8,12);

    Option1.setFont( new Font ( "Dialog", Font.PLAIN, 8));

  } // end init



  public void Option1_KeyPress(Object arg){   
    
      }


  public boolean action(Event evt, Object arg )  {

    return true;
  } // end action

   public boolean handleEvent(Event evt) { 
     if (evt.id == Event.WINDOW_DESTROY ) {
       this.hide();
       System.exit(0);
       //  Remove System.exit(0); from all but the base window
       return false;
     };
    if (evt.target == Option1 && evt.id == Event.KEY_PRESS) {
        Option1_KeyPress(evt);
    }
    return super.handleEvent(evt);
  }  // end handle event


}   //end class

If anyone has a good Java compiler, and is willing to compile this source code, it would be interesting to examine how close these two compilers really are.

 
Last edited:
  • #16
oldtobor said:
Whatever. It won't change at least not in this era. What I wanted to say is "idealistically" if back in 1985 people decided to improve basic and it's compilers, add some extensions etc and concentrate on a top notch library of functions, problems and solutions MAYBE we would be better off today. I don't know.

Software gets more and more bloated. Java to me seems really quite complex for most applications. Maybe applications should be made from a group of simple modules but not with all the OO overhead and fluff. A simlpe top notch BASIC module could easily do, and then string a few thousand of them together. I don't know. I know that IT isn't going to improve if it continues on this track.

Java has always seemed more like an extreme exercise in syntax and fluff more than anything else. And C++ was already THERE. WHY INVENT JAVA IF WE ALREADY HAD C++ THAT HAD EVERYTHING WE NEEDED? I don't know. I may even be dead wrong.

I'm assuming your Java skills are weak at most. You've obviously never done anything with Java that would include Swing and SWT. Once you try to write an app that makes use of one of them, attempt to do the same with C and GTK+ for instance, then you can tell me Java is a complicated language.

Better yet, I'd like to see you write a graphical Cobol app, or a graphical Pascal app? Object orientation makes GUI programming so much easier. I suppose your next defense will be that we should all be on WYSE terminals. In that case, feel free to exit out of your graphical web browser and head on over to http://lynx.browser.org/ .
 
Last edited:
  • #17
I would choose Delphi or C++ builder for windows programs where you get that very good GUI builder where you just drag and drop and code the events. As an equally good choice I would choose Visual Basic which is just as easy.

I did some experiments with AWT when it came out a few years ago and it sucked. I did some experiments with Swing recently but there are always some widgets missing or something else that has to configured or installed etc. By the way I tried to find a good GUI builder for Java, but didn't find a relatively small (not 100 MB, possibly free) one, any suggestions ?

Anyways windows GUI programs are much better off done with Borlands products or Visual Basic. Orion, where does your java program do the SOUND freq, duration instruction ? I think that will be hard in Java...
 
Last edited:
  • #18
The reason there are many languages is because there are many kinds of problems. Let's see... what are some drawbacks of Basic?

1) It is interpreted. In other words, it's slow.
2) It has no built in string-manipulation operations.
3) It has no built-in associative array, making data structures difficult.
4) It has a poorly-developed subroutine model.
5) It lacks object-orientation, and thus does not support patterns.

Your Basic keyboard beeper program is certainly small -- but does that mean that Basic is good? How about a counter-example: I'll give you a trivial program in Perl. This program reads whatever file(s) you pass it on the command-line, counts the number of times each unique line is read, and then prints out the top ten most frequent lines, in decreasing order.

PHP:
#!/usr/bin/perl

while (<>) { $count{$_}++; }
print join "", (sort { $count{$b} <=> $count{$a} } keys %count)[0..9];

Go ahead, oldtobor, show us the power of Basic by writing the equivalent program.

Also, you seem to be missing another huge part of the argument: modern programs are not designed by a single person working on a single workstation. They are designed by teams of hundreds, in some cases, all working simultaneously. Languages like Basic are incredibly hard to maintain, refactor, and modify. There are side-effects all over the place.

I generally agree that Java is bogged down by the precision of its own syntax, but what on Earth have you got against Python? Python might as well be "the next Basic." It's interpreted, runs anywhere, has loads of packages, has built-in object orientation and string manipulation features, and its syntax is even cleaner and more direct than Basic's. What's not to love?

- Warren
 
Last edited:
  • #19
Yes I absolutely agree! and perl is one of the best that came out and I actually use it ALOT! I was thinking of extensions to BASIC that would have covered exactly those things like regular expressions and array handling etc.

But you can't see in the future so in 1985 no one thought about it. Actually Python is the only language that let's you solve that sound program in a few lines (more than basic) but you have to introduce Tkinter to do it.

Yes, I agree that in large projects things get complicated, but java seems to add complications that really don't make much sense.
 
  • #20
Okay, so we're basically in agreement oldtobor.

We both agree that each language has strength and weaknesses, and that Java is, for many purposes, over-complicated.

We also agree that Basic, in its 1985 incarnation, was woefully inadequate for a large number of problems that are better solved by more contemporary languages.

This thread, then, is moot. Let's all just use Python, and get on with life.

- Warren
 
  • #21
Do you mean this ?

$c{$_}++for<>;
print join"",(sort{$c{$b}<=>$c{$a}}keys%c)[0..9];


Yeah, try to do that with Java...

OO and java == When a bad idea is a bad idea
 
  • #22
nameta9 said:
Do you mean this ?

$c{$_}++for<>;
print join"",(sort{$c{$b}<=>$c{$a}}keys%c)[0..9];


Yeah, try to do that with Java...

OO and java == When a bad idea is a bad idea

Of course, code that looks like that is an even worse idea...
 

Related to The Day Computers Died: 20 Years Later, a Reflection on Programming Languages

1. How has programming language evolved in the past 20 years?

In the past 20 years, programming language has evolved significantly with the development of new languages and updates to existing ones. There has been a shift towards more user-friendly and versatile languages, as well as an emphasis on efficiency and speed.

2. What caused "The Day Computers Died" and what were the consequences?

The Day Computers Died was caused by a widespread Y2K bug, which happened when computers were unable to interpret the year 2000 correctly due to the use of 2-digit date formats. This led to various system failures and disruptions, causing significant economic and societal consequences.

3. How have programming languages adapted to prevent future disasters like "The Day Computers Died"?

Since "The Day Computers Died", programming languages have implemented more rigorous testing and debugging processes, as well as the use of 4-digit year formats to avoid similar issues. There has also been a greater emphasis on backward compatibility and the development of more secure coding practices.

4. What role do programming languages play in our daily lives?

Programming languages play a crucial role in our daily lives, as they are used to develop and maintain various technological devices and systems. From smartphones and computers to transportation and healthcare systems, programming languages are essential in creating and maintaining the software that powers these technologies.

5. What can we expect from programming languages in the future?

In the future, we can expect programming languages to continue to evolve and adapt to new technologies and demands. There may be a further shift towards more intuitive and AI-driven languages, as well as an increased focus on cybersecurity and data protection. Additionally, there may be a continued effort towards making programming languages more accessible to a wider audience.

Similar threads

  • Computing and Technology
2
Replies
44
Views
3K
  • Computing and Technology
Replies
1
Views
1K
  • STEM Academic Advising
Replies
12
Views
1K
  • Computing and Technology
Replies
2
Views
1K
  • Programming and Computer Science
Replies
15
Views
1K
  • Programming and Computer Science
Replies
11
Views
1K
  • Programming and Computer Science
12
Replies
397
Views
14K
Replies
4
Views
868
  • Programming and Computer Science
Replies
16
Views
1K
  • Set Theory, Logic, Probability, Statistics
2
Replies
40
Views
6K
Back
Top