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
ahem (Score:0, Insightful)
Best Headline Ever (Score:2, Insightful)
School Janitors (Score:5, Insightful)
And then came VB (Score:5, Insightful)
Ah, computers. (Score:2, Insightful)
I remember using my first computer at age 5 and playing around with BASIC, and I could do a reasonable amount with it. Lets be glad though that most of us have moved on
Re:A Poem! (Score:3, Insightful)
READ THE F&%ING POST (Score:2, Insightful)
I didn't say only non-programmers used Java, I said Java was marketed towards, AMONG OTHER PEOPLE, nonprofessional programmers. It's presented as an easy language to pick up on, and, in fact, lots of non professional programmers have used it to do things like rotate images and play sounds on their webpages, for instance.
Jeez, you Java people are sensitive.
Using a language vs. knowing what to use it for (Score:3, Insightful)
BASIC got me going (Score:4, Insightful)
And Windows 3.1 never would have been as accepted as it was if not for VB 1.0. I think VB was probably the thing that got a lot of people on Windows because programming Windows in C at that point was very complicated for the home hobbiest.
The Janitors Liberation Organization (Score:5, Insightful)
The JLO
Re:ahem (Score:2, Insightful)
I also thing that maybe you should read the article, since the poster simply quoted it.
Why BASIC was good (Score:5, Insightful)
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.
The debate is also 40 years old. (Score:2, Insightful)
insensitive clods (Score:4, Insightful)
Re:Spinning in his grave (Score:5, Insightful)
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
Re:A Poem! (Score:2, Insightful)
Re:BASIC got me going (Score:3, Insightful)
Happy Birthday BASIC but where is the pathway to any flavour of the language now?
Once upon a time BASIC came as a free part of the computer box. A lot of boxes, you turned them on and there was BASIC. To do anything at all, you had to learn BASIC, and so a lot of people did.
But nowadays, all you do is point and click. Visual Basic isn't free. Maybe you can get into VBA through Word, but I can't see too many 13YOs going that route.
I'd have to say that eventually BASIC will wither and die through lack of new blood. Sure it will take a while until all those programmers who learnt their stuff in the 80s die out, but die out they will.
Or.... (Score:3, Insightful)
Or the programmer did think about it, and the use of the GOTO (or equivalent "jump over here!" coding tool) caused no problems in regards to these issues.
Re:5 REM Testing.. (Score:2, Insightful)
BASIC turns forty... (Score:3, Insightful)
Forgive me, it must be that brain damage everybody's talking about around here.
And yes, my code sucks. Even in BASIC. And that was 15 years ago.
The old days were better for beginners. (Score:5, Insightful)
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.
I feel sorry for all the BASIC bashers (Score:5, Insightful)
Re:Troll? Moi? (Score:5, Insightful)
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).
Good enough at the time (Score:3, Insightful)
It is a poor musician who blames his instrument... (Score:5, Insightful)
In defence of BASIC (Score:5, Insightful)
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.
Re:It is a poor musician who blames his instrument (Score:2, Insightful)
Remember, that was about old BASIC dialects, not the embraced-and-extended-for-the-love-of-god-and-good -of-the-mankind Microsoft dialects.
Yeah, it's possible to do OO coding in Commodore 64 BASIC v2 if you do it right. *sigh*
Still, writing structured programs would be very cool if BASIC interpreters of those days would have supported things like return values, local variables and subroutine arguments... (You can GOSUB 2390 all you want, just don't expect the language to pass data around.)
Re:missing line (Score:3, Insightful)
And in some ways, the lack of simplicity of environments like Python is harmful too. Much of the fun of programming was learning how to do amazing things at a relatively low level. Now languages are so complex, and libraries so relied upon, I'd venture to say most programmers do not understand how their programs will run, that something as simple as a change of data structure might make their program run 10,000% faster. Hashing? Sorting? Let the interpreter do it. That stuff's "too hard".
Yes, like we all understand what a 10 PRINT "HELLO" actually does behind the scenes.
Re:School Janitors (Score:1, Insightful)
I usually present my title as "network janitor" or "systems janitor".
I treat all the janitors like real people. They invite me to their birthday parties and they offer to wax my basement floor for free (no lie, that really happened).
This is a sad commentary on the way most people must treat janitors; I am just ordinarily civil and friendly to them, nothing special, and they treat me like gold
Re:A Poem! (Score:2, Insightful)
Re:Dijkstra said it best ... (Score:5, Insightful)
Okay, now all the professional coders whose first programming experience was in BASIC on a VIC-20, Apple II, or TRS-80, raise your hands... man, there seems to be a lot of us, huh.
Oh yeah and "Goto considered harmful" too, of course.
GOTO is essential -- all processors use it at their lowest levels (it goes by the name JMP in assembly language, though.)
All other types of branching or looping are just syntactic sugar.
Re:Look at all these posts. (Score:2, Insightful)
Yes, but it has huge comedic potential.
Re:Now we know when it was born... (Score:3, Insightful)
And as computers keep getting faster, soon Qbasic will run just as fast on a P8 2THz as assembly on a 486DX 66MHz.
Re:Dijkstra said it best ...not (Score:3, Insightful)
I disagree. Dijkstra is credited with numerous important fundamental algorithms, so he most certain "can". This isn't to say that he isn't arrogant, or that there aren't arrogant professors who "can't". This is to say there are those who are arrogant, and "can".
I have no problems at all with you criticizing various things he said or stood for. Just because he is smart enough to discover algorithms doesn't mean that he is beyond reproach. However, to say he "can't" I'm tempted to ask what you have done for computer science.
Before we dismiss BASIC as a simple language (Score:5, Insightful)
I remember how I got into programming in school - we had these BBC computers [retro-trader.com] which could run BASIC. The language was simple enough for me to understand and intuitive enough for me to actually like programming. (Before that I had seen an aunt learn COBOL and the very look of the language frightened me)
Sure, BASIC is not as advanced as C, BASIC uses GOTO statements, BASIC (not QBASIC though) uses archaic line numbers (but still not as archaic as the Fortran 77 tradition of having to write everything after 7 spaces), but BASIC is the best tool to introduce an enthusiastic person to the world of programming. See this example: In BASIC you would show the person:
10 PRINT "Hello World"
20 END
Bingo, the person magically sees his first program work. Try the same thing with C:
#include
int main(){
printf("Hello World\n");
return 0;
}
See how much more you have to explain? Ever tried to explain stdio.h and int main to someone?
Re:I feel sorry for all the BASIC bashers (Score:3, Insightful)
Re:And now we have ... (Score:1, Insightful)
Re:Today we use Bash (Score:1, Insightful)
Only if he's using a shitty compiler that doesn't know about tail call optimisation.
Of course, for all I know that applies to all C compilers. I haven't used anything as crude as C in a while, so I wouldn't know.
Re:Dijkstra said it best ...not (Score:3, Insightful)
He "did" as well as taught - you might like to read up on him a bit before putting your foot in your mouth.
And, incidentally, good teachers are worth a thousand "arrogant" programmers who think they know better.
D.
Unfortunately... (Score:3, Insightful)
I believe the lack of a good version of the BASIC language is what is holding back Linux in a small manner. Microsoft, by making it easy to customise their regular applications (via VBScript) and write new applications (via VB), allowed companies and individuals to quickly roll out software for both profit and fun. Until Linux has this ability, we will continue to be a second-level player in many circles.
Fortunately, we do have a couple of languages that allow (after a sort) RAD software development - Perl, Python, and Tcl/Tk are all excellent languages for today's business application development. However, they lack the GUI IDE that has made VB what it is - the ability to rapidly slap together a form and some code behind controls, compile and run with a single click - and BAM! - an instant GUI application! Furthermore, none of these languages (ok, the exception would likely be Python) are as easy to learn as BASIC, and Python only wins out because it looks and feels a lot like BASIC in many respects.
I just don't understand the hatred people have of BASIC - it's a language syntax, people! I have often wondered how hard it would be to make a simplified version of BASIC that could be easily parsed/converted by Perl to C, then compiled with gcc (basically, it would be C, but with a lot of BASIC "look" to it). GOTO's were banished a long, long time ago. BASIC could easily be object-oriented - it's just a syntax.
Something makes me think people dislike BASIC because of the idea that it would make them less of programmers by using it (f'd up pyschology or something, I think) or knowing it. All it would do is make them faster programmers - as long as it compiles down to native, why not make the syntax of the language as simple as possible, provided it gets the job done. BASIC can do this!
Finally, there are some "good" BASIC's out there for Linux - one is XBasic, the other is Blassic. XBasic is a form of BASIC that looks and acts like a cross between VB, C and QBasic - fairly fast, compiles to native, and open-source (GPL, I believe) to boot!
Blassic is what could be called "classic BASIC" - fairly easy to port stuff from GWBASIC and some QBasic over to it. It is done pretty well (though the documentation could use some work/updating - I put out an update a long time ago while playing with it) - it is interpreted, but it runs very fast on today's systems, plus it has some extra features old BASICs didn't. Search for both of these with Google - I think you will be surprised at what is out there!
If Not for BASIC... (Score:3, Insightful)
The simple, limited, but comprehensible BASIC found in all those Apples, Commodores, Ataris, TI's, etc., showed people that even they could control a computer.
BASIC is about putting ordinary people in charge of their computers, not corporations...or crusading free software elitists whose idea of "ordinary people" are 1982 MIT graduates.
Re:Obligatory Dijkstra quote (Score:3, Insightful)
The quote and the jargon file entry also shows that the writers and speakers thereof never saw some of the later, and much more powerful BASIC's. (QBasic (which was the professional version of Quick Basic, no mean lanquage itself. Don't confuse it with the Qbasic that shipped with later versions of DOS.), Power basic, etc...)
Re:Before we dismiss BASIC as a simple language (Score:4, Insightful)
Yeah, my uni teaches Java to first years. Java is a nice language (and the uni programmers put together a library to hide most of the exception handling) ... but your first program looks like this:
We were basically taught to type "public static void main string args" as an invocation that we would (hopefully) come to understand more in later weeks...
So, they are the guilty ones! (Score:2, Insightful)
Re:Troll? Moi? (Score:1, Insightful)
It was loaded with "Factories" and "Managers", with everything vaguely named (oh, a "TableManager"? Gee thanks, that makes it all clear) and 3-4 levels of derivation for everything, and it used introspection galore.
And almost no comments at all. The ones that were there were vague enough so as to be useless.
I ended up having to single step through the shit to even vaguely start to figure out what it was trying to do.
Eventually I realized that the whole thing could have been written with 1/4 as many classes about probably 1/4 as much code as well.
So, yeah, I hear ya brother. Why does everybody have to make simple problems so goddamned complicated these days?
Re:I feel sorry for all the BASIC bashers (Score:3, Insightful)
Re:And then came VB (Score:2, Insightful)
I don't think the "Is Nothing" part is different in VB.Net than in classic VB. The "Is" operator compares the pointer values in the object reference variables. If "A Is B" returns true, that means the variable A and the variable B refer to the same object, while if "A = B" returns true, that means the default functions return the same value. "Nothing" is simply a constant object reference value. You could use "A = null" instead of "A Is Nothing", but that would lead to Java's "A.equals(B)" nonsense.
Finally, dude, if you just don't like the keyword choices in VB.Net, just use C#; they're two different shells over the same system.
Re:School Janitors (Score:3, Insightful)
Just in case you come back to read this AC troll, I think your quote above actually applies to you. Having a humble job doesn't mean the person with that job is pathetic. It doesn't even follow that it's probable.
On the other hand, if you're in a good job, with nice things, and are relatively successful and you feel the need to put down such people, then you are truly the pathetic person worthy of much pity.
Really, get a clue.