Jump to content
IGNORED

50 Years of BASIC - TIME


Mr SQL

Recommended Posts

Ran accross this interesting article in TIME about the creation of BASIC and it's impact:

 

http://time.com/69316/basic/

 

Lots of fascinating stuff, the reaction from contemporary professionals accusing BASIC of mutilating minds is particularly interesting, equally so the response from the inventor of the language.

 

This was the BASIC Allen, Gates and Woz learned in High School in it's original form on Teletype time sharing systems; didn't seem to mutiliate their minds rather a catalyst for creativity :)

  • Like 2
Link to comment
Share on other sites

Microsoft has created a hobbyist/novice version of BASIC called, "Small Basic" that returns to the roots of BASIC as a beginner's language. It might be worth a look.

The name is terrible. Oh, I will have the minimal no-frills programming language please. Basic needs a name makeover. How about B++ or B* ?

 

I see though that small basic is targeted to children. Maybe the name makes sense to educators looking for a intro level language.

Edited by SIO2
Link to comment
Share on other sites

Microsoft has created a hobbyist/novice version of BASIC called, "Small Basic" that returns to the roots of BASIC as a beginner's language. It might be worth a look.

 

 

The name is terrible. Oh, I will have the minimal no-frills programming language please. Basic needs a name makeover. How about B++ or B* ?

 

I see though that small basic is targeted to children. Maybe the name makes sense to educators looking for a intro level language.

 

Yes Small BASIC is more like classic Dartmouth BASIC, simple and intuitive.

 

With the introduction of Visual BASIC.net, Microsoft morphed BASIC into C which cannot be used to rapidly teach concept; Dijkstra would have really liked it. I think this was initially done to equalize the development time for c# projects (Java clone) which otherwise would have not even been close.

 

Another reason for this is the mindset of Dijkstra and his colleagues who served as a very vocal platform for C programmers in the 90's who could not otherwise compete with Microsoft BASIC programmers.

 

Java really captialized on this mindset with it's "elegant structuring" designed to please academics but failing in production environments to the tune of destroying large technology companies (Corel, Sybase, etc) with an inadequate runtime. Sun Micro faking benchmarks didn't help.

 

Ironically enough Microsoft now has a powerful C that is really a simple and intuitive BASIC, essentially a much more powerful production BASIC, than their BASIC that is C.

 

Turning C into BASIC has the effect of getting programmers to use C who would otherwise not be interested while simultaneously defeating the Dijkstra mindset; anyone who uses it knows it's BASIC, yet no one can say it's not C :)

  • Like 1
Link to comment
Share on other sites

Awesome documentary on BASIC, the creators talk about their idea of creating a computer language that anyone could understand,
and about the programs students wrote with it.

 

Disscussion of the first BASIC games being all text based because they were written via Teletype begins at the 30 minute mark.

 

https://www.youtube.com/watch?v=WYPNjSoDrqw

 

  • Like 2
Link to comment
Share on other sites

Meh. BASIC, shmasic. Boo.

 

I think BASIC was good because of its ubiquity at a time during the late 1970s and early 1980s, but it was indeed an atrocity. There were always better ways in which you could learn to program a computer easily and also learn a measure of style and technique. In many ways, I agree with Dijkstra's views, though perhaps not exactly with the way he expressed them.

 

In my experience, there are two types of people who learned to program in BASIC: those who were damaged irrevocably by the language's laissez faire attention to proper flow control and technique; and those who were never comfortable with the lack of structure and limited expressiveness of the language, and who only used it because it was the only thing available.

 

The former group are those bashed by Dijkstra, those who never grew out of the language and who forever will remain tainted by its mark. The latter group includes those who used BASIC merely as a stepping stone in their skills formation and bailed out of the ship as soon as they were given the chance. They ended up picking up Assembly Language, PASCAL, ALGOL, SmallTalk, C, Java, or whatever; and went on to greater pastures.

 

