Beta
×

Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

The Value of BASIC As a First Programming Language

kdawson posted more than 4 years ago | from the proud-to-have-been-warped-by-it dept.

Education 548

Mirk writes "Computer-science legend Edsger W. Dijkstra famously wrote: 'It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.' The Reinvigorated Programmer argues that the world is full of excellent programmers who cut their teeth on BASIC, and suggests it could even be because they started out with BASIC."

cancel ×

548 comments

Sorry! There are no comments related to the filter you selected.

BASIC is irrelevant (-1, Troll)

Ethanol-fueled (1125189) | more than 4 years ago | (#31423644)

What a bunch of horseshit. Most modern intro-to-programming classes are taught in C and/or C++.

Re:BASIC is irrelevant (5, Insightful)

black3d (1648913) | more than 4 years ago | (#31423732)

Not recognising the relevance of BASIC as described in the article, it's possible you're around a decade or two younger than the individuals the article is referring to.

Re:BASIC is irrelevant (3, Interesting)

ipquickly (1562169) | more than 4 years ago | (#31423792)

just great, more sushi, I should block images from that site

I started with Apple BASIC, and I was playing around with peek and poke before the other students even knew how to properly misuse goto.

But that was when I was 13. The first year of college should not teach BASIC.

But why are we not introducing BASIC or the very beginner friendly 'Ruby' to students when they're 13 anymore?

Re:BASIC is irrelevant (1, Insightful)

Anonymous Coward | more than 4 years ago | (#31423838)

programming is about being rigorous. that should be taught at college. not some sloppy language where anything goes and with the magical on error resume next that "fixes" all of your bugs. you know what is propaedeutic for real programming to freshmen? fighting segmentation faults. learning to trace stack overflows. checking that what they are doing do what they thing it should do, even if that means checking the return value of each printf.

we don't really need another generation of people who'd like to be programmers but doesn't wan't to learn the intricacies behind it. we've enough problems as it is, with sql injections and stuff.

Re:BASIC is irrelevant (0)

Anonymous Coward | more than 4 years ago | (#31423830)

I'm doing a Programming Fundamentals course (mandatory and boring for me) and they're using Java... most of the students have never programmed in their life, and are completely overwhelmed by OOP.

Re:BASIC is irrelevant (1)

julesh (229690) | more than 4 years ago | (#31423892)

What a bunch of horseshit. Most modern intro-to-programming classes are taught in C and/or C++.

Really? I've looked at a *lot* of courses, and I've hardly ever seen either C or C++ taught as first language. When I started doing this, Pascal was the most common with a smattering of Modula-2, ML and LISP. These days, it's almost always Java. If it isn't, it's OCAML, Modula-3 or LISP.

What intro-level courses use C or C++?

Re:BASIC is irrelevant (3, Interesting)

someone1234 (830754) | more than 4 years ago | (#31423928)

Depends on your age when you start learning. I was 12 when i first met "programming", it was a TI programmable calculator. It was fun to squeeze as much functionality as possible from less than 1K Basic. Then came C64, with its ~38K Basic. Its Basic was very weak, but i learned how to read disassembly when i read the code of various Basic extensions and read books that contained snippets on extending C64 basics. Eventually i made my own Basic extension, cracked games to create trainers, made an own turbo loader that had half of its code on the floppy drive. So, by the time i went to mid school, i programmed device drivers in machine code!
I learned PL/I and other archaic languages in mid school, even punch cards! I learned C on my own and was taught in it only by the time i went to high school.

Start with scripting (0)

Anonymous Coward | more than 4 years ago | (#31423648)

Scripting with JavaScript in Firebug is an easy way to learn and there is no compiler involved.

Re:Start with scripting (0)

Anonymous Coward | more than 4 years ago | (#31423686)

At least, it has a decent syntax.

Re:Start with scripting (1)

Alien1024 (1742918) | more than 4 years ago | (#31424002)

Javascript is just a bad language to learn how to program. A bad language all around, in fact. OK not as bad as BASIC, but still...

Good programmers aren't easily ruined (5, Insightful)

syousef (465911) | more than 4 years ago | (#31423650)

A good programmer has experienced many languages and done things in many ways. A good programmer has compared all these various experiences and understands the advantages and disadvantages of each language and programming technique. A good programmer doesn't get bogged down in line numbers and GOTO statements and never move beyond that. If someone does get bogged down they never had the attitude to be a good programmer.

Re:Good programmers aren't easily ruined (1)

Unending (1164935) | more than 4 years ago | (#31423674)

I agree completely my first language was QBASIC and I didn't bring any of that with me, but I could still go back and do it just fine.
That said if I were to teach someone how to program now I would probably use javascript.

Re:Good programmers aren't easily ruined (0, Offtopic)

phantomfive (622387) | more than 4 years ago | (#31423716)

http://slashdot.org/journal/239880/Slashdot-moderation-is-awful

Heh......this is what happens when you rush super-fast to comment without reading the article, post something unrelated, and end up getting modded down. You end up thinking slashdot moderation is awful. :)

Re:Good programmers aren't easily ruined (1)

syousef (465911) | more than 4 years ago | (#31423802)

Heh......this is what happens when you rush super-fast to comment without reading the article, post something unrelated, and end up getting modded down. You end up thinking slashdot moderation is awful. :)

Heh? Stop pontificating for 5 minutes would you? I haven't been modded down and my comment relates to the summary and is not meant to say anything negative about the article. Are you even aware of the irony of you rushing to criticize me without provocation? Pipe down.

Re:Good programmers aren't easily ruined (1)

phantomfive (622387) | more than 4 years ago | (#31423856)

No, I think it's funny.

Re:Good programmers aren't easily ruined (1, Offtopic)

simoncpu was here (1601629) | more than 4 years ago | (#31423966)

You can read a more informative article on Slashdot moderation here [encycloped...matica.com] .

Re:Good programmers aren't easily ruined (1, Interesting)

Anonymous Coward | more than 4 years ago | (#31423722)

Can't agree more. It's the person that matters and not what language they started out with. A good programmer will notice the limitations of a language and quickly switch to better programming methods when they are made available in a new language.

I started out with BASIC (gwbasic) on PC-XT (the ones before 286) around 1991. Now, I'm a full time kernel programmer working on embedded systems.

Re:Good programmers aren't easily ruined (3, Interesting)

erroneus (253617) | more than 4 years ago | (#31423932)

I too started out with a range of BASIC varieties. I coded on Commodore PET and 64, AppleII and Color Computer and all sorts of thing like those. I then moved on to Assembly language for Motorola processors. Those two language experiences have the lacking of something in common -- functions; creating them, linking to libraries and all that. This meant I learned to do it ALL myself, whatever it was, and my code wasn't all that portable except for copy, rename and modify to suit. Everything was GOTO, GOSUB, JMP and JSR.

I also worked/played with Basic09, which was BASIC for Microware's OS-9. It was a bit more modern where it presented me with data types, functions and no line numbers. From there I grew into C.

As far as beginning programming is concerned, I think there is value in learning to make the machine do things very explicitly at first. Old style BASIC and even Assembler provide that experience. People tend to have a black-box mentality with everything they do and care little about what is actually going on within the black box. Having worked with languages without libraries and needed to do everything myself gave me some appreciation and insight into the black boxes we use in other languages. I tend to think these are pretty important insights especially when the black boxes don't do exactly what we need them to do.

And one other thing -- memory management. That simply isn't a topic on anyone's mind in programming these days. It was when I started. Request memory, release memory. Many of the machines I started on were limited to 64K! It was a primary concern. These days, people waste memory as if it were unlimited. Memory leaks are signs of either bad/sloppy coding or bad/sloppy black boxes. Either way, the further people distance themselves from how the machine actually works, the worse programming becomes in some respects.

This leads me to object oriented coding. Jeez what a mess that is. I grew up procedural and it is hard for me to think any other way. But then again, that's how computers actually work in the first place. Object oriented programming merely distances people from the machines and prevents newbies from appreciating how the machines really work. And the idea of mixing "data" and "executable code"??? Really? Damn. Sounds like injectable code execution exploits to me. When I started, we knew to keep those two things separate from the very beginning. Object orientation mixes them up and probably does more to lead to exploitable code than anything else.

I guess as I grew up coding, being aware of boundaries and limits, input validation and all manner of things like that (which were a lot more necessary in old BASIC and Assembler due to their lacking of advanced data typing) became first nature in programming. These days, people pay little if any attention to these details. And so every time I rant about sloppy or bad programming habits leading to very exploitable code, I am coming from a history of growing up under the notion of being aware of where and how memory is being used, testing and limiting the input and output, ensuring that infinite loops don't happen and all manner of things like this. Then people respond with "...you just don't understand! no one has time or energy to waste on that stuff!"

For me, it's unimaginable to write code without checking itself at every turn... this was probably the most important thing I took away from my earliest programming experiences.

Re:Good programmers aren't easily ruined (4, Interesting)

Interoperable (1651953) | more than 4 years ago | (#31423746)

I learned in Fortran (I should qualify this by pointing out that I'm not a particularly good programmer) but it seems to me that writing logical code that uses GOTO statements would be a good introduction to computer logic. A complex program may become unreadable, but as a learning tool I could see that it might have merit. Good coding is about understanding logical procedure (and comments).

Re:Good programmers aren't easily ruined (4, Informative)

jpmorgan (517966) | more than 4 years ago | (#31423768)

Indeed. Dijkstra was frequently wrong, especially when he made grand sweeping statements.

GOTO is a good example, 'GOTO considered harmful' is practically biblical law amongst many programmers, but it's worth remembering that he made that statement in the context of an argument with Donald Knuth. Knuth won: (http://pplab.snu.ac.kr/courses/adv_pl05/papers/p261-knuth.pdf)

Re:Good programmers aren't easily ruined (3, Insightful)

Dahamma (304068) | more than 4 years ago | (#31423790)

Absolutely. It was drummed into me (and apparently most coworkers), and I can't believe how liberating it is once you realize, yes, in appropriate contexts "goto" can result in code (especially in error handling cases) that is both more readable and more efficient. Dogma is rarely the answer.

Re:Good programmers aren't easily ruined (4, Insightful)

syousef (465911) | more than 4 years ago | (#31423816)

The irony is that under the covers, it's all done with jump instructions anyway.

Re:Good programmers aren't easily ruined (2, Insightful)

smash (1351) | more than 4 years ago | (#31423900)

I'd argue that goto IS harmful - however like all harmful things, there are use-cases where it is either necessary or useful to accomplish a particular objective.

Much like a chain saw not being an all purpose cutting tool....

So... avoid using it when not strictly necessary, but if it is the only sane/high performance way of getting things done in a special use case, by all means...

Re:Good programmers aren't easily ruined (0)

Anonymous Coward | more than 4 years ago | (#31423842)

Yes. I started with basic (a lot of basic), then went on to Pascal, then C, Cobol, modula2, apl, 4 different versions of assembly language, and I've been staring at a lot of PHP and python (and perl) lately. Oh, and some java and pl/sql. I've written more code than I care to admit. The first year I learned basic, I wrote more than 200 (most quite small, but still...). I don't exactly consider bash scripts to be programs, although it is Turing complete. I still prefer procedural languages to objected oriented ones, but I don't consider my basic time to be a waste of time. Basic concepts are learned and repeated (ignore the pun). Its more likely that there are a lot of programmers around because of Basic. Some of the Basic (ok, groan over the pun) principles followed me through CS in university. Its true that I didn't see as much of them in Lisp or prologue (Artificial Intelligence), or cryptography (more math than anything else), but at least some of it was there.

Re:Good programmers aren't easily ruined (1)

hopejr (995381) | more than 4 years ago | (#31424008)

A good programmer has experienced many languages and done things in many ways. A good programmer has compared all these various experiences and understands the advantages and disadvantages of each language and programming technique. A good programmer doesn't get bogged down in line numbers and GOTO statements and never move beyond that. If someone does get bogged down they never had the attitude to be a good programmer.

I agree. I was one of those who started with BASIC, but am a good programmer (not meaning to boast - it's what I've been told by colleagues and bosses). BASIC is a good starting point to learn how procedural programming works, and can build from that to other paradigms and languages. It's people who only feel comfortable with that stuff that don't move on from their GOTO statements. I think this guy, Dijkstra, is like Freud by studying 60 german house-wives who have no life, and thinking the whole world is the same.

Fuck him. (4, Informative)

OrangeCatholic (1495411) | more than 4 years ago | (#31423656)

I was on Basic from 1986 to 1993, and it was the most meaningful years of my life.

Re:Fuck him. (0)

Anonymous Coward | more than 4 years ago | (#31423810)

And those years are the origins of my most profitable refactoring work, turning 20+ year old BASIC sludge into proper solutions.

Seconded! (3, Interesting)

thijsh (910751) | more than 4 years ago | (#31423916)

Commodore Basic taught me to love programming, have fun making little games and all important binary operations and encoding for sprites and font
QBasic allowed me to take my learned lessons to the 8086 and add much much more visually appealing graphical interfaces (still mostly games, but also editors etc.)
QuickBasic introduced me to libraries and compilation, i've built some great hardware monitoring interfaces with sensors and relay switches
Visual Basic allowed me to explore the win32 API and libraries, i''ve built some of my greatest applications with it ranging from editors and filtering proxies to a graphical music collection interface I could control with a remote

I loved basic, it taught me so much but most of all it taught me to love programming... The days of fun little programs in basic are over and I have no intention of ever going back... but there is definitely meaning there, and I would recommend anyone to try programming with basic... as a self-taught programmer I can say you will learn a lot from basic.

Time heals (2, Insightful)

Quiet_Desperation (858215) | more than 4 years ago | (#31423662)

Depends on the BASIC. I use RealBasic at work as an alternative to LabView. It's object oriented, multithreaded and completely "Visual".

as potential programmers they are mentally mutilated beyond hope of regeneration

Am I the only person on the Earth who just writes off hysterical, panty-wetting stuff like this? When did he say this? in the 1960s or something? It's 2010 now, right?

Re:Time heals (1)

techno-vampire (666512) | more than 4 years ago | (#31423712)

Remember, this is Wirth we're talking about. He's the guy who made a fetish out of top-down programming while designing a language that's intended to be written and compiled bottom up! The guy's never been anything but a quiche-eating hypocrite in my book.

Re:Time heals (3, Funny)

multi io (640409) | more than 4 years ago | (#31423814)

It's Dijkstra we're talking about. And Dijkstra does have quite a few genuinely useful and lasting achievements speaking for him (semaphores and such), while Wirth was indeed, more or less, a quiche-eater.

and... (1)

tjstork (137384) | more than 4 years ago | (#31423848)

And Dijkstra does have quite a few genuinely useful and lasting achievements speaking for him (semaphores and such),

Didn't Dijkstra also pretty much lay down subroutines and coroutines.

and... (1)

Vahokif (1292866) | more than 4 years ago | (#31423908)

And Dijkstra's algorithm for graphs, used on the Internet to this day.

Re:Time heals (2, Informative)

julesh (229690) | more than 4 years ago | (#31423772)

Depends on the BASIC. I use RealBasic at work as an alternative to LabView.

RTFA. The author is quite clearly talking about non-block structured BASICs of the MS-BASIC kind.

Am I the only person on the Earth who just writes off hysterical, panty-wetting stuff like this?

Again, read for context. Dijkstra was being intentionally hyperbolic in a joke article when he wrote this. He did intend the point behind it, though.

Simplicity (4, Informative)

azgard (461476) | more than 4 years ago | (#31423664)

There's something to it. I recently downloaded a ZX Spectrum+ manual from worldofspectrum.org (the colorful one), and was amazed by how simple the language is. The complete reference takes like 10 pages? And it can draw lines and circles..

Now compare it with any modern language, such as Java or Python. The language description itself takes 10x more than that, and the libraries available are vast. I am not arguing it's a bad thing; I am just arguing that simplicity may be a key here.

Re:Simplicity (1)

MichaelSmith (789609) | more than 4 years ago | (#31423914)

I started out on a little basic-in-rom interpreter and it was okay for a while. If I needed performance I had to write 6502 machine code. Eventually my dad built up a CP/M system and I got my hands on pascal.

But I knew people of my fathers generation who grew up on fortran and still wrote fortran in newer languages (pascal, c, etc). IMHO fortran was more harmful because it went further than basic and the coding style it imprinted on people went deeper.

Re:Simplicity (1)

JumpDrive (1437895) | more than 4 years ago | (#31424006)

Ahh, that quote was a spaceship flying about 300 km over your head.

That explains it! (1)

voodoo cheesecake (1071228) | more than 4 years ago | (#31423668)

Damn, all this time I was blaming it on Bacardi 151 mixed with Jolt!

Meh (2, Interesting)

s1lverl0rd (1382241) | more than 4 years ago | (#31423670)

I started out with QBasic. It was absolutely horrific - the language itself and the code I wrote as well. QB convinced me to never, ever try VB.

So yes, starting out with BASIC helped me tremendously :)

Second story from this blog this week... (2, Insightful)

julesh (229690) | more than 4 years ago | (#31423672)

...and I'm wondering: what's with the random sushi pictures?

Re:Second story from this blog this week... (5, Funny)

gibbled (215234) | more than 4 years ago | (#31423692)

Clearly there's something fishy going on there...

Re:Second story from this blog this week... (1)

ipquickly (1562169) | more than 4 years ago | (#31423922)

no offense to sushi connoisseurs
but preceding the activation of image block
a feeling of illness ensued

That might be right... (1)

Robert Zenz (1680268) | more than 4 years ago | (#31423678)

...but does totally depend on the programmer himself. BASIC (including VB6, VB.NET) gives you many bad habits and wrong estimations about how programming is (Case-Sensitivity, Implicit Type-Casting...). It's an easy to learn language, but you _have_ to look beyond your own nose if you wanna start with a C-like language afterwards.

Funny argument (4, Insightful)

phantomfive (622387) | more than 4 years ago | (#31423694)

His argument is kind of funny. He says people who've learned in BASIC have learned what NOT to do when programming. I have to admit he has a point....I learned exactly why spaghetti code was a bad idea after doing it for a couple years. Some people think they know what spaghetti code is, but unless they've written code with line numbers, they probably don't.

Re:Funny argument (2, Insightful)

0123456 (636235) | more than 4 years ago | (#31423744)

Some people think they know what spaghetti code is, but unless they've written code with line numbers, they probably don't.

And the good old days of 'LET A = NOT PI' to save three bytes of RAM :).

(ex-Sinclair BASIC programmers will understand why such arcane constructs were beneficial when you were low on RAM)

Re:Funny argument (1)

jpmorgan (517966) | more than 4 years ago | (#31423748)

I agree. I started on QBASIC, so I didn't have to cope with line numbers... but the code was still spaghetti. I remember the joy I felt upon discovering subroutines.

It's like a child burning themselves for the first time. Sometimes it's the best way to learn.

Re:Funny argument (3, Interesting)

phantomfive (622387) | more than 4 years ago | (#31423796)

That is totally true, I remember the first time I saw structured programming, it was something simple, just an easy way to print a list of items on the screen, and it was literally a feeling of the joy of discovery. I got addicted and started thinking up my own ways to structure code.

Compare that to the guy I met when I was tutoring CS, who said, "functions, why do I have to use functions to write this program? I know how to use functions, it's such a waste of time." The idiot could have finished the program in the time he spent complaining about it, but he certainly did not feel the joy of discovery.

Re:Funny argument (1)

azgard (461476) | more than 4 years ago | (#31423756)

It should be also said, though, that for people who programmed on 8-bit computers (I had ZX Spectrum), there was hardly any other way than to have spaghetti code at the time. OOP was non-existent and Lisp too complex. At the time, global variables, fixed-length arrays and GOTOs were the way how to actually program effectively (both in BASIC and assembler).

Re:Funny argument (1)

phantomfive (622387) | more than 4 years ago | (#31423822)

Yeah, there were no 'else' constructs. If you wanted an else, you had to do it yourself with a couple GOTOs. Also, the worst part about line numbers was when you decided to add something later, and there weren't enough lines. A program that had been refactored this way a few times could literally move randomly through the source code.

In praise of...BBC BASIC (3, Informative)

mccalli (323026) | more than 4 years ago | (#31423864)

Yeah, there were no 'else' constructs. If you wanted an else, you had to do it yourself with a couple GOTOs. Also, the worst part about line numbers was when you decided to add something later, and there weren't enough lines. A program that had been refactored this way a few times could literally move randomly through the source code.

I never owned a Beeb, though I had several friends that did. I used them at school a lot too, and their BASIC was extraordinarily advanced. The ELSE statement was there, as was the standar(ish) GOSUB, but you could also define true procedures which returned values etc. (DIM PROC), and there was a clean way of dropping down to the 'OS' proper (OSCLI statements).

In addition, it also solved the line number problem you mentioned. It had a renumber command so that everything would become properly spaced out again. I remember the style of coding you're describing from my C64 efforts - the C64 was actually MS BASIC and it was dreadful, anyone wanting to do decent high-levle coding used to get the Simon's BASIC [wikipedia.org] cartridge.

As a whole though, the BBC simply had the best BASIC of any 8-bit I encountered. That's not too surprising given its background and use as a teaching tool, but they did it very well indeed.

Cheers,
Ian

Re:In praise of...BBC BASIC (1)

mccalli (323026) | more than 4 years ago | (#31423872)

DIM PROC

Argh. DEF PROC, not DIM PROC.

Cheers,
Ian

Hey, I know.. (0)

Anonymous Coward | more than 4 years ago | (#31423990)

I know spaghetti code, but then again I am mentally mutilated by Brainfuck2D.

as noted above (0)

Anonymous Coward | more than 4 years ago | (#31423710)

I was #1, the top banana, programmer for assembly, C, pascal, fortran and many more even ada, extremely well paid on route 9. Learned programming with a sinclair zx-81. then went to college to be a computer engineer. Go Figure!
If you cant program in basic, you cannot be a programmer, or an engineer for that matter.

BASIC is great for kids (4, Insightful)

VirtualUK (121855) | more than 4 years ago | (#31423714)

I disagree with the premise that BASIC teaches bad habits. I stick with the old adage a bad workman blames his tools. BASIC teaches kids (like I was over 30 years ago) from the ages of 5-6 how to put together simple logic, and gives them the very basics of languages constructs like variables, loops, sub routines, etc. without them having to grasp structures, classes, polymorphism, OO, etc. that a lot of grown ups that have been involved with writing code for quite some time can have issues with.

Re:BASIC is great for kids (3, Informative)

phantomfive (622387) | more than 4 years ago | (#31423836)

If you had read the article, you would know that you had just written a fairly decent summary of the author's main point.

Re:BASIC is great for kids (3, Insightful)

Anonymous Coward | more than 4 years ago | (#31423862)

I maintain that Python can do this much more easily due to the fact that there are simply fewer ridiculous syntax requirements in a simpler to read format. The things you learn in BASIC can be taught at a much more significant level in Python (inline AND block comments, order of instructions, basic control structures, variables and their use) without jumping through the hoops that you will in BASIC. Python's use of whitespace and extensibility allow beginners with an aptitude to expand on their knowledge easily by making simple inferences about how some control structures work (Python has an excellent for loop implementation) .

Python does not require classes, can be used as an imperative language, and can provide subroutines in the form of other functions easily simply be defining it in the environment (which is not a difficult concept to grasp, "the computer needs to be told that it can use it" will suffice for beginners which is true enough).

Basically, Python can provide all the same benefits as BASIC without the stupid unnecessary crap (Explicit Line numbers? Really? Are we still using punch cards?) that always annoyed me.

I will give BASIC one thing - it's basic geometric drawing library was really easy to use. Problem is, we NEVER USED IT except as a "hey, so this is how you use it, now we're never going to talk about it again." Might as well have learned LOGO (which I had taken as well, turtles were awesome and provided a good intro to iteration even if it was never described as such in class.)

Re:BASIC is great for kids (0)

Anonymous Coward | more than 4 years ago | (#31423870)

Actually, those things could be better taught by primary school mathematics teachers. Primary school maths is supposed to be all about patterns. Examples: efficient methods of computing the sum of an arithmetic series; symmetry (etc.) of shapes; identity elements for + and multiplication; basic logic arguments like p -> q (not like that of course, but in real world terms). All of this quite literally is child's play.

After that programming computers is nothing more than an application of those simple facts. Did I mention QBASIC anywhere?

Granted, I had a similar experience to yours, playing with DOS with the said QBASIC and batch files and all the rest. That said, I think it is harmful to be introduced to programming too early before mathematics. You know how to build a great program at a young age, but with no appreciation for the ideas for what they are. You can go in one direction but not the other. If you think you can, you went the other way already.

The problem is having bad teachers. Luckily for me I didn't have many (but not 0) of them.

Re:BASIC is great for kids (0)

Anonymous Coward | more than 4 years ago | (#31423896)

For some kids. I remember fighting against it when I was maybe 10. I was by far the best in my class in math and physics, and I remember being really pissed off that others picked it up so easily.

When I tought myself C (yes, using ``The C Programming Language'' by K&R), I was in heaven. Somehow, it made sense. Grasping things like structures, classes, polymorphism, dynamic vs. static memory allocation and so on is what made it logical and interesting.

All in all, it really depends on the character. This is why some people end up studying biology and some computer science, for example, or why people have such different opinions on BASIC.

Re:BASIC is great for kids (1)

smash (1351) | more than 4 years ago | (#31423936)

A bad workman may blame his tools, but BASIC (traditional line numbered basic) is a tool that encourages formation of bad habits.

If you can't get your head around basic data structures, then perhaps programming isn't an ideal career path. To do anything useful at all, you ARE going to have to deal with data structures.

Pascal or even C is a much better first language, imho.

I started off with TRS-80 Color Basic on a Coco 2.

Re:BASIC is great for kids (0)

Anonymous Coward | more than 4 years ago | (#31423962)

5-6 year olds are just learning how to READ and you expect them to be able to learn to program?! o_O`

Re:BASIC is great for kids (0)

Anonymous Coward | more than 4 years ago | (#31423968)

I stick with the old adage a bad workman blames his tools.

Argh. Pardon the fork, but it's a poor adage. What it's meant to teach about attitude is lost upon the intended target, the beginner, because the simple mindset misinterprets it to mean that skill always triumphs over bad tools; that there are no bad tools. It causes more confusion than clarity.

Sorry, but after half a lifetime of using and selling tools, I just twitch when I hear that one trotted out. I agree with you on BASIC.

There is value in BASIC (1)

JazzXP (770338) | more than 4 years ago | (#31423718)

It's what I started on, and learning the fundementals such as if/else, do/while, variables, arrays, etc will give you a massive head start on any programming course in the future. It's so simple that when you look at code it's not so complex that it will scare you off, and easy enough to just start hacking around (even the good old:-
10 PRINT "HELLO WORLD"
20 GOTO 10
is quite valuable).

That said, it's not really worth while learning all the ins and outs of the language as anything real world (even *shudder* Visual Basic) will be quite different.

Never got basic. (1)

OpenQL (1754612) | more than 4 years ago | (#31423724)

And the name doesn't sit easy for me.

Simple rewards (0)

Anonymous Coward | more than 4 years ago | (#31423726)

I learned BASIC on a Commodore Vic-20 when I was about 6. The big problem with that flavor of BASIC was its shallowness: it didn't reward elegant solutions to programming problems and it was very easy to hit the performance limit. I never really managed to build anything more complex than text adventures and very simple arcade games. Still, the BASIC prompt was the very first thing you saw when switching on the micro so you were naturally attracted to experimenting with it, assisted by handbook that was included in the box. The prompt rewarded curiosity, especially when you started to enter those seemingly random values for PEEKS and POKES. Nowadays, on Windows machines, the prompt is hidden away from sight and there's hardly any mention of a programming or scripting language anywhere in the GUI.br /br /I can't say that learning BASIC made me a better or worse programmer, but that's what got me interested in computing in the first place: those simple but oh-so-thrilling rewards of getting the machine to do what you want it to do.

Simple, but genuine rewards (1)

zr-rifle (677585) | more than 4 years ago | (#31423738)

I learned BASIC on a Commodore Vic-20 when I was about 6. The big problem with that flavor of BASIC was its shallowness: it didn't reward elegant solutions to programming problems and it was very easy to hit the performance limit. I never really managed to build anything more complex than text adventures and very simple arcade games. Still, the BASIC prompt was the very first thing you saw when switching on the micro so you were naturally attracted to experimenting with it, assisted by handbook that was included in the box. The prompt rewarded curiosity, especially when you started to enter those seemingly random values for PEEKS and POKES. Nowadays, on Windows machines, the prompt is hidden away from sight and there's hardly any mention of a programming or scripting language anywhere in the GUI. I can't say that learning BASIC made me a better or worse programmer, but that's what got me interested in computing in the first place: those simple but oh-so-thrilling rewards of getting the machine to do what you want it to do.

Bah! (1)

Greyfox (87712) | more than 4 years ago | (#31423752)

You haven't really programmed until you've implemented a linked list using arrays in Basic!

Worthless? Hardly!

Re:Bah! (0)

Anonymous Coward | more than 4 years ago | (#31423774)

BTrees in Brainfuck. Discuss.

Re:Bah! (1)

smash (1351) | more than 4 years ago | (#31423946)

Pointless.

Appreciate the difference (5, Insightful)

Katatsumuri (1137173) | more than 4 years ago | (#31423764)

As a programmer who started with old-school BASIC (numbered lines, etc), I was overjoyed with better elements of structured programming in Turbo Basic, and totally excited with C when I learned it. It felt like having my hands untied. So I would state the contrary: you cannot fully appreciate the structured programming unless you went through the GOTO hell.

I hear a lot of similar FUD from some people, like "you can't grok OOP if you started with C", or "anyone who touched .NET or Java is lost for C++..." It boils down to "people are idiots, they can't possibly learn anything new, they are either indoctrinated at birth in My True Way, or lost and hopeless." Who in their right mind would take that seriously?

Instant Basic (1)

tsackett (410681) | more than 4 years ago | (#31423766)

Anyone else remember learning to program with the book "Instant Basic"? It was formatted like a Trader Joe's advertisement, with lots of Victorian clip art, and it let a lot of us learn the basics of programming -- conditional branching, loops, variables -- without actually having access to a computer.

Basic and Basic... (1)

chrysalis (50680) | more than 4 years ago | (#31423778)

Whoever hasn't coded with GfA-Basic or Omikron Basic never experienced how a fun and versatile language it was.

Variety (4, Interesting)

RenHoek (101570) | more than 4 years ago | (#31423788)

I've gone from MSX Basic to Turbo Basic to Turbo C. Now I can code in all kinds of languages, assembly, PHP, Ruby, Javascript, etc..

I do think that BASIC has value as a first language because it gives back results immediately. Sure, nowadays there are other script languages, so you don't have to go through compiling and all the other complexity. BASIC is valuable because it's just that: basic. You don't have to worry as a first-timer about libraries, include files, functions and everything else. You get down to the very basics like variables and program flow.

And after a lot of years of BASIC programming I knew the limitations of the language (which largely depends on the interpreter). That's when I switched over to Turbo C. And to be honest it didn't took me long at all to learn C because I was a pretty reasonable BASIC programmer.

What I _do_ object against is stuff like Visual Basic. That's taking a limited language which is simple and jamming it into a place where it shouldn't belong. To let Visual Basic work, they stuffed all kinds of non-original basic stuff in there which make it more complex then something like Visual C. Their idea was "lets make making real application easy with Basic, because Basic is easy right?". It doesn't work like that.

I also think that Java is not a language that people should start programming in to be honest. Object oriented programming is NOT something people should learn before they had a taste of procedural programming. Fun fact. I went back to my old school to see about taking some night classes to get my CS degree. (I dropped out at the time and I've learned a LOT more on the job then what they were teaching.) At their open house classes I asked about procedural programming and if they still taught it. They scoffed and said nobody uses that anymore. This when I've been a Linux kernel developer for 10+ years now which is 100% procedural ANSI C. It's all Java they teach nowadays.

In closing. I think a good programmer is somebody who explores. If I have a Windows application that does something cool, I take it through a disassembler to see what makes it tick. I look up DOT NET C# code snippets to see what it's all about. I look through COBOL and ALGOL source code to see what constructs people used in the past. I patch ARM assembly code to fix bugs. I do all those things and not rigidly stick to a single programming environment. A good programmer is a state of mind, not the language he works in.

Re:Variety (1)

RenHoek (101570) | more than 4 years ago | (#31423912)

PS..

GOTO's have their place, even in modern programming languages. Fuck C for not having a 'break [n]'. :)

Re:Variety (1)

vikingpower (768921) | more than 4 years ago | (#31423960)

Amen at your last phrase. If it takes Rebol to perform a certain task, then heck - let's use Rebol ! If the next assignment is best done in ADA - well, why not ?

I once had a boss, a very good manager, one of those who had crept up the scales from electronics engineer to vice-president. He had only one test to submit candidates for software engineering positions to. It was about designing an algorithm, and therefore language-independent. You could answer with pseudo-code, Java, C, or with an outline of your algorithm in French. Invariably, it would expose your ways of thinking. Still the best test for prospective programmers I've ever seen.

I started with BASIC (3, Interesting)

OpenSourced (323149) | more than 4 years ago | (#31423794)

Years before I took any formal course, I was looking at the manual of a BASIC computer and making circles on the screen by programming a dot that kept to the same distance to another and rotated. I still remember the emotion of seeing a real circle emerge on screen. I don't know if BASIC helped me much to program, but the immediacy of the thing certainly did much to keep my interest alive.

Re:I started with BASIC (3, Interesting)

KillzoneNET (958068) | more than 4 years ago | (#31423876)

I too started with BASIC. In my case this was freshmen year in High School back in 1999 on QBASIC. I had dabbled a little with HTML but that was nothing like an actual language that had logic. It was there that I learned the basic blocks that made me the programmer I am today. I went from simple logic to loops to graphics and sound.

By the end of the year I had a full animation of a house with Christmas lights and music. I even had a very primitive text based RPG working with the ending taken straight out of Monty Python's Holy Grail.

It was from there that I learned C++, JavaScript, and many other languages. The logic from BASIC carried me over very easily to other topics.

The problem with students is not the language they learn, but the fun they can find out of it. You have to find what interests them and drive them in that direction.

Re:I started with BASIC (1)

vikingpower (768921) | more than 4 years ago | (#31423938)

Kewl sig !

Back in my day... (0)

Anonymous Coward | more than 4 years ago | (#31423808)

Back in my day... we didn't have basic...
we didn't have Assembler
We didn't have machine code
we didn't even have ones...
we coded in zeros

Re:Back in my day... (1)

vikingpower (768921) | more than 4 years ago | (#31423930)

Man - back in MY day, we wished we'd had zeroes ! We used empty animal skulls for zeroes.

It's not the language, it's the teacher (3, Interesting)

willoughby (1367773) | more than 4 years ago | (#31423812)

Most folks who have learned C++ learned it in a classroom with a real teacher. Most folks who learned BASIC learned by banging away on a computer keyboard at home.

Most people aren't very good at teaching themselves. I've seen this a lot with people trying to learn Morse code and giving up in frustration.

You can pick up a lot of bad habits without someone to guide you.

Re:It's not the language, it's the teacher (1)

vikingpower (768921) | more than 4 years ago | (#31423918)

I concur on the Morse code. I learned it in the Navy, from a good and patient teacher, who basically insisted upon enormous amounts of exercise. Now, twenty-odd years later, it still sits so deeply in my brain that nothing can wash it out.

Bah (5, Insightful)

tsotha (720379) | more than 4 years ago | (#31423834)

Computer-science legend Edsger W. Dijkstra famously wrote: 'It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration'

Like all eminently quotable people, Dijkstra tended to hyperbole and oversimplification.

First language doesn't matter (1)

urusan (1755332) | more than 4 years ago | (#31423844)

The first language I learned was Javascript. Well, actually I tried to learn QBASIC but it was just so horrible that I lost interest and nearly didn't become a programmer. I don't think any of that made a difference in the long run.

What's really important is learning more than just the language you started with. Learning many different ways to express yourself will really get you thinking about problems in a way that is not tethered to the specific syntax of your favorite language (not to mention introduce you to many different features that you might otherwise be ignorant of). Additionally, truly learning those extra languages will generate a lot of mental exercise. How you've spent the bulk of your time is far more important than where you started out.

Essentially, the author is trying to rationalize his start with BASIC by turning into some sort of advantage...either that or he's joking.

There's never anything wrong with any language (1)

zlel (736107) | more than 4 years ago | (#31423850)

A language may lend itself more naturally to a certain way of thinking, but isn't bending the language for the job the role of the programmer? I personally agree with the author - I think it's always a good mental workout to work in languages that do not give you the wealth of constructs and libraries of the many language popular today, but more than that, starting out in Basic exposed me to the many dialects of Basic very early in my career such that I'm now used to programming in unfamiliar languages.

It wasn't all that great... (3, Interesting)

Kjella (173770) | more than 4 years ago | (#31423852)

...but it was BASIC. And the expectations were so low. "10 PRINT "Hello, World!", "20 GOTO 10" and it started doing something. The programming manual was well worn by the time I was 10, would that have happened with any other language? I doubt it. Things like lack of scoping makes the easy things easier and the hard things harder. The point isn't to learn everything from your first language, the point is to get started and interested at all. Moving to DOS was sorta ok, but moving to Windows killed my interest. C/C++ was just horribly complicated, I remember trying to get up a window in the Win32 API and it was like wtf, how hard can this be? MFC was even worse, Java (really early java, on hardware of the time) was slow and unresponsive as fuck, Javascript was a toy language for websites and never really like Pascal or VB much either. I didn't regain my interest in programming until I went with C++/Qt, or maybe more Qt than C++ really. QMainWindow *mw = new QMainWindow(), mw->show(). The hard stuff is still hard, but I very very rarely find I write "overhead" code that I shouldn't have to.

Re:It wasn't all that great... (1)

smash (1351) | more than 4 years ago | (#31423978)

My history is similar, however i discovered Turbo Pascal and inline assembly. Couple that with the ease of getting into and programming mode 0x13 (display = array of bytes :)) and actually getting interesting things to happen was fairly straightforward and fun.

I lost interest in Window systems as well due to the amount of bullshit to get anything on the screen just killed interest. I've gotten into Cocoa with xcode and interface builder recently, and its fun again :)

I definitely agree, its the "overhead" code you need to screw around to just get anything interesting to happen these days that kills the fun.

Easily gotten over (5, Funny)

wrmrxxx (696969) | more than 4 years ago | (#31423888)

easy language first your get-over is

FORTH started I at-all me affected not and

Basic is, well, basic. (1)

Plekto (1018050) | more than 4 years ago | (#31423890)

My son is currently at the age where he wants to start learning to program. The thing is, other than Basic or similar entry-level languages, he just can't wrap his 11 year old mind around C++ or other more complex languages to start. And I can't exactly drop him straight into SQL or Linux either. He has to start somewhere, and simple languages fill this gap very well for the young. It's also the same reason why I hope that they never stop making those ###-in-one electronic kits. The basics may be old and useless to most of us here, but to our kids and grand-kids someday, it'll make the difference between being a good engineer or technical person versus just another brainless repairer who swaps parts without knowing why.

Learning out of a book in high school or college isn't obviously the same as hands-on building and programming.

Dijkstra ? Legend ? (4, Informative)

vikingpower (768921) | more than 4 years ago | (#31423902)

Dijkstra, who taught at Eindhoven Technical University - which is how I superficially came to know him - was mostly a self-declared legend. He cultivated his own myth, even going as far as publishing a little book with his own quotes.

Dyslexic programmer (1)

GuyFawkes (729054) | more than 4 years ago | (#31423904)

Back in the day I used basic a LOT, arguably like a sophisticated calculator programming language to do engineering calculations.

Show me a page of PHP even and everything goes blurry and out of focus.

That's dyslexia for you.

Who learns BASIC anymore, anyway? (1)

gig (78408) | more than 4 years ago | (#31423926)

Are people still teaching or learning BASIC?

I know JavaScript, PHP, and AppleScript, and I learned them so I could script the Web browser, the Web server, and the Mac desktop, respectively. With just a few simple lines of each you can make really practical and productive things happen that seem to me like they would reward the beginner. My background is publishing, though. Maybe I'm biased towards programming that makes documents.

What does BASIC actually do?

Back when i was 11.. (1, Interesting)

Anonymous Coward | more than 4 years ago | (#31423934)

my mother draged home a 286 from work. I knew nothing, but i poked and i prodded and finally learned that exe files were programs. I stumbled upon qbasic.exe and did'nt understand what it was. I pressed F1 and the help appeared. I read it all many times and my programming carrer took of fromt here. It took several years before i left basic for C and ASM.

Today i have no problems getting my work commited to the Asterisk project. The guy is full of it.

I'd guess there's a critical period & an attit (3, Insightful)

weston (16146) | more than 4 years ago | (#31423940)

I think the author is mostly on. He's aware Dijkstra was exaggerating for effect, but also completely correct... if you started programming in the early home computing era, you probably started with a BASIC. I was lucky enough to get some varied exposure earlier to some other languages (LOGO and some shallow assembly), but until I was 15, it was pretty much Basic.

And none of my programming habits now resemble anything close to the BASIC I wrote in when I was that age. Except, occasionally, for the rare cases where global state seems to make sense, and even then, I try to namespace things in one way or another. But by and large, I picked up structured programming, I picked up object-oriented programming, I picked up logic programming, and I'm learning to enjoy functional programming.

I will say... there was a time when I was probably close to being "ruined." It was when I was learning C++, and I only really had Pascal, basic C, and Basic under my belt. And I had a pretty solidly structured-imperative mindset, and really hadn't seen any other way of doing things. C++ married data structures and methods in an interesting way, but it didn't seem like more than a stylistic practice to me. I was pretty sure most languages were alike, you just had syntax and typing differences.

But there was one thing: I'd had to learn Prolog for a very specific job. We were teaching it to high school students in a CS summercamp I worked at for a few years. The first year, I just thought "Man, this is weird," more or less got through all the exercises, and left it behind, and did what most people do: dismiss it as an odd research toy. The second year, I thought "this is weird, but interesting." The third year, I thought "Wow. There are all kinds of intriguing ideas here."

And there are, and I still think it could stand to see more usage in mainstream software, but more importantly, I think I'm pretty lucky I got repeated exposure to a language that forced me to think differently before I got very far into actually working in the software industry.

Because I now think there's either a critical period [wikipedia.org] (or possibly, at a minimum, a critical attitude of some kind) after which a lot of programmers tend to lose either the humility or the curiosity that drives people to think about different programming constructs and habits. I think if a programmer has been minimally exposed before they reach it, they'll keep just enough of one or both of those attributes that they'll be interested in what they don't already know, rather than arriving at the point where "they've already learned the last programming language they'll ever need." [blogspot.com]

And if they don't get so exposed, they become Blub programmers [paulgraham.com] , where generally $Blub is some industry-leading language that does enough you don't easily bump up against tasks that are near impossible in it.

To tie this back in with a point I think the author missed, I suspect that some of the difficulties with Basic are actually part of the reason why it didn't end up ruining more programmers. Almost everybody who really came to grips with it as a tool probably realized that it couldn't possibly be the last programming language you'd ever need (if it weren't enough that any effort to look into working as a programmer revealed that Basic was clearly not the strongest payroll ticket).

Better than nothing (3, Interesting)

kainosnous (1753770) | more than 4 years ago | (#31423956)

When I was first learning to "program" I had nothing more than an old computer with DOS. The internet was something I had heard about, but had never experienced myself, and I didn't know what Linux or even Unix was. The only way I had to learn was from some books I found at the library. At first, it was just .bat files. When I discovered BASIC (I thing it was GW BASIC), I was excited to have it. Later, I discovered QB.

There are some advantages. First, I didn't have to set anything up or worry about what includes I needed. A simple PRINT "Hello word" was enough. What was better with QB was that with the press of F1 I could browse the list of commands. Also, it came with a Gorillas.bas and Nibbles.bas. I spent hours injecting lines of code into those games.

Sure, if you have a full Linux environment with gcc, man pages, and web access then BASIC is just some lame toy, but if it's all you have It's a start.

Re:Better than nothing (1)

vikingpower (768921) | more than 4 years ago | (#31423976)

Yup. I'll always remember my first line of code. Some geeks on my high school were excited about writing games on a Commodore, that loaded its BASIC code from a tape recorder. I thought "mwah, so what". Until I discovered the PEEK and POKE commands. I was sold forever to computer programming.

BBC BASIC (4, Interesting)

tomalpha (746163) | more than 4 years ago | (#31423970)

I cut my teeth on BBC BASIC back in the 80's. It was simple, powerful, let you do pretty much anything and best of all came with a built in assembler. Now that was really neat.And it just worked. It was easy to optimise individual subroutines in assembler. This was age 10. At my simple state school with a couple of BBC Model Bs in the corner, I wasn't the only one doing that either.

I make a living writing C++ now and seem to do fairly well at it. The kids coming out of university that I interview these days haven't touched BASIC, or C++ for that matter. We want them to write good C++ when they come and work for us. The intelligent ones adapt easily to working with pointers etc. The less able ones that have somehow made it through the interview process struggle.

Not Basic, but restrictions (1)

s-whs (959229) | more than 4 years ago | (#31423982)

The Reinvigorated Programmer argues that the world is full of excellent programmers who cut their teeth on BASIC, and suggests it could even be because they started out with BASIC."

Bullshit. You know what may be a reason? The extreme restrictions. In the 80s I used a fairly good Basic, BBC Basic, but I mostly used 6502 assembler. This on a machine with very limited memory. What that does is cause you to do things as efficiently as possible, it makes you think how to best represent the data in memory etc. In german there's a saying: In der Beschraenkung zeigt sich der Meister" (which translates loosely to "given restrictions, the expert will show himself to be an expert") but I think even better would be "In der Beschraenkung bildet sich der Meister", i.e. given limitations you will become an expert at various problems.

In literature there are similar situations. Limits of form/rhyme may instead of restrict a writer, actually make him write better material...

But back to Basic: The limitations in there (the early 1980s and some later versions) are mostly not helping one to become an expert. They just annoy. What I clearly feel and which is what Dijkstra probably refers to (as it may be a strong effect in some programmers) is that I know how to do something directly, and thus the minimalist urge is there to write something different to using the features of the language you're using because for example you may think that would be less efficient.

What Dijkstra meant was: (0)

Anonymous Coward | more than 4 years ago | (#31423988)

What I (like to) think Dijkstra meant, when he issued his famous quote, was probably a lot more like:

"Programmers who learned BASIC first can't really be coaxed away from thinking that all languages should be as easy as this."

Trying to convince a BASIC programmer that they should understand CPU Instructions, Registers, or hell, even pointers, or why you should end a statement with a semicolon, is hard to teach a programmer for whom UP UNTIL NOW, THE COMPILER (or runtime) DID IT FOR THEM.

Anything else seems like a step backwards. And hence, they do not respect the more elementary languages. "Really," they think, "is it so hard for the compiler to manage my memory allocation for me, when my $400 1978 micro can do it when I program it in BASIC?"

A well-educated programmer has since learned that programming is, in essence, understanding how to get the machine to perform a task; and, that, while there are different ways of asking, only a certain exact way will ultimately be understood by the machine. And you might as well know the exact way, since any problems will be related to that exact instruction (or lack thereof), and it is also obviously optimal in terms of effort (both for you, and the machine).

Dijkstra was commenting more on how children who learned to program on simple BASIC micros didn't usually grasp the new expectations of the compilers when they were writing for things such as mainframes. But, on the other hand, why DO you have to manage your own memory, still? The imperious little bastards who refused to learn anything that requires them to know more about the machine than BASIC required, well, they did have a point. In fact, in many more modern languages - like the recent Google Go - you mostly don't have to concern yourself with things like memory allocation.

Dijkstra was right, but he was also wrong.

I'd have to agree (1)

JumpDrive (1437895) | more than 4 years ago | (#31423992)

I've seen to many programmers who get way over there head with Visual Basic and think they are ready to jump into more powerful programs.

I think I see a representation of what he was talking about a lot. Even here I see it in the responses. "I wanted to draw a circle on the screen. So I figured out how to do it in BASIC and I did." and they kept on with this attitude, never considering what the memory issues are and communication issues. So they right code on 16GB RAM with the RAID 0 15000 RPM SCSI with the latest 3.x CPU's and look like dear in headlights when they have their resulting code bomb on a 1.7 GHz processor with 2GB of ram.

I simplify, but from where I sit that's what it looks like to me.
Don't get me started on stuff I've seen come out of LabView. (You mean there's a limitation on a Southbridge?).

The Language is Irrelevant (1)

Degro (989442) | more than 4 years ago | (#31423996)

I found programming by learning Basic in a high-school programming class. Anyone that was so affected by the first language they were introduced to had some preexisting conditions I'd say... If a person only has the capacity to think in terms of the tool currently in their hands then forget about it. I quickly moved on to C and Linux in my teens when Basic didn't support what I wanted to do and my empty wallet didn't support Borland or Visual Studio. So yeah, thank you BASIC, public libraries and Linux.
Load More Comments
Slashdot Login

Need an Account?

Forgot your password?