Stories
Slash Boxes
Comments

News for nerds, stuff that matters

Slashdot Log In

Log In

Create Account  |  Retrieve Password

BASIC Computer Language Turns 40

Posted by CmdrTaco on Thu Apr 29, 2004 02:45 PM
from the everybody's-training-wheels dept.
5 REM nam37 codes
10 PRINT "In 1963 two Dartmouth College math professors had a radical"
20 PRINT "idea - create a computer language muscular enough to harness"
30 PRINT "the power of the period's computers, yet simple enough that even"
40 PRINT "the school's janitors could use it."
50 END
+ -
story
This discussion has been archived. No new comments can be posted.
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More
Loading... please wait.
  • by squarefish (561836) on Thursday April 29 2004, @02:46PM (#9011100)
    GOTO 10
  • A Poem! (Score:5, Funny)

    by American AC in Paris (230456) * on Thursday April 29 2004, @02:47PM (#9011125) Homepage
    10 PRINT "This is a"
    20 PRINT "Haiku program"
    30 GOTO 10
    • Re:A Poem! (Score:5, Funny)

      by squidfood (149212) on Thursday April 29 2004, @03:30PM (#9011943)
      Problem finally solved!...

      10 GOTO 30
      20 REM ???
      30 PRINT "PROFIT!"

      • Re:A Poem! (Score:5, Informative)

        by mph (7675) <mph@freebsd.org> on Thursday April 29 2004, @02:58PM (#9011367)
        Mod parent down, a Haiku is 575 not 343 (is program 3 or 4? If 4 then 353, either way it's wrong)
        Mod yourself down. You forgot to pronounce the line numbers.
        • Re:A Poem! (Score:5, Funny)

          by Pieroxy (222434) on Thursday April 29 2004, @03:30PM (#9011947) Homepage
          On a slightly offtopic note, I think slashcode should allow us to mod down our own posts. I mean, when I'm trolling or flaming, I do it knowingly (most of the time at least). If I could already mod myself down, it would be beneficial so that the moderators are not disturbed by my post. They would save their mod points to mod up interesting content instead of modding down garbage.
      • Re:A Poem! (Score:5, Informative)

        by mlyle (148697) on Thursday April 29 2004, @02:59PM (#9011377)
        10 PRINT "This is a"
        20 PRINT "Haiku program"
        30 GOTO 10

        Ten print this is a (5)
        twen-ty print hai ku pro gram (7)
        thir-ty go to ten (5)
        • Re:A Poem! (Score:5, Interesting)

          by Chiasmus_ (171285) <ayatollah_hyperbole&yahoo,com> on Thursday April 29 2004, @03:19PM (#9011743) Journal
          Depends who you ask. Some think that in English, they should be 3-5-3 instead.

          No kidding. 17 syllables is a lot of room to maneuver in English... far, far less in Japanese.

          Ever try watching anime with both the English subtitle and the English dubbing turned on? A Japanese character will say something subtitled, e.g., "I'm cold" and they'll have to dub in something like, e.g., "I feel cold. It's cold in this room!" just to make the syllable count come close.
  • by Xel'Naga (673728) on Thursday April 29 2004, @02:47PM (#9011128)
    Obviously they failed, and so they created BASIC instead.
  • by mcx101 (724235) on Thursday April 29 2004, @02:47PM (#9011130)
    ... BASIC's much acclaimed successor, Visual Basic ;-)
  • yet simple enough that even the school's janitors could use it

    And that, children, is where the seeds of garbage collection were sowed.

    -Adam
  • by pirodude (54707) <andy@NOsPam.mbrez.com> on Thursday April 29 2004, @02:47PM (#9011138) Homepage
    10 PRINT "I hearby declare..."
    20 PRINT "that all comments in this story"
    30 PRINT "be typed in basic"
    40 END
  • School Janitors (Score:5, Insightful)

    by FlatBlack (771571) on Thursday April 29 2004, @02:47PM (#9011145)
    Ooo. Me Grandpa was a custodian and a very smart man. Watch your mouth. I work for a school and the janitors here are smart folks too. Most of all, they treat the lowly tech guy with respect in spite of his job and the fact that he lives in his parents basement and has never touched a girl (not a real girl anyway).
  • From the Jargon File (Score:5, Interesting)

    by idiot900 (166952) * on Thursday April 29 2004, @02:48PM (#9011153)
    Alright, I'll commence the BASIC-bashing by quoting from the Jargon File:


    BASIC

    [acronym, from Beginner's All-purpose Symbolic Instruction Code] n. A programming language, originally designed for Dartmouth's experimental timesharing system in the early 1960s, which has since become the leading cause of brain-damage in proto-hackers. This is another case (like Pascal) of the cascading lossage that happens when a language deliberately designed as an educational toy gets taken too seriously. A novice can write short BASIC programs (on the order of 10--20 lines) very easily; writing anything longer is (a) very painful, and (b) encourages bad habits that will make it harder to use more powerful languages well. This wouldn't be so bad if historical accidents hadn't made BASIC so common on low-end micros. As it is, it ruins thousands of potential wizards a year.
  • And then came VB (Score:5, Insightful)

    by John Starks (763249) on Thursday April 29 2004, @02:48PM (#9011164)
    Then VB came, and a language was created that was muscular enough to script Word macro viruses, but simple enough to enfuriate good programmers (I mean, really, no short circuit boolean operators? It makes me weep.)
  • by Kaa (21510) on Thursday April 29 2004, @02:48PM (#9011166) Homepage
    "Learning BASIC causes permanent brain damage." -- E.Dijkstra
  • Nostolgia (Score:5, Funny)

    by AKAImBatman (238306) <akaimbatman.gmail@com> on Thursday April 29 2004, @02:50PM (#9011205) Homepage Journal
    Ok, who remembers the Star Trek game from Dartmouth? You know, the one where you got to enter coordinates to move the ship to, then fire photons and phasers at Klingons? You could even consult the library computer! Failing that, who remembers coding the "trench" game?

    | * |
    | * |
    | * |
    | * |
    |* |
    | |
    | |
    *BOOM* YOU CRASHED. TRY AGAIN? [Y/N]

  • by zonix (592337) on Thursday April 29 2004, @02:56PM (#9011328) Homepage Journal

    "It is practically impossible to teach good programming style to students that have had prior exposure to BASIC; as potential programmers they are mentally mutilated beyond hope of regeneration." -- Professor Edsger Dijkstra

    Oh yeah and "Goto considered harmful" too, of course.

    RIP buddy. :-)

    z
    • by panurge (573432) on Thursday April 29 2004, @03:17PM (#9011722)
      Edsger Dijkstra is all too typical of the arrogant academics who gave rise to Shaw's comment "Those who can, do, those who can't, teach. He's like the academic fanboys who argue that PostgreSQL is a real RDBMS, MySQL can't really be used for anything serious.

      Don't believe it, kids. If your brain hasn't been ruined by age 7, you can unlearn any bad habits you pick up. His remark is of a stupidity level equal to "if you learn French at school, you won't be able to learn German."

      As a matter of fact, not only did I once inherit a program that someone had written - well - on a BBC micro that was a pleasure to maintain, I once myself had to write a quick and dirty assembler for an obscure microprocessor in HP Basic, having no other resources available in a crisis. Despite which I have never once had the urge to use labels in C.

    • Nothing stopping you from using structure in BASIC but your own mind.
  • by Lust (14189) on Thursday April 29 2004, @03:00PM (#9011401) Homepage
    Hey, stop using janitors as some lowest-common-denominator! Rather "The language was so simple even programmers could use it."

    The JLO
  • by Eberlin (570874) on Thursday April 29 2004, @03:00PM (#9011413) Homepage
    Ah yes, BASIC. I remember it distinctly as it's what I used for the longest time. Didn't have to declare your variables, had to contend with line numbers (that renum thing came in very handy), and of course the ever-popular GOTO statements.

    Eventually I evolved onto qbasic with its functions and subs and (gasp) no line numbers! Then there's VB and VBA. The most fun I've had with those are the shell calls.

    On machines that are so locked down that you can't even traverse directories let alone get a shell prompt, you run your form of BASIC, and do basic shells through it or even shell to cmd.exe or command.com -- at one point, I had a really lamed out, simple, featureless, just for fun version of netcat that executed shell commands, piped it to a text file, and had the text file's contents sent through the network. (this with VB's socket stuff). If nothing else, it was a good way to make fake Novell login prompts in the mid 90's. ;-)

    In the end, not a lot of people will be taken seriously for knowing BASIC, but since it was the first language I used, I appreciated the retro code.
  • by M0nkfish (620414) on Thursday April 29 2004, @03:01PM (#9011421)
    10 PRINT "Happy Birthday to you"
    11 PRINT "Happy Birthday to you"
    12 PRINT "Happy Birthday dear BASIC"
    13 END

    Dammit... Missed out a line. Now I remember why I should always increment line numbers by 10.
  • Why BASIC was good (Score:5, Insightful)

    by unfortunateson (527551) on Thursday April 29 2004, @03:03PM (#9011466) Journal
    Today's VB and similar derivatives bears so little resemblance to Dartmouth BASIC that it's hardly the same language. If it wasn't for FOR/NEXT and DIM, you might not recognize it at all.

    But the old line-oriented BASIC had some advantages in the bad, old days:
    1) Interactive editing is difficult to do on a teletype -- many schools only had a hardcopy terminal to a timeshare service. Being able to drop a line in the middle, or retype a single statement really really helped learn what was going on, without having to re-send the entire program. Even with a primitive CRT, full-screen text editors were of poor quality -- dropping in statements helped to debug and fix features.

    2) Later, it was ubiquitous: You could write the same abusive repeating naughty-word program at a Radio Shack, an Apple Dealer, or a department store selling Commodore PETs.

    3) It beat COBOL or FORTRAN. The only thing with BASICs interactivity might be FORTH -- imagine if we'd been saddled with page-delimited, stack-based code in all our micros. It's a lot harder to learn, but would have helped modularity and library development.
  • by landoltjp (676315) on Thursday April 29 2004, @03:07PM (#9011520)
    "On some level I think it's sad that it went away," he said. "People went from being creators of software to consumers."

    I must admit that I share his lament. The programmer-to-user ratio got considerably worse as the ubiquity of computers increased.

    When I got my first computer (comment hoping skip the 'geek pissing match'), the majority of other people with computers were using them to write programs. As the PCs (now workstations) got adopted (then coopted) by 'business' for them to do their thing, the computer became a 'tool'. I never stopped programming, but all my non-geek friends started to get in on the computer-owning game. Most of them couldn't write a line of BASIC with a gun to their head, even though they have the capacity to do so, but gosh, they all thought they were just whizz-bang computer users! *sigh*

    As a colleague of mine (and a really amazing programmer) once said: "Accessibility is the yellow brick road to mediocrity"

  • by Theovon (109752) on Thursday April 29 2004, @03:25PM (#9011854)
    Computers died for me the day the stopped shipping them with built-in BASIC.

    Seriously, though. The computers of the 80's were great for learning programming on. Not that BASIC is a good teaching language, but it was accessible and simple.

    Modern computers have too many features that you want serious programmers to have access to (complicating languages), and modern languages have all sorts of safety, structure, and OO features that are great for serious programmers but also complicate things for beginners.

    Breaking into programming is much harder than it used to be.
  • by Sigh Phi (324315) on Thursday April 29 2004, @03:31PM (#9011957)
    I was introduced to BASIC first on a friend's Apple IIe and subsequently on my own first computer, an original Macintosh.

    First programs included the standard:

    10 print "Enter your name: "
    20 input NAME$
    30 print NAME$ " is a doofus."
    40 goto 30

    About that time, I started getting 3-2-1 Contact Magazine, a science and nature periodical written for kids who had grown out of Sesame Street and The Electric Company. In the back of every issue was the "BASIC Training" feature, which had simple games and programs for a variety of platforms. The IBM versions were usually the only ones I could use; Apple IIe and Commodore 64 PEEK and POKE calls were meaningless in Mac MS-BASIC.

    But later, BASIC facilitated an (extremely sketchy) introduction to the Macintosh toolbox. MS-BASIC on the mac had built-in pseudo toolbox calls so that you could change fonts, draw graphics primitives and buttons. I ended up writing a grade tracking program that was a snare of interwoven GOTOs and GOSUBs.

    I breezed through two years of programming courses in high school and learned C in my own time. Looking back, I'm a little ticked off that my HS didn't offer "real" computer science with Pascal or C or any sort of AP treatment.

    Then I learned Perl. Now I do websites. I've forgotten most of BASIC. I have been told this is a good thing. But sometimes (actually, lately, more and more) I have to deal with VBScript and I see "LEFT" and "MID" and I think "what the hell is this crap?"

    Ah, memories.
  • by exp(pi*sqrt(163)) (613870) on Thursday April 29 2004, @03:32PM (#9011981) Journal
    A real programmer can extract useful work from anything from a pile of matchboxes [delphiforfun.org] to a state of the art cluster without bitching.
  • by BlightThePower (663950) on Thursday April 29 2004, @03:43PM (#9012139)
    Yes, BASIC fosters bad programming habits. However, this isn't really the point. Let me explain why.

    1. When I and many other people started out with computers, BASIC was the only game in town. Yes, there was assembler and other languages, but its easy to forget these days that information was hard to come by pre-web and indeed, for children who don't have the disposable income for specialist magazine subscriptions. Libraries typically had a couple of computer books, but these would be non-specific description books (that no longer exist as genre really) explaining that a computer had ROM, RAM and you could hook it up to a printer and a VDU! etc. etc. They had hand-drawn "screenshots" of space invaders and pac-man. BASIC was easy enough that we could get started without being put off. On Slashdot its easy to be intellectually macho, but theres a lot to be said for a low learning curve that encouraged you ever onward.

    2. BASIC today. Well, its probably not for serious programmers. However, what is often forgotten here is that not everyone who programs is a professional programmer. Or wants to be. For very simple programs, GOTO is no sin. At least when the alternative is no program at all and, say, organising data in a text file by hand or "manually" in Excel or something. Bad habits are not a problem here, because one is never going to go on to have to write mission critical software in C or whatever. I know there are modern scripting languages that are perhaps just as easy to use, but you might be surprised how many people you might have thought have difficulty programming a VCR will break out QBASIC or VB when they need 20 line quicky knocking together and the programmers are "busy until further notice". Its easy to belittle this from a position of knowledge and authority, but relatively speaking these people are your friends in a landscape of PHBs that think programs just happen.

    So in conclusion, BASIC is often better than nothing. That might sound like feint praise, but like I say, for the non-specialist that can be quite a valuable thing. Computer programming for the masses. Mock it at your peril.

    • by AtariAmarok (451306) on Thursday April 29 2004, @02:51PM (#9011215)
      It is practically impossible to teach good programming style to students that have had prior exposure to BASIC; as potential programmers they are mentally mutilated beyond hope of regeneration. -- Edsger Dijkstra/

      What it really means is that the programmers won't program exactly the way Dij wants them to do. It is not "good" or "bad": just different. Programming should not be a straitjacket: the more options and the more different ways to do thing, the better. Those who think that there is no place for anything like a GOTO should look at html.

          • Re:Troll? Moi? (Score:5, Insightful)

            by forgetmenot (467513) <atsjewell.onebox@com> on Thursday April 29 2004, @03:34PM (#9012000) Homepage
            You don't maintain your own programs then, do you?

            I've had to maintain programs written by developers who, like you apparently, separated out the maintainability aspects from their concept of "well-written" code.

            Well written code does not mean written fast - it means the next guy down the line, after you've moved on and forgotten about it, can easily follow the logic and make changes with minimal effort. GOTO's almost never facilitate this. Please trust your peers on this - it's been debated often enough and long enough by those in the know that it's no longer a subject for reasonable debate. In fact, defending the use of GOTO usually shows one of two things:
            1) Inexperience -or-
            2) Old Age (meaning the behaviour is so ingrained one simply can't comprehend anything different).

            Of course, I'm assuming you have the option to not use GOTO. If the language you use has no control structors other than Jumps and Labels, then obviously you have no choice. But I would argue that even if that's the case, you're probably using an old language for one of two reasons:
            1) Not experienced with anything else -or-
            2) Too old and stubborn to move on to anything else (meaning the behviour is so ingrained that you probably sit alone in the corner pumping out Cobol not even aware that you were laid off months ago and replaced by the Janitor who took a crash course in Javascript). ;)
            • Re:Troll? Moi? (Score:5, Interesting)

              by JavaLord (680960) on Thursday April 29 2004, @03:49PM (#9012215) Journal
              GOTO's make spaghetti code. It is very hard to trace through, especially if the code is uncommented.

              Ever tried to sift through someone's OOP program that is poorly documented and methods are badly named? It's just as bad. Ever seen a method that calls six others methods in different objects in it's body which are all overloaded 5 or 6 times? Bad/Sloppy programming spans all languages and isn't confined to a goto statement.

              How about poorly named method signatures? For example

              String getNumber(String x, int i, boolean q, vector a)

              I've seen crap like this before from programmers.

              Try maintaining code full of goto's. Good luck.

              No it's not the best thing in the world to do, but if it's well documented it's not as bad as you make it out to be. I started out in basic when I was 7, and I work now as a Java programmer. I would gladly take well commented code with GOTO's over poorly done OOP code.
    • by Theatetus (521747) * on Thursday April 29 2004, @02:55PM (#9011296) Journal
      I've heard it claimed that BASIC was "invented" by Microsoft

      Microsoft certainly doesn't claim that.

      or that they own it

      Nor do they claim that

      or that their first product was a BASIC interpreter

      They do claim that, because it's true.

      What's the connection between MS and BASIC?

      BASIC was always the applications and scripting language at Microsoft. For a long time, DOS and the early Windows shipped with a free basic interpreter (sadly, those days are over).

      Visual Basic remains one of Microsoft's flagship products. It's philosophy is similar to the original BASIC philosophy: you shouldn't have to be a comp sci graduate to write computer programs. Whether VB succeeds in that regard is another question, but it's what they intended.

      BASIC is still Microsoft's language for application automation (think Visual Basic for Applications), Web development (ASP with VBScript), and as a tool control language for gluing together objects written in lower level languages. In a sense, some form of BASIC fills the roles in Windows that Scheme, Perl, and TCL occupy in UNIX.

      • by joeykiller (119489) on Thursday April 29 2004, @03:16PM (#9011694) Journal
        BASIC was always the applications and scripting language at Microsoft. For a long time, DOS and the early Windows shipped with a free basic interpreter (sadly, those days are over).
        Actually, they're not. Every copy of Windows XP, and probably Windows 2000 and ME and maybe even 98, ships with the Windows Scripting Host. One of the languages supported by WSH is VBScript ("Visual Basic Script").

        VBScript is surprisingly capable. Read more about it here [microsoft.com].

      • by ThogScully (589935) <neilsd@neilschelly.com> on Thursday April 29 2004, @03:11PM (#9011599) Homepage
        That's a very obvious statement. You basically said that a bad program written in one language could have been written better in the other language. But any program written badly in any language is going to be better when written better, regardless of language.

        The comparison I believe the original post was making was between a good VB app and a good C app and between those, I'm guessing the C one would be better.
        -N