It's this second set who remember BASIC fondly, as their first step into a greater world of computing. I'd argue (as I'm sure Dijkstra would) that their encounter with BASIC was merely an accident of history, and that any language with sufficient accessibility at the time would have done the job for them.

 

All that said, I have very fond memories of dabbling with BASIC when I was younger. I also have some very sharp memories of how it tried to wreck my brain, and how I had to actively fight against it. :)

 

-dZ.

 

 

P.S. Oh yeah, and Dijkstra was a dick.

Edited by DZ-Jay
  • Like 2
Link to comment
Share on other sites

Meh. BASIC, shmasic. Boo.

 

I think BASIC was good because of its ubiquity at a time during the late 1970s and early 1980s, but it was indeed an atrocity. There were always better ways in which you could learn to program a computer easily and also learn a measure of style and technique. In many ways, I agree with Dijkstra's views, though perhaps not exactly with the way he expressed them.

 

In my experience, there are two types of people who learned to program in BASIC: those who were damaged irrevocably by the language's laissez faire attention to proper flow control and technique; and those who were never comfortable with the lack of structure and limited expressiveness of the language, and who only used it because it was the only thing available.

 

The former group are those bashed by Dijkstra, those who never grew out of the language and who forever will remain tainted by its mark. The latter group includes those who used BASIC merely as a stepping stone in their skills formation and bailed out of the ship as soon as they were given the chance. They ended up picking up Assembly Language, PASCAL, ALGOL, SmallTalk, C, Java, or whatever; and went on to greater pastures.

 

It's this second set who remember BASIC fondly, as their first step into a greater world of computing. I'd argue (as I'm sure Dijkstra would) that their encounter with BASIC was merely an accident of history, and that any language with sufficient accessibility at the time would have done the job for them.

 

All that said, I have very fond memories of dabbling with BASIC when I was younger. I also have some very sharp memories of how it tried to wreck my brain, and how I had to actively fight against it. :)

 

-dZ.

 

 

P.S. Oh yeah, and Dijkstra was a dick.

 

dZ,

Excellent perspective! Great to have a programmer who feels strongly about BASIC join the conversation :)

 

BASIC has changed alot over the years but it's creators envisioned a language designed to be so simple to use that anyone could start writing programs right away. What better ways were available to learn to program a computer easily in the 70's and 80's? How about Today?

 

I've met a lot of advanced programmers who expressed similar sentiment but when asked to explain the most I could ever get out of them was that GOTO somehow taught them bad form and the code wasn't indented for being all left aligned.

 

What are your specific recollections of how BASIC tried to wreck your brain and how you fought against it?

  • Like 1
Link to comment
Share on other sites

And how is GOTO different than JMP?

 

It's not. However, that's not the point. The point is to organize ideas in a cohesive manner that make sense to the human and have the compiler translate them into something the machine understands. Humans, by nature, structure their thoughts and actions. Machines do not.

 

You must admit that something like this:

If (x = 0) Then
  Gosub PrintError()
Else
  Gosub DoSomething()
End If

'  Continue code here...

is easier for the human to follow and validate than this:

    If (x = 0) Then GoTo PrintError

Continue:
    DoSomething()

AvoidSomething:
    ' ...
    GoTo SkipPrintError
    


PrintError:
    ' ...
    GoTo AvoidSomething

SkipPrintError:
    ' Continue code here...
    ' ...

regardless of them being equivalent to the eyes of the CPU.

 

The existence of GoTo in BASIC allows for the second option. The problem is not the instruction itself, it's the fact that, lacking any proper guidance, GoTo is a very simple and easy -- if inelegant and error-prone -- solution to many problems; it leads to the so called "spaghetti code," which more than a machine or language limitation, is a style and ingrained learned behaviour.

 

-dZ.

Link to comment
Share on other sites

Spagetti code is a good argument but only applicable in the absence of sprawling code because that's already spagetti.

 

For me the first example is easier to follow because the second example sprawls accross many lines like C/modern Visual BASIC.

 

The first example sprawls too though; shortening it to classic BASIC syntax makes it more modular and thus even easier to follow:

 

if x=0 then gosub printerror else gosub dosomething

 

