Slashdot Mirror


BASIC Computer Language Turns 40

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

6 of 1,042 comments (clear)

  1. Edsger Dijkstra? Does not like it by AtariAmarok · · Score: 5, Interesting
    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.

    --
    Don't blame Durga. I voted for Centauri.
  2. REM Thank You For Bad Habits by Eberlin · · Score: 5, Interesting

    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.

  3. Consumers vs. Creators by landoltjp · · Score: 5, Interesting
    "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"

  4. Re:Dijkstra said it best ...not by panurge · · Score: 5, Interesting
    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.

    --
    Panurge has posted for the last time. Thanks for the positive moderations.
  5. Re:Troll? Moi? by JavaLord · · Score: 5, Interesting

    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.

  6. Windows NT, CMD + QBASIC by os2fan · · Score: 5, Interesting
    All versions of OS/2 and Windows NT/2K/XP ships with a copy of qbasic 1.0, while DOS 6, and windoze ME/9x ship with qbasic 1.1.

    All of these can be started as an editor, eg QBASIC / EDCOM

    On the other hand, only vers 1.1 can read the dos help file HELP.HLP.

    Amusingly, Windows understands what a QHELP file is, that if you click on a quickbasic help file, it says 'this is a DOS help file', whereas any other help file (eg 4dos.hlp), it says "unknown format".

    In any case, basic shipped with msdos, because in older times, computers had a rom-basic in their bios.

    GWBASIC is a standalone emulator for graphical workstations (ie workstations that replaced the rom-basic with video memory).

    BASIC in its raw form continues to affect the way that COMMAND.COM and CMD.EXE work. For example, if one does a test, and it is false, the rest of the line is skipped. In the sample below, we see two statements, separated by an &. If one makes the if statement, one gets neither command, while if the statement is true, both work.

    if "1"=="1" echo 1 & echo 2
    One can implement a die style command by this, or by replacing echo with set, pass a parameter to a subroutine.
    if (condition) echo something & goto :end
    In any case, it's dodgy.
    --
    OS/2 - because choice is a terrible thing to waste.