I dunno about the US of A and the United K , but in India , schools still teach GW-BASIC. Yes, it's the one in which you could do this:

20 GOTO 10

As far as my experience goes, even writing assembler is easier than this mess of a language. It could easily be replaced by something like Python. Also , when last year C++ was replaced by Java, I was really puppy* off! So despicable is the state of things is that people tell me that we're not using Java -- we're using BlueJ... How can those uneducated idiots (about computers) decide what should be taught to children (on the topic of BASIC)

*replace with swear word

+2  A: 

Thats easy to learn,school dont target to teach new technology,school want to teach basics of informatics

I found python 1000% easier to learn. Besides , what is the practical use of teaching children GW-BASIC?????? And what of C++ being replaced by Java????
Aviral Dasgupta
The partical use is that once someone gets the basics of programming, if/else statements, loops, etc in the most simple environment, they can then expand into better programming languages
Click Upvote
do you really want to teach people how to program in a language that is dependant on whitespace?
Matthew Whited
+5  A: 

GW-Basic is a great language for new programmers. If someone has never done any programming before, something simple like GW-Basic will be a lot easier for them to comprehend as compared to something like Python. Also, Java has a lot better support for Object Oriented programming as compared to C++. More commercial applications these days are written in Java than C++.[source]. Hence I would say that its a good thing they are switching to Java over C++.

Click Upvote
Well, then by that logic, one could use COBOL! Also, I believe that people should know how things work in the underlying system... implies C++. A good C++ programmer can pick up Java without flinching , but a Java programmer will probably be in a fix if he has to learn how to do the low level ops. possible in C++
Aviral Dasgupta
Why would a java programmer need to take care of any low level stuff? All the garbage collection etc is taken care of in Java without the programmer needing to do anything. And Cobol is arguably a lot more difficult than GW-Basic
Click Upvote
I think it depends on the student, and how motivated they are. With assembler, while it may be simpler, takes longer to do "cool things." Like output stuff to the screen, it takes a couple hundred (simple though) lines of mnemonics. In GW-Basic, it's one (extremely simple, English language line).
The argument about it being easier is OK, but point is that : 1) since it is easy, almost anyone can learn it and do it. 2) depending upon their performance in programming BASIC , people are are put into a special "Computer Science" section. Incompetence rocks.
Aviral Dasgupta
Well, in my high school when we had GW basic I was the only person out of the class of 20-30 who got it. Most people hated it or they just couldn't get the programming concepts. So, only people with an aptitude for programming make it past that, most people who aren't cut out for being programmers might pass the class but they won't go forward with a programming career.
Click Upvote
Is it really easier than Python? It may look easier to you, but whatever you learned first will look like the easier. I was surprised once to learn about success in teaching Scheme as a first language.
David Thornley
That link is very misleading. It is measuring how much talk exists for a language, not how many commercial applications use it. Second, Java is at the top of the lists because of poor interpretation. In the first group it has a high ranking purely because their search had a lot of hits for books with "java" in the title. I could list many reasons this search could be in correct, but I think the more important point is that it doesn't matter, C simply has a small number of definitive books. The second group places Java high as Java has had a sordid history that has caused a lot of news.
+11  A: 

Because Basic is the most uhh... basic introduction into von-Neumann architecture which is what all modern computers and (by extension) programming languages are based on.

Think about it:

  • Line numbers = Memory Addresses
  • Variables = CPU Registers
  • Current Line = CPU Instruction Pointer
  • Goto = Jump instruction
I don't think that's the reason. I think it's just inertia.
Roberto Bonvallet
Basic should be thrown away. Any modern language like python would be better suited for teaching.
+5  A: 

If someone is truly interested in programming, they will take what they learn in that class and apply it to a language learned on their own time.

There's also something to be said for starting in a language that is much less powerful than Java or C++.

Jon Seigel

As far as GW-BASIC is concerned I couldn't agree more. This is why a Ruby programmer known only as "_why the lucky stiff" created an amazing platform for learning to program called "Hackety Hack". He in fact had quite a lot of insight into teaching programming to young people at the Art & Code symposium:

