BASIC Computer Language Turns 40 1042
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
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
I miss the simple life (Score:2, Interesting)
20 Programming in basic was my favorite thing to do in math class
30 my freshman year.
WHY! WON'T! IT! DIE! (Score:1, Interesting)
So, I'm just curious. I've heard it claimed that BASIC was "invented" by Microsoft, or that they own it, or that their first product was a BASIC interpreter or something. Where did this story come from? What's the connection between MS and BASIC?
From the Jargon File (Score:5, Interesting)
AAAaaaaghhh (Score:3, Interesting)
And when you had to add something and have uneven spacing of line numbers... Oh it just drives the type A personality in me nuts!
The only good part about line numbers was how easy it made it to write GOTO statements.
Java? (Score:0, Interesting)
That's an odd thing to say. In terms of syntax it's hard to call Java "rooted" in a non-algol language like BASIC. I guess it does share with BASIC the fact that both are marketed towards non-programmers (well, people who don't program for a living, at least).
Cute, but don't be stupid (Score:1, Interesting)
Edsger Dijkstra? Does not like it (Score:5, Interesting)
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.
Jave derived from BASIC??? (Score:3, Interesting)
Ah, the memories... (Score:3, Interesting)
Ah, the fun I had with QBasic... (Score:4, Interesting)
I think it was the limited nature of the language which kept me interested in it for so long. Those DOS memory limits were fun... coding a 2D RPG, and trying to stay within around 450KB, so it would run on most people's DOS machines. It was a challenge, I tell you... and trying to keep the code neat, and tidy... also a fun challenge.
To this day, I'm still amazed at some of the things which people were able to do with QBasic, and QuickBasic... fast raycasters, 3d polygon game engines, even voxel engines!
I think, I'll go looking for all those old Qbasic games. They may not have been much, but they were fun to play.
My life's language arc (Score:3, Interesting)
Atari Basic
6502 Assembler
Fortran
Action!
Deep Blue C
Pascal
Metrowerks C
GNU C
Perl (just enough to make my Unix life easier)
Java
GNU C++
Visual Basic
RealBasic
Have I come full circle? By the time I got to C++ and VB, I was mainly programming for work, but RB has made programming fun again, and I have launched a couple personal projects for the first time in years.
Gold bonus points if you know what Action! was.
Re:AAAaaaaghhh (Score:3, Interesting)
10 LET M$ = "Microsoft"
And when you had to add something and have uneven spacing of line numbers
Of course, that's why many micro BASIC dialects had a renumbering program available.
Re:WHY! WON'T! IT! DIE! (Score:3, Interesting)
However, all Microsoft Office programs that support Macros do ship with Visual Basic for Applications... with which you can write simple-interface BASIC programs. I've used it on several occasions in cases where I wished I had VB on a machine for a short scrappy program...
REM Thank You For Bad Habits (Score:5, Interesting)
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.
Re:WHY! WON'T! IT! DIE! (Score:2, Interesting)
IIRC the first PCs shipped with MS BASIC on ROM, which loaded if no boot disk was present. Hence "No ROM BASIC" messages once that mis-feature was removed from later PCs.
-Peter
Re:Ah, the memories... (Score:2, Interesting)
You were lucky to have a DECtape - I was doing the same thing on an 8/I at the same time (74-75), and have to live with just an ASR-33 paper tape. I think I can do the RIM Loader switch sequence by muscle-memory...
It was much better moving to the PDP-11 with RSTS/e.
BASIC 7th grade project (Score:1, Interesting)
Re:From the Jargon File (Score:2, Interesting)
All that to make it fit into 64k.
Very painful indeed.
BTW. it was on a Zenith Heath clone. I think it ran at 6Mhz. A real speed deamon compared to the original PC which ran at 4.77Mhz.
Clem.
Consumers vs. Creators (Score:5, Interesting)
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"
Since when can you play sounds with JavaScript? (Score:3, Interesting)
No, I meant Java. There are lots of people who are not professional programmers who use Java, particularly to write applets for web pages. I brought up two common things those applets do, play sounds and rotate images.
First year comp sci classes often use Java as their language. There's no sharp distinction (to the beginning programmer) between the language and the libraries and APIs. Sun marketed the free SDK towards individual home users. I was pointing out that in those senses (alleged ease of learning and free and widely available development kit), it's like BASIC. Syntactically, it's not at all like BASIC; it's a grandchild of Algol through-and-through.
BBC Micro (Score:1, Interesting)
10 *FX 200,1
20 COLOUR RND(255)
30 PRINT "HA HA HA!";
40 GOTO 10
Gem to keep anyone from doing anything constructive for a while
That was a great help file (Score:3, Interesting)
I learned the majority of basic programming just by following the hyperlinks in the help file. Almost every function came with a useful example program.
The whole help system in q/quickbasic was very well done. You could point and click on a function and bring up its help entry IIRC.
Re:The Janitors Liberation Organization (Score:3, Interesting)
He started taking classes and 5-6 years later got a Phd. in entomology. We like to joke around 'If this Phd. thing doesn't pay off you can always fall back on your experience in the janitorial field...'
The lesson: NEVER underestimate a janitor....
Re:Dijkstra said it best ...not (Score:5, Interesting)
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.
Re:A Poem! (Score:5, Interesting)
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.
REALbasic (Score:2, Interesting)
It's not your father's BASIC. It's a great RAD environment, with a language much more heavily influenced by Python than BASIC. You can write plugins in C/C++ to make the things that need to run super fast run super fast.
My company uses this product to build products that generate several hundred thousand in revenue per year. Our tools budget is under thousand dollars per year, mostly spent on REALbasic.
Re:Ah, the memories... (Score:3, Interesting)
Mine was in the early 70's, on a ASR-33 Teletype in my high school math class that was connected via dial-up connection to some mainframe at Penn State.
Ten characters per second on a roll of paper. with a spiffy paper-tape punch hanging on the side.
Put it a different way... (Score:3, Interesting)
# REM nam37 codes
X10: print "In 1963 two Dartmouth College math professors had a radical ";
X20: print "idea - create a computer language muscular enough to harness ";
X30: print "the power of the period's computers, yet simple enough that even ";
X40: print "the school's janitors could use it.\n";
X50: end
# (don't ask me why I did this...)
Re:The Janitors Liberation Organization (Score:3, Interesting)
When some of the workstations got switched to linux, some of the profs would bitch. They'd claim that it was too hard and too difficult to learn.
The standard response was, "Huh. The janitor uses linux, he has no problems." That really shut the profs up.
10 PRINT "3-2-1 Contact Got Me Started with BASIC" (Score:5, Interesting)
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.
Re:AAAaaaaghhh (Score:3, Interesting)
"Compile"? In BASIC's heyday, it was almost always interpretted. The line numbers were essential because programs were usually typed interactively, line by line. Need to insert a command between lines 50 and 60? Simply type "55 PRINT NAME$" (or whatever) and the new command is inserted.
By the way, some BASIC systems (I don't recall which of the several I used... TRS-80, Atari, DEC, GW-BASIC) had the ability to renumber your lines for you, in case you ran out of integers in a particular range.
Re:And then came VB (Score:3, Interesting)
"Nothing" drives me up a wall, it's goddamn null you assholes! As do modifiers like Shared (aka static), Overridable (aka virtual), Shadows (aka new), MyBase, Me and MustOverride (aka abstract). In fact, were it not for these inscruitably obnoxious naming conventions, VB.NET would be a pretty awesome language. Sadly, it falls into the same trap as the user interface of XP: trying to solve usability issues by using more (and bigger) words. Hey guys, if you don't understand the concept behind an internal method, calling it a "Friend" method isn't going to help. At best, all you're doing is confusing those of us who already know what an internal method is (and think of a friend method as something completely different!)
Re:A Poem! (Score:2, Interesting)
Re:Troll? Moi? (Score:5, Interesting)
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.
Re:Obligatory Dijkstra quote (Score:2, Interesting)
Are there any arguments to justify the statement?
QBasic (Score:2, Interesting)
Re:From the Jargon File (Score:3, Interesting)
The guy that wrote this masterpiece had great difficulty finding someone to help him debug it. This was partially owing to the characteristics of the program, but mostly because his personal hygeine meant no one was willing to be in the same room unless all the windows were open, and it was January in Chicago.
Re:Obligatory Dijkstra quote (Score:2, Interesting)
Re:They had a dream (Score:3, Interesting)
Arithmetic goto's (Score:2, Interesting)
50 goto x*100+1000
And of course x is a float not an integer. Ahh those were the days...
This technique of course requires very carefull line numbering of different parts of the code but it's wicked fast and defies any attempt at reverse engineering.
TrueBasic is the most current generation (Score:1, Interesting)
http://www.truebasic.com
Re:A Poem! (Score:3, Interesting)
Thank you is just, "Arigato".
Sign the petition to make BASIC free! (Score:1, Interesting)
There's currently a petition running online to get Microsoft to release all their BASIC compilers as freeware. Please help support the hobbyists by signing the petition!
http://www.petitiononline.com/qbasicp/ [petitiononline.com]
Office Max, Casio Basic Calc $5 (Score:4, Interesting)
When I vacationed in Canada a few years ago, I took my TI-83 to convert currency and measurements for me. But, I found an even bigger need during the trip... converting CDN$ per litre of "petrol" to USD per gallon of gas. Things made a lot more sense at the pump.
Re:Look at all these posts. (Score:4, Interesting)
I think you'll find that literary critical academics are well aware of the preferences of certain languages for certain poetic techniques.
Hexameter (six stress verse) is considered wonderful in French early modern poetry, and almost always terrible in English early modern poetry (Sidney uses it, but his hexameter isn't given particularly great credit).
Quantitative measure is considered to have worked wonderfully in classical Greek, but is accepted as essentially impossible in English (Coleridge semi-successfully attempted it in Christabel).
A Petrarchan sonnet's composition in English is an exercise in frustration and a Shakespearean sonnet's structure in Italian uncomfortably abrupt.
Windows NT, CMD + QBASIC (Score:5, Interesting)
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.
One can implement a die style command by this, or by replacing echo with set, pass a parameter to a subroutine. In any case, it's dodgy.1001 Things (Score:2, Interesting)
The BASIC of our age (Score:3, Interesting)
Many people are making their first ventures into the world of programming by renaming a
Any not just young people - buy webspace, get PHP is the standard now over here, and why not try it, if it is so simple.
Rasmus, Zeev and Andy, they really deserve much good karma for creating the language that made web programming accessible to so many.