Sprawling gauges modularity which will always be a better measure of "spagetti code" because no matter how much we try we can't get away from code complexity; modularity lets us know if the design is more complex than it has to be.

 

BASIC is highly modular because very little code is needed, and modularity is always equal to the size of the largest module in a program:

 

Rewrite a 10 line BASIC program with many lines of C split up into 5 modules and the BASIC program is still more modular unless each of those C modules has less than 10 lines.

As far as being easier for people to understand, BASIC is designed to be similar to english sentences.

 

  • Like 1
Link to comment
Share on other sites

I think the key is in what you expect the language to do for you. BASIC was originally intended to show people who had no clue what computers were or worse who were intimidated by the machines that anyone could use a computer. In that sense BASIC is the software equivalent of an electronic breadboard which by the way, also often produces a result that looks like spaghetti.

 

Back when a computer cost nearly a half million dollars, ordinary people using a computer was a radical idea indeed.

 

Because BASIC was not originally intended as a tool for computer experts, I doubt that it will ever be widely used by people who truly understand what the hardware is doing.

 

Over time, BASIC has evolved and I think it will continue to be relevant because, most people do not need to know what the hardware is doing. They are only concerned with the input and the output and very little with the process.

 

Even if what survives is not recognisable as BASIC, I am confident the concept of allowing humans to communicate more naturally with computers will continue.

 

Some day I look forward to telling my computer what I want audibly. For example, I might say, create an arcade game template. Set the screen background to black. Add an asteroid image. Smaller, smaller. Duplicate image ten times at random locations. Move the images in random directions wrapping to opposite side when they hit the edge of the screen...

 

I think you get the idea where this is headed. It all started because of BASIC and in the end, there will be only BASIC.

  • Like 3
Link to comment
Share on other sites

Some day I look forward to telling my computer what I want audibly. For example, I might say, create an arcade game template. Set the screen background to black. Add an asteroid image. Smaller, smaller. Duplicate image ten times at random locations. Move the images in random directions wrapping to opposite side when they hit the edge of the screen...

I've been wishing for that since the 1980s. This is from my Inventions Worth Inventing page under the My World section:

 

We have A.I. game design agent programs that understand speech. If you want to make a game, all you have to do is describe it to the program conversationally and it will do all of the work. It will ask you questions and you will just supervise like you're George Lucas, giving thumbs up or thumbs down on various aspects of the game. Anyone can be their own game supervisor. It's like being in charge of a group of highly talented programmers, artists, and musicians.

  • Like 1
Link to comment
Share on other sites

How hypocritical it is of the industry to rag on BASIC users when the industry itself purposely bloats software with in-your-face online advertisements, meaningless features, layers upon layers of apis, resource hogging high level languages like java, and advertisements and layers upon layers of gobbledygook. Not to mention the ongoing failure to use the increasing parallelism built in to today's microprocessors. And buggy, ill-tested software that needs constant patching and updating.. Software that doesn't do its job properly until months after being released? No thank you.

 

You know.. For this industry to badmouth my favorite language (especially as a kid) and says we're ruined forever is just plain despicable. BASIC didn't mess me up irreparably. I understand X86 just fine thankyouverymuch!

 

As far as I'm concerned, this industry can shove itself up its own ass with a recursive algorithm..

  • Like 5
Link to comment
Share on other sites

Over time, BASIC has evolved and I think it will continue to be relevant because, most people do not need to know what the hardware is doing. They are only concerned with the input and the output and very little with the process.

 

And most people, especially modern-day developers working on modern-day hardware know nothing of what the hardware is doing. Or how badly they themselves are coding. All the inefficiencies and all the bloat.

 

Thank god moores law has come to an end because, now, further improvements in speed will require developers to buckle down and write better software. So much for non-BASIC programmers. Ha! What a goddamned farce.

  • Like 2
Link to comment
Share on other sites

You know.. For this industry to badmouth my favorite language (especially as a kid) and says we're ruined forever is just plain despicable. BASIC didn't mess me up irreparably. I understand X86 just fine thankyouverymuch!

 