thanks for the link!
+6  A: 

GW-Basic was taught to me in 7th grade about 10 years ago. I found it was a great language and easy to experiment with as a beginner. Even the non-pc-freaks had little problem learning the language.

In my opinion it is a great tool to motivate beginners to learn more advanced programming languages.

+7  A: 

As far as teaching in India is concerned and why they use GW-Basic, I can only guess (being from the USA):

  1. It's cheap. Perhaps they have received old hardware with GW-Basic on it. Hey, it's there, it's free, why not use it to teach children.
  2. The teacher knows it. If the teacher knows/understands it, he/she can teach it.

At a prev. employer, I met a number of people who immigrated to the USA from India and explained that the first time they worked with Windows was when they arrived over here, none of the schools (not even college/university) had it. It might depend on the school they went to, but maybe its a matter of the available equipment. It's possible this GW-Basic usage you speak of works the same way: they used what technology they had.

Maybe it means they are, well, resourceful.

As to whether its good that they are learning something so old, I'm not so sure it's such a good idea. But as the famous (American West) folk wisdom says, "Do with what you got. It'll pay off in the end." Better to expose them when they are young.

+9  A: 

Ever try teaching programming to someone with no idea what it's about?

I did for 4 years. For absolutely starting out, GWBASIC is pretty good. You can get the most action for the least effort, while still conveying basic ideas, like:

  • The computer finishes one statement before starting the next. (Newbies are inclined to think the computer does everything "at once".)

  • A program is like something built out of tinker-toys. There are only a few basic pieces, and you assemble them to make it do what you want. (Newbies often think since the language has words like IF and PRINT that it will just understand whatever they type in.)

  • Variables are a key concept. They have a name that you give them, and they have values that they get when the programs runs. That's complicated. The name and the value are not the same thing, and there is a distinction between write-time and run-time.

Once you get past some basic concepts with the help of GWBASIC you can begin to introduce a more modern disciplined language.

Mike Dunlavey
+3  A: 

It's funny how fast humans forget.

Remember the first time you struggled with the concept of a loop? With the idea of a variable and how it retained values? With remembering syntax?

Basic has a relatively small built-in syntax, it has fairly flexible structures for loops and other constructs.

I guess over all it's "loose". This helps a lot in learning.

Loose is very bad for good, stable programs. You want very little flexibility, you want patterns that you can count on and very few options (even if you don't know that this is what you want, you will understand it as soon as you have to lead a team of 5 developers from another country).

If any here haven't really considered it, the reason we don't like basic isn't a lack of "power" or speed--is because it's loose--the exact same reason it's good for teaching.

You don't start out running, you learn to crawl in a wobbly sort of way, then you stumble, etc.

But once you are running sprints, you really want to make sure that every footfall is placed exactly where you want it, and if the guy ahead of you decides he suddenly wants to start crawling, you're screwed.

Of course, if you're running along the track alone or in a small, in-sync team, it doesn't matter much what you do. Feel free to use any language you want :)

Bill K
++ Nice way to put it.
Mike Dunlavey
+2  A: 

so you'll learn NOT to use GOTO

+1 for humour...........
Aviral Dasgupta
+1  A: 

I think in my school GW Basic is still taught at 6-7 years (of 10) and the reason of it is that little girls and boys can't understand anything harder than basic :)

Even more, in my university we program on QBasic o_O omg you say? yeah, i'm shoked too :) oh, and they promise one semester of C++ on 4th grade.. yay!


I am from India and GW-BASIC was my first language way back in 1995. It was fun. Things have changed now. My school now teaches another BASIC variant, QBASIC as the first language. Then students move to C++ and Java in standards 8,9,10. Hopefully, Python will take over sometime.

As someone already pointed out, its plain inertia. Its not much of inexpensive hardware which is the reason. Its just the mindset to continue doing whatever has been going on.sigh.