I think the difference is not distinguishing between knowing better and accommodating more casual individuals. To my mind, if you're going to be a "real" programmer, then whether you started with BASIC or not is irrelevant. You still need to (and want to) learn a particular set of skills. Without BASIC, there are probably TONS on individuals who would have never even attempted to program, period (that might include me, although I'm not a "real" programmer). That's probably what's missing from the "high and mighty" perspective that so often targeted the BASIC language. BASIC was almost certainly a critical piece in helping early personal computers gain traction. For that alone it should be celebrated, no matter its structure.

  • Like 4
Link to comment
Share on other sites

How hypocritical it is of the industry to rag on BASIC users when the industry itself purposely bloats software with in-your-face online advertisements, meaningless features, layers upon layers of apis, resource hogging high level languages like java, and advertisements and layers upon layers of gobbledygook. Not to mention the ongoing failure to use the increasing parallelism built in to today's microprocessors. And buggy, ill-tested software that needs constant patching and updating.. Software that doesn't do its job properly until months after being released? No thank you.

 

You know.. For this industry to badmouth my favorite language (especially as a kid) and says we're ruined forever is just plain despicable. BASIC didn't mess me up irreparably. I understand X86 just fine thankyouverymuch!

 

As far as I'm concerned, this industry can shove itself up its own ass with a recursive algorithm..

 

 

And most people, especially modern-day developers working on modern-day hardware know nothing of what the hardware is doing. Or how badly they themselves are coding. All the inefficiencies and all the bloat.

 

Thank god moores law has come to an end because, now, further improvements in speed will require developers to buckle down and write better software. So much for non-BASIC programmers. Ha! What a goddamned farce.

 

All excellent points, modern program designs make it clear that modern programmers who never had a chance to program in BASIC missed out on it's unique higher level coding concept (lots of stuff in a few lines) as well as the low level concept to understand goto.

 

This article about returning BASIC to the curriculum has a lot of related ideas.

 

DZ-Jay, you talked about some other tools having been better for learning than BASIC, curious what you had in mind; here are some of my ideas:

 

I think LOGO may have been easier to learn initially but was limited, with BASIC you could keep exploring and learning to use what you had learned in new ways.

 

LOGO was similar to and a step up from Big Trek, which was even easier to learn and a step up from Mr Coffee. I think Mr Coffee was the easiest way to learn programming, but even more limited. I think Lite-Brite was the easiest way to learn pixel graphics design.

Link to comment
Share on other sites

  • 5 weeks later...

What I always found with basic was that as a programming introduction language it was good in that you could quite quickly see the flow of the program and get a grasp on what was needed to achieve the target. However what it was bad at was teaching good coding practices e.g. leading to code reuse and the underlying structures that were needed for larger programs. It worked well when taught in conjunction with one of the other languages (think it was Pascal I learned it with) but didn't really scale up for collaborative projects.

 

Microsoft, in my mind, bastardised the language when they went to visual basic. It allowed people to get something on the screen quickly without understanding anything about what was going on behind the curtain. This created a series of basic programmers that lacked the nous to actually apply the skills they had to anything outside the visual environment, and in turn led to the maligned reputation.

Link to comment
Share on other sites

Microsoft, in my mind, bastardised the language when they went to visual basic. It allowed people to get something on the screen quickly without understanding anything about what was going on behind the curtain. This created a series of basic programmers that lacked the nous to actually apply the skills they had to anything outside the visual environment, and in turn led to the maligned reputation.

 

It also led to countless "business applications" created by hopelessly clueless self-appointed "programmers," riddled with bugs, crazy logic, security holes, and every brain-dead code cliché ever invented.

 

I should know. I got stuck fixing them at every employer I went.

 

Like I said before, there are mainly two kinds of BASIC (and by extension, VisualBasic) programmer: Those who used it as a gateway into the wonderful world of computer programming, and those who view it as the best and easiest thing evah! The former group appreciates the simplicity and accessibility of BASIC, but jumped out to a different programming language as quickly as possible in order to go deeper into the art. While the latter group stays hopelessly on it and consider themselves "l33t c0drsz".

 

-dZ.

  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...