David Brin Laments Absence of Programming For Kids
An anonymous reader writes "David Brin is an award-winning science fiction writer who has often written on social issues such as privacy and creativity. Now, he's written an essay for Salon.com titled 'Why Johnny Can't Code'. He discusses his son's years-long effort to find a way to use his math book's BASIC programming examples. All they were ever able to find, however, were either children's versions (on the Mac) or 'advanced' versions which attempted to support modern programming requirements (and which required constant review of the user's manual). Ultimately, they ended-up buying an old Commodore 64 on Ebay — Yes, for those of you under the age of 30, 'personal' computers like the Apple II and C64 used to all include BASIC in their ROMs."
How about QBasic on Win95, MS DOS, etc? My first BASIC programming experiences were on one of those kiddy VTech laptops, then moved to QBasic on Win95. Worked great... simple BASIC, didn't require any special knowledge. In fact, I quite enjoyed it.
Dupe from yesterday guys, come on.
0 9/14/0320238
http://developers.slashdot.org/article.pl?sid=06/
Oh, man..... Already posted here and I even told "Daddypants".
Visit Jonesblog and say hello.
No sir... REpeat..
I'm a fiscal conservative, it's a pity we don't have a political party anymore
20 goto10
Didn't this get posted yesterday already?
... maybe he'd code up a "dupe detector" for the /. editors to use?
// TODO: Insert Cool Sig
I mean, if I had kids, the first thing I'd do is program 'em to get up and get me a beer from the fridge. Good fer nothin' brats.
while(true) {
zonk.post(dupe);
}
I really do miss loading from tapes.. So archaic, but was sooooooo cool back then, still is now...
Why can't Zonk pay attention?
Thanks to file sharing, I purchase more CDs
Thanks to the RIAA, I buy them used...
It does afford me the option of wondering "aloud" why Brin didn't just download, say, an Apple ][ or C64 emulator. I mean, I always thought the guy was kind of smart, but now I know it's not true. (And don't tell me that non-computer nerds wouldn't know about emulators; if you don't know, ask someone.
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
Yes, for those of you under the age of 30, 'personal' computers like the Apple II and C64 used to all include BASIC in their ROMs.
That must make me... damn, over 30.
yes, the '80s. This is how most of us used to learn. There were still TRS-80s, Amigas, and ancient XT workstations in some of my friends' homes. I was an Apple ][ kid, myself. I guess I still am.
Zhrodague.net - I do projects and stuff too.
Dupes for nerds, stuff that ran two days ago.
No digg.
One word, and possibly start of a loooong flamewar: PYTHON!
I know that /. is famous for dupes, but at some point I start thinking the editors are playing a little joke on us.
I guess "Slashback" got cancelled early, because all we're getting these days is regular dups.
Why pay for the cow when you can get the emulator for free?
Slashdot can post dupe stories about the dearth of programming training opportunities for kids, but they can reject a story I posted about a recent study showing a LACK of programming jobs?
Why should kids learn programming when they'll only be able to compete for a programming job if they take an East Indian's dollar-a-week salary?
--- Grow a pair, liberals... stop letting the Republicans bully you!
What about the Lego Mindsorm? That has a programming language. I'll bet it is way cooler to use a beginners programming language to build robots, than it was to draw boxes, or calculate your homework.
...and hold on, now! Where's my damn flying car?
Zhrodague.net - I do projects and stuff too.
...and teach him Perl
Insisting on "correct" English is like saying that there is only one, definitive recipe for chili.
http://www.kidsprogramminglanguage.com/
120 characters for a sig? That's bloody useless.
Personally, having grown up with the C64 and the Apple][ and all the rest... man, I HATED BASIC.
It was way, way, WAY too limiting and tedious, even for my neophyte 13-year-old self.
I really didn't discover the joy of programming until I discovered Turbo Pascal. It was like somebody unshackling me - even with the crappy PC XT CGA graphics.
Pascal is a *great* learning language. It teaches all the good habits that will be needed for a C/C++/Perl hacker later in life, without all the administrivia involved with C, or the sheer horsepower (with all the syntactic complexity) of Perl.
Go with Pascal as a first language, and you can't go wrong.
DG
Want to learn about race cars? Read my Book
Welcome back to Slashdot - we missed you yesterday... http://developers.slashdot.org/article.pl?sid=06/0 9/14/0320238
Surely it ought to be:
... or something similar, unless you're on BBC BASIC of course - just about the only 8-bit BASIC with real structure to it
10 LET ZONK = 1
20 LET EDITOR = 1
30 IF (EDITOR = ZONK) THEN GOSUB 1000
40 GOTO 30
1000 REM DUPE POST
1010 RETURN
Simon
Physicists get Hadrons!
Developers! Developers! Developers!
Why use that old junk? What's he got against C?
You can simply use an OSX terminal and compile with gcc, no fuss.
But if you want to teach a kid programming: HTML and Javascript is the way to go.
They're universally accessible in new computers, and they're a great way to learn to code and to share the results.
All you need is a browser and a text editor.
You can't take the sky from me...
A boy who searches for years to find a program that will let him do some examples from his maths book. He is like the /. King. We must find him and make him our saviour, he will lead us to victory over these so called "norms"
Stories like this could be relocated there after the first comments.
Red Leader Standing By!
On the "preview" submit of a story (editors do have to click "preview" right?) parse out any links from the summary. Check the summaries from all stories in the last three days to see if any of them contain those strings. If any of those strings are contained, toss an error and a link to that story so that the editor can quickly check the other story to tell if it is in-fact a dupe that they were about to post.
-Rick
"Most people in the U.S. wouldn't know they live in a tyrannical state if it walked up and grabbed their junk." - MyFirs
I'm pretty much the same.
Started Basic at about 5 or 6, Pascal about 12/13, Perl about 15/16, Java about 17 and never really got that into C or assembly except on embedded stuff.
Ironically i'm now maintaining a VB application, and can put my 2 decades of experience to use.
Do you have a link?
-Rick
"Most people in the U.S. wouldn't know they live in a tyrannical state if it walked up and grabbed their junk." - MyFirs
They taught Pascal in my high school, which wasnt such a bad idea. Problem is, this was 15+ years ago and the guy teaching didnt know a damned thing about computers. I think computers are getting much more emphasis at the high school level low.
That said, we were taugh Alice Pascal, which was a sandboxed learning addition of Pascal. My vague memmories tell me that the sandbox itself put so many contraints on you, the you as much learned working around alice pascals limits, as you did learning pascal.
Then again, at this time I had already taught myself C and a few languages before that ( Yes, starting with BASIC on an Atari 800 computer ) so the experience was a rather painful one for me.
perl -we 'print "Big Tits" until 1==0' Is the epitomy of every first program.
Perl seems to fit the bill, since it can be as simple as you want and doesn't even have the type issues Basic has. Perl is happy to be procedural. When you are ready to step up to objectsperl is ready.
Object oriented perl is a wonderful way to learn objects. Wait don't scream. I said "learn". I'd been object oriented programming for years in Java and other languages. But I truly did not understand how all the pieces worked till I wrote perl objects. In perl it's like one of those "visible man" models. You learn how inheritance works. You learn how binding of an instance to a class works. You understand closures for the first time. You understand how the namespaces are kept separate and how instance memory is allocated. It's not just some voodoo that simply works, like in JAVA. Moreover all of the voodoo is not out of reach but right there for you to mess with. An instance can change it's own inheritance if you want it to. An instance can create a new method and write it into it's own namespace if it wants to. An instance can trap calls to it's own methods and redirect them or intercept calls to methods that don't exist and respond to them.
Those features are not unique to perl (for example pyhton implements objects identically to perl). The difference is that All of that object management occurs in perl itself and is not hidden behind syntactic sugar (like python and java). You quickly appreciate what dereferencing costs, etc...
The other thing that is nice about perl for learning is all of those prefixes like $ @, and so forth. They may make perl look like cursing but they force you to think about what a variable is. When I index out an array, I get what? an array? no I get a scalar, so $X[2] is how I index @X. You can look at someones perl program and if it's written well tell what every word is. You cannot look at a bare name in python or java and tell if it's a method, an array, a hash, a scalar or reference. Perl you can. (Oh and by the way let me explode a perl/pyhton myth. python has more special markup characters in use than perl, the main difference is that in python they are suffixes instead of prefixes and are overloaded with multiple meanings--try counting how many modifiers there are some time (e.g. () , [] ** and so on))
Now once you learn perl objects. Well it's time to put down the perl and back away slowly. Python, java are much better languages for writing re-usable, easily read, complex object oriented programs. Perl is still a much more powerful language than either. But it's powerful for efficiently creating compact or single use programs quickly. Not for well designed complex systems.
Perl is good language to start in, plus it's useful enough to work throughout your career. Basic is not.
Some drink at the fountain of knowledge. Others just gargle.
Except the script kiddies are never happy campers.
I've been concerned about this issue for some time. Sure there are "options" out there, such as Javascript and the freebie Macintosh developer tools that come with each new system. However, trying to put object-oriented concepts into a form that children can easily adapt to seems a lot more difficult than one might believe. Even something like RealBasic is a bit tricky to follow if you aren't familiar with how object oriented code works.
There needs to be some kind of readily available interpretive programming language that allows people to start out programming in linear fashion, and later eases them into object-oriented coding.
Personally, I started out on the Apple II using the built-in basic programming language, and eventually moved up to working in machine code. However, despite the advances I achieved with the Apple II, it took me nearly five years to grasp how object oriented programs work. If someone with years of programming experience has this kind of difficulty following OOP, how can we expect children to instantly pick up on it without learning the most basic fundamentals of writing executable code?
In my case, it was Macromedia Director 5's "Lingo" programming language that finally made it possible for me to "connect the dots" enough to understand what exactly is going on under the hood. Since then, I've adapted to OOP far enough to use RealBasic, Perl and Javascript with any level of reliability. (Eventually, I'd like to get some variant of C under my belt.)
Perhaps something along the lines of Macromedia's authorware (now defunct) would provide a good starting point, by giving people a visual programming interface (flowcharting with user defined properties), which can eventually be set to an advanced mode, allowing more confident users to modify the code directly, once they understand the basics.
8==8 Bones 8==8
10 Post news item
20 goto 10
120 characters for a sig? That's bloody useless.
Really, a TI83 is just like those ancient computers of the 80's. It boots up to BASIC, is powered by a Z80, and has a tiny amount of RAM, yet it enough for what it does.
You know what's even funnier? The link I created in the Parent works! And it takes you to the /. home page! hahahahahahahahahahahaha
Logo was the only thing we had. We whipped that turtle to death on the Apple ][ to draw all those fancy lines, circle and stars.
OK, So it's a dupe, and beyond that the poster didn't RTFA.
But anyway...
He Could have just run an old computer under an emulator...
or he could have downloaded something like bwbasic, its GPL even.
He could even downloaded the FreeDos 1.0 liveCD and run bwBasic from there
Good lord man. Why go through all that trouble?
The article should be called Why Johnny Can't Freaking Use Google.
Weaselmancer
rediculous.
I don't think the antiquification of DOS, and of all things, BASIC, is going to have some negative effect.
We'll always have to suffer the hand-wringing from a generation getting older, and I'll always roll my eyes about it.
Luck favors the prepared, darling.
The local community college trains all kinds of programmers and they seem to get jobs:
g it/it/computerproganalyst.jsp
A program aimed at business types. Their projects seem mostly to be Visual Basic front ends on various databases. http://www.conestogac.on.ca/jsp/programs/schoolen
A program aimed at writing code for existing devices. It's pretty low level but they don't build their own hardware. www.conestogac.on.ca/set
A program where they build and program their own hardware. www.conestogac.on.ca/eet/careers
The vast majority of the grads in these programs get jobs. A couple of them had 100% placement last year. So, there are jobs out there.
Go here.... Chipmunk Basic (http://www.nicholson.com/rhn/basic/)
I'm an old assembly language guy that has hacked around with Pascal, Visual Basic, Q Basic, and sometimes embedded C. I now primarily design the hardware and specify the software.
In the last few months I've been putting together proof of concept systems (motors, switches, lights, RFID modules) and am using PBASIC on a Parallax BASIC STAMPS. It's greatly simplified what I do for dog and pony shows. I highly recommend that as a starting point for beginners. I do know that some colleges (and younger) are using it.
Insanity: doing the same thing over and over again and expecting different results. Albert Einstein
Kids that grow up to learn Python are more presentable and well mannered that those that grow up to learn Perl. Flame On!
If you love Jessica Alba
Brin is so full of **** here, it's not even funny. Freshmeat has a whole category full of free BASIC interpreters and compilers. A lot of them run on Windows. He also doesn't seem to understand that there are other languages that can be programmed in a procedural style, just like BASIC. For example, there's nothing stopping you from writing python programs in that style. BASIC doesn't suck because it's simple and nonpretentious. BASIC sucks because it's never been standardized. I learned to program in BASIC on a TRS-80, and it was a major pain having to translate programs written into other dialects into the TRS-80 dialect.
Find free books.
I'm willing to watch their Flash ads in order to read an article, but I've never been able to get past the endless loop of "watch this ad for access!!" despite trying a dozen or more times.
I've even tried turning off adblock, noscript, flashblock and accepting all their cookies. Still just an endless loop of ads.
I'm sort of assuming that the page can't handle mozilla-based browsers at this point.
Too bad for Salon; I might have subscribed, but if their site can't handle my browser and plug-ins of choice I guess I'll have to give my money to somebody else...
Speaking of which, does anyone want to help with my attempt to fill the gap that this article talks about? My old XLogo project needs some tender loving care: http://xlogo.sourceforge.net/. It's a simple Logo/Turtle app, just like in the old days. It works: runs commands, even complex series of commands. However, it has not been worked on for quite some time and still needs someone to implement other commands into the parser, and make it Intel processor compatible (aka. Universal Binary).
I too have lamented the changes in IT. When I first learned to program (1977 on an HP-25), the technical environment was very different. Back then, everyone who wanted to use a computer HAD to know how to program. The scarcity of software meant that everyone wrote their own code or, at least, typed in code from a magazine. Very limited software sharing schemes and the inability to quickly find software meant it was easier to write your own than to find someone else's software. Simple languages, simple hardware, simple interfaces, and simple APIs ruled. When the entire OS plus application suite resided in a few k of RAM, it was easy to both work with the system or create your own. It took very little effort for a novice programmer to produce world-class code because the bar was so low and the functionality so primitive that anyone could make something interesting. In the old days, everyone grew their own code.
Today it's all different. The OS has become a beast that not even a team of programmers can fully comprehend. IDEs, OOP, and layered architectures try to hide the complexity, but its still there. Moreover, almost any bit of code or application that one might want has a multiple incarnations ready for buying/downloading from commercial/shareware/OSS sources. It's now very easy to find the application you want and much harder to write something that is better than anythign else. In the new days, few grow their own code.
Perhaps its like the change from a subsistence-agrarian world to a world of craftsmen (or industry) where programming is like farming. In the past, everyone grew their own code. Today, no one grows their own food and farming is a very minor part of the global economy. Farmers may lament that most children in the city don't know how to milk a cow or thresh wheat, but perhaps those skills aren't needed in most people. Just as one farmer can now feed some 40 people, one programmer servers the programming needs of a growing number of users. Consider that Microsoft as 60,000 employees whose code runs on at least 600 million operating PCs -- more than 10,000 non-programming users per programmer.
As with farming, we now live in a world where few need to grow their own code. As far as schools are concerned we may be entering a world in which fewer than 1 child per class will ever need to know how to program. That makes me sad at some level, I truly enjoyed learning to program, but it may be an inevitable part of the maturation process for IT and the internet.
Two wrongs don't make a right, but three lefts do.
I did just that the other day. Wanted a printout of "3x3=9", "3x4=12", etc. (how is that called in English?) for one of the kids. So I showed the other kid how to do it in perl. It allowed me to show the command line ("normal" people don't know what that is anymore!), and a very first step in basic programming: a loop and a print. Then we added more variables, tried giving an argument, and then put the loop into another one, so it printed all tables at once.
The nice thing with perl is that all the syntactic sugar it has makes it really easy for kids.
"foreach $i (1..12) {}" is much more readable for a kid than "for ($i = 0; $i =12; $i++) {}".
And not having to pre-declare stuff is also much better for an introduction, where you want to see only meaningful lines of code to make the logic clear.
The disadvantage is that it has no (easy) GUI. But when the problem is suitable for pure text and shell scripting, Perl is certainly the best introduction because it is so easy and fast to get results.
My dad refused to teach me BASIC (he's a pretty serious coder), and it took me a long time to really appreciate what he did for me. When we got an Atari ST, he taught me Logo. There's a lot more to that language than turtle graphics, and it set me up well. While I was learning about recursion, other kids were trying to untie their gotos.
I haven't looked but there must be a whole host of well structured, interpreted languages out there. Just because you're nostalgic about BASIC doesn't make it good.
There're TREMENDOUS amounts of programming opportunities out there -- I leave it to other posters to bicker over which watered-down abstracted programming environment or interactive scripting code or automated-gladiator-codebot game is best, but the point is that there are zillions of them.
The Apple ][ had a nice interactive programming environment (BASIC) and, yes, I remember it fondly. Learning about Woz's Programmer's Aid ROM was like discovering that the Emerald City lurked under the hood of my beige wedge. But the mere fact that you had to use the BASIC/DOS interpreter do get anything done, doesn't mean that most people learned how to program it. Many of my Apple ][ owning friends (and my brother) chose not to learn to program, and learned only enough to play the games. At school we had a set of TRS-80s and we geeks had endless fun hacking the system and inserting patchcodes into the BASIC interpreter and generally exercising our nascent 1337 c0d0r 5ki11z -- but most of the students just played pirated copies of Infocom adventures and space-invader games.
Today's machines are more versatile and practically infinitely more powerful, but the same duality applies: some folks will look for a command interpreter and start coding, most folks will just go for the nice eye candy.
I don't see how the glitz of windows or osx will help her in anyway other than to confuse her.
All of the classic computers just sat there doing nothing, a blinking cursor. It was up to you to make it do "anything"! I love that! A device that is totally under my control. Look at today's computers: Multi-processor, multi-threaded applications, no one can tell me they know exactly what their modern computer is doing at any point in time, save for the robust *nix user who in all probability had a c64 or apple when they where a kid.
So for my daughter, she will have the same benefit as I did. Total control. Yes it's crude, yes the 'language' has been superseded over and over, but the fundamentals have not. That's what I believe she needs. "BASIC" Fundamentals.
Remember the old Commodore Vic-20 Commercials? 25 years have passed, the situation is the same. People don't hire kids who are good at Video Games.
http://blassic.org/
10 PRINT DUP 20 GOTO 10
A more interesting question to me is why does everyone feel that kids have to be able to program? If it's your life ambition, yeah. Now were's the stories lamenting why Johnny can't spell. Or Johnny can't read. Or even Johnny can't do math? Let's take care of the basics before we start worrying if Johnny should become one of us.
Jonny couldn't code yesterday. You didn't expect him to learn coding in a day or are you like my Math Prof?
What he is talking about is the innate nature of those older computers to encourage people to tinker and create things. New machines do everything they can to hide the machinery from the users. Older ones gloried in the mechanics of computing. You actually bought a computer for the sake of having one of those Universal Machines that the magazines extolled, rather than a plain, emasculated "desktop." When was the last time you saw a kid with wires and a soldering iron, instead of an off-the-shelf brain dead consumer electronics device?
Smalltalk has been very successful language for kids, especially its Squeak environment. Good places to start with http://squeakland.org/ and http://www.whysmalltalk.com/
I still have a couple of PSION Organiser II. 64k RAM, EPROM based storage packs, robust as hell and work off a 9V battery (read: it's portable).
The main reason this is interesting is the language: Organiser Programming Language (OPL) was a sort of combination of BASIC and Pascal, quite structured and flexible and, most importantly, because the thing was portable you could code anywhere. It ran fast because source code needed to be 'translated' to a sort of executable (akin to Pascal's original P code).
The language was extended in later products such as the PSION MX5, I think you can even still get that on eBay. Not as robust, but more 'normal' computing statistics, and I think the storage was no longer proprietary either.
If all else fails, AFAIK Symbian based products may also have that language..
Insert
If David had kept his old DOS disks, he could've extracted the QBASIC interpreter from them and used that. I just checked my DOS 6.22 disks and it's there. I believe it'll run in the DOS window on current Windows, and it probably runs under DOSEMU on Linux. Or he could introduce the kid to basic Java using something like Eclipse, if he wants to give the kid an introduction to modern IDEs without too much pain.
Oddly, visiting that link locks up Opera 9.01 on my system, even with flash disabled.
I met David Brin once. He tried to sell me some roleplaying games.
Anyhow, why can't his kid code? Probably doesn't have the mindset for it, sorry. Not everyone can sit in front of a computer all day long thinking about "imaginary things" and then typing them in. If your mind doesn't work in the right way, it can be almost impossible to learn to program. I've taught introductory CS classes before; they can learn enough to scrape by in the class, but they'll never be good programmers (and they usually forget it all by the time the next quarter starts).
Don't stress your kid out over it, just find out what he is good at.
If he really loves programming but his mindset isn't right, I guess you could try playing analytical games with him. I dunno, maybe Roborally? Or just crack open an open source quake mod and let him poke around with it, and let him see his results working in action without having to run up the learning curve of writing a whole program from scratch.
The language itself doesn't really matter, truth be told. I learned on C, FutureBASIC, Hypercard and maybe some other stuff relatively at the same time. The mindset is the important thing, not the language.
...I wrote a JE about this a while back and it might be in my old account, so I can't find it. If I do, I'll link it in a response. But, generally I think that Brin is right. Knowledge and actually being intelligent are not considered positive traits in youth culture these days. I'm not saying that young people are stupid. I'm saying that it's cooler to appear unintelligent than it is not to. And the companies that would furnish teching tools to get the concept of programming across to kids know this, so they don't bother making them. Instead they encourage group think under the guise of team work with the books, videos and toys that are sold to the very young. The big hit with little girls right now is "Bratz" dolls. Girls are being sold the message that as long as they look "hot" nothing else matters. Boys are being sold big trucks and cars as being the "manly" image of power. But there is not any kind of reinforcement of intellect as being the most valuable strength to possess. Knowledge will get you much farther than muscle or sex appeal in reality, especially when society spirals down the toilet as it is currently wanting to do.
However, since the topic is being brought up I think it should be used as a call to arms by the open source community to provide just what Brin is talking about: a langauge that would illustrate the basics of programming with a community around it for kids. This language should allow programs like "Hello World" to be easy to write, but should also convey structured programming concepts in a less efficient but more "friendly" way. It SHOULD be extensible with libraries for doing more complex things (just as the old erector sets of the 40s and 50s could have motors added to them for more advanced structures). I'd say model it on C or Java but remove the non-human readable aspects. In the end computer source code is nothing more than a list of directions for the programming language's interpreter (yes it should be interpretted to remove the concept of compiling and executables) to translate to the machine. It would be wonderful to see kids being encouraged to program. Even if they don't like it or get it, at least it won't be as much of a mystery to them as it is to many of their parents. Then maybe they wouldn't have to take a trip out to Best Buy to have their hard drive reformatted for the fifth time and pay some goon too much to get them back to factory defaults.
I know that as a kid I was encouraged to learn. I was told that being intelligent was something to always strive for. Knowledge was something to be proud of. When I wanted to take my electronic gadgets apart to see how they worked and I broke them, that wasn't discouraged. I was warned about breaking something new, but if I thought I'd gained enough knowledge to handle the dismantling and rebuilding (which I eventually did) that was still encouraged. I got my first soldering iron when I was nine and a lifetime hobby in electronics (which is a natural lead in to music and computers) was born. So today, I'm a Unix guy with tons of Windows knowledge as well, who can design analog and digital circuitry and builds custom solutions around Linux for home use. In short, there's little I need from places like Best Buy. If there are other kids out there today who could take the smae path, they need the tools and the encouragement.
-"...bad old ideas look confusingly fresh when they are packaged as technology" - Jaron Lanier (Digital Maoism on Edge.o
Sorry, did you just say "Perl" and "Understand" in the same sentence?
Just curious: the original /. discussion of the exact same article.
So kids today arent programming - I don't think its that big a deal. After all, when I was a kid there were no PCs, so of course I didn't do any programming either. Then again, I was out playing kickball and not sitting at home playing video games, either.
So I see that Johnny still can't code. Would someone just help him out a little, please?
When I was a kid, we learned how to program in assembly. And we did it by manually punching holes in punchcards.
Kids today, they got it too easy...
Joking aside, on MS Windows you can get cygwin as a free download to give you shells to write scripts in. Also python would be a far easier thing to learn with than Microsoft's Basic on Apple was or whatever VB is now (I believe it's no longer pascal and is more java these days).
I don't know what his problem is. It took me literally under two minutes to find a copy of QBasic, from the first Google hit. It runs fine under Windows XP. I guess it's more fun to stretch out the search for years, bitch at developers at conferences, buy antique computers off ebay and then wrap the whole thing in a snarky article for Salon.
...oh damn! You don't like that? Maybe it is hard making a living as a prostitute...
Okay, so I bit. I looked at your link there. Conclusion: Kid's Programming Language is not for Kids.
Here is the Hello World! example:
Program HelloWorld
Method Main()
PrintLine ("Hello, World!")
End Method
End Program
Is that supposed to be, well, for KIDS? Five lines to print one? Shouldn't the Hello World! example in a kids programming lanuage be more like:
print "hello world!"
I don't even like the fact that I have to type the quotes. No, KPL is crap. It's a poorly rehashed version of Visual Basic. And it has too much java/C# nasty in there. Just cause you have a semi-decent graphics library, doesn't make it for kids.
Mad Software: Rantings on Developing So
I always thought the guy was kind of smart, but now I know it's not true.
...In C.
Given that this is Brin, the real question should be, how do we teach programming to dolphins?
Revive the Constitution.
I use QBASIC on XP Pro. What is the problem here?
The government can't save you.
Short attention spans, and loss of short term memory.
I already wrote some comments about the inanity of that article over on Salon, so I'll skip it here.
I programmed on some sort of Atari computer years before C64 came onto marketplace shelves.
God spoke to me.
I also started with BASIC...on a TRS-80 model 1 with a cassette tape drive. That first experience got my excited about programming...and I am still writing code (professionally) nearly 25 years later. That said, I think that the horse first left the barn when Apple stopped shipping HyperCard on Macs. BASIC? Sure, that was exciting when the computer's UI was also text-based, but once rich GUIs surfaced, you needed a GUI-based RAD environment to infuse the uninitiated with enthusiasm for programming.
Shipping HyperCard on every Mac was an inspiring and altruistic choice. The environment allowed nearly anyone who possessed at least a natural curiosity (including non-techie teachers) to develop a rich GUI-based application quickly. Sure, it was "card"-based and required a runtime engine, but the framework was essentially an early incarnation of Visual Basic...and shipped free on every Mac. Perhaps MS could have countered by including a low-end version of VB with Windows, but they did not...and now the cost of entry to develop a rich GUI-based application is either an extremely expensive toolset or mastery of a wide range of complex MVC-based frameworks and APIs.
How exactly are kids supposed to get excited about programming when any development that they can achieve practically seems not at all relevant to the software that they use day-to-day? The kids have seen the city - rich client-side GUIs, 3D first person shooters, rich web-based applications using Flash, AJAX, etc. - so how exactly are we going to get them to accept country mouse development tools...even if they were included in the OS? And seriously, I did not just read another poster's comment that suggested that PERL is the answer. Have any of you PERL guys ever even seen a woman...let alone kissed one?
So what's the solution? The web, of course...and it has been for years. Every PC and Mac DOES ship with development tools. They are called notepad and simpletext...and they are frequently the first tools that someone uses to create a simple website...and THAT experience is often good enough to motivate them to start the journey toward Friday nights alone. Sure, they're not exactly IntelliJ or Eclipse, but they may just be exactly what a beginner needs - absolute simplicity.
Okay, it's Friday evening...so I am off to write some code.
Buy him a Ti-84 and let him start messing around.
Properly read, the Bible is the most potent force for atheism ever conceived. - Issac Asimov
toncho/~ 0 apt-cache show kturtle5 acb9fdc2bb39eb
Package: kturtle
Priority: optional
Section: devel
Installed-Size: 862
Maintainer: Debian Qt/KDE Maintainers
Architecture: i386
Source: kdeedu
Version: 4:3.5.4-2
Depends: kdelibs4c2a (>= 4:3.5.4-1), libc6 (>= 2.3.6-6), libgcc1 (>= 1:4.1.0), libqt3-mt (>= 3:3.3.6), libstdc++6 (>= 4.1.0), kdeedu-data (>> 4:3.5.4), kdeedu-data ( 4:3.5.5)
Suggests: khelpcenter, kdeedu-doc-html
Filename: pool/main/k/kdeedu/kturtle_3.5.4-2_i386.deb
Size: 381878
MD5sum: 88ec516db2abab703369de307e0174d8
SHA1: 93abdc7475fa524a82ec9cb8d7bdbfa1791e552c
SHA256: a40ba73447632db958ad1b1782a96b5a4e1bf830359dd2c58
Description: educational Logo programming environment
KTurtle is an educational programming environment using the Logo
programming language. It tries to make programming as easy and
accessible as possible. This makes KTurtle suitable for teaching
kids the basics of mathematics, geometry and programming.
.
The commands used to program are in the style of the Logo programming
language. The unique feature of Logo is that the commands are often
translated into the speaking language of the programmer.
.
KTurtle is named after "the turtle" that plays a central role in the
programming environment. The user programs the turtle, using the
Logo commands, to draw a picture on the canvas.
.
Note that this version of Logo is only focused on the educational
qualities of the programming language and will not try to suit
professional programmers' needs.
.
This package is part of KDE, as a component of the KDE education module.
See the 'kde' and 'kdeedu' packages for more information.
Tag: devel::ide, interface::x11, role::sw:utility, uitoolkit::qt, use::learning, x11::application
Warning: this article may contain humor, sarcasm, parody, and perhaps even irony. Read at your own risk.
Nor does it seem to be open source - so low poosibility of porting it.
God that is sooo 90s.
I'd reccomend Python."Enjoy what you're doing! If it becomes drudgery, you're doing it wrong!" - Jim Butterfield
Well, I'm 20 and I grew up with C64's, Atari's, Spectrums, Sinclairs, Armstrads and Amiga's as a kid.. BASIC was fantastic but long gone are the days of a programming language, dev env and runtime system that was pretty much universally available.
Now we're stuck with either mono-platform compiled code or HUGE runtimes that no everyone will have (yes, Java, I'm looking at you)..
Personally, having grown up with the C64 and the Apple][ and all the rest... man, I HATED BASIC.
I started out on a C64/C128 as well. Basic is not a good first language.
Frankly, if I wanted to teach my child programming, I'd start with javascript. Here's why:
- It's extremely easy to get started in. You can do a lot with one-liners, and unlike perl you can explain the one-liners to a neophyte. There are many excellent beginner's books.
- On-screen graphical feedback is instantaneous, and you don't have to restrict yourself to console output.
- Every single web-enabled PC has the development tools right there. They don't have to do complicated installs, and they can show off their 1337 skills on their friend's computer.
- And best of all, if you give them a simple hosting account they can place their javascript programs online for all their friends to see.
That's a point I hadn't thought to make last time this story came around. I started programming on a Commodore64 when I was 7. Not a prodigy; I programmed about as well as you'd expect a 7 year old to program. Copied short snippets from books and whatnot. By ten, I was using basic programming flow to draw interesting patterns on the screen. At the age of thirteen, I tried my first truly ambitious project: a 'Dragon Warrior'-style RPG.
It was a catastrophe. When I first started composing this, I was going to blame it on BASIC itself, then on the crappy line editor I was trying to use. But as frustrating as these things were, my greatest shortcoming was that I had no adult supervision. When you try and teach yourself, rather than learning from an expert, you tend to not realize when you've missed something very, very important.
I feel a deep sense of shame even today for admitting this level of stupidity, but I didn't know what a subroutine was. Knowing that I could have called the same snippet of code from different parts of the program would have saved me much heartache, but I had the concept of a flowchart firmly in my head, and it seemed to demand a single, unbroken flow of execution. Which demanded cut-n-paste. Which I couldn't do with that crappy line editor.
Thinking on it, I should probably try tackling that project again, so that next time I set down to writing a long anti-BASIC diatribe, I'll at least know what the hell I'm talking about.
You want the truthiness? You can't handle the truthiness!
Yeah, he's completely backwards. On a DOS machine, there was nothing interesting to program on its own. Sure, you could use BASIC, but even a kid knows it's a crap language. DOS didn't even come with a compiler. On the other hand, today kids can and do start digging up HTML as soon as they're old enough to click "View" and "Source." True, it's not programming, per se, but it's an important introduction. Once the kids actually do get interested in programming, thanks to OSS, all the tools they could ever want and all the introductory manuals they could ever want are already on the internet for free. I think kids today are much better off with php.net then I ever was with my ratty old copy of the guide to MS-BASIC.
...the absence of either: 1) Quirk-compatible implementations of old-school BASIC interpreters for modern machines, or 2) Relevant, currently usable example programs in children's math textbooks.
NOT the absence of "programming for kids".
Though, if you really thinking simple, instant-gratification, learning languages aren't available for young protoprogrammers today, might I suggest looking at StarLogo TNG (and its 2d relative, OpenStarLogo).
Also, a number of less education-focussed languages have many of the features that made BASIC accessible to young learners (an immediate interpreter environment, friendly vocabulary compared to, say, C's intimidating, punctuation-heavy syntax), like REBOL.
I can't see that there is a real problem here in terms of availability of suitable languages for learning.
I have an eight-year-old daughter and I recently started teaching her HTML and CSS (yes, I know, those are not programming languages). She created her own little website (hand-coded, none of this FrontPage/DreamWeaver stuff), and she was interested because she could see the immediate results and it was something useful (at least to her). Now she's getting interested in programming, so I'm starting her on Ruby. Why? Because Ruby is clean and elegant, easy to understand and write, and I like it. Also, because there's a good website called Learn to Program (http://pine.fm/LearnToProgram/) which is simple enough for her to understand. So we're going through that together. It's fun and all, but I'm starting to wonder, now what is she going to create that's going to keep her interest? When I was a teenager it was fun to create your own stuff because there was so much that hadn't been done. But now everything's been done and out there, so it's tougher. Why should she program her own computer calculator when she already has one? So I'm thinking that in order to keep her interested, I need to tie it in to her website somehow, so she can see visible results. That's leading me to think about introducing JavaScript to her. (I haven't come across any JavaScript tutorials/manuals that would be simple enough for her to understand, though I haven't done much of a search yet.) Either that, or set something up so that she can run little Ruby scripts on her website. (She's not ready for something like Rails yet, but I could just use eRB.) I'm not really sure though and I see myself coming up to a crossroads. Do I continue with Ruby, or switch to JavaScript or try to introduce both at once? I don't think she'll grow up to be a hacker -- she's much more artistic than mathematic. But I believe that a good understanding of computers, and some programming skills, expands her mind and will prove useful. (She's also using Linux, though she can dual-boot into Windows but never does. That's one reason why I wouldn't consider KPL because it's Windows-only, not to mention that it's not OSS.)
Impossible is nothing.
When I was about 8, we started learning Logo (which has pretty deep roots in Lisp). Logo has some solid theory behind it regarding education - Jean Piaget was the major protagonist. We learned on the good old BBC Model B, here in South Africa. We also had turtles and robots and all kinds of cool stuff (speech synthesizers, etc). The BBC's had colour graphics and multichannel sound long before PC's did. Logo is still not a bad choice - since it encourages some really neat and elegant solutions to problems. Alan Kay (search on Google videos for some of his thoughts regarding education) created the Squeak language to help teach kids thinking in general (not just programming). "Doing with images makes symbols" Squeak (which is a direct descendant of Smalltalk) would make a much better choice as a "pure" object-oriented language, rather than some of the other imperative-algorithmic languages being mentioned here. My personal favourite is Prolog, which is actually quite simple to teach to kids at first (although it becomes a bit more challenging when getting into recursive predicates, cuts, etc). Squeak is now morphing into a full 3D collaborative environment called OpenCroquet. All code is interactive, and the environment is written and executed dynamically in Squeak. Alan Kay is a great guy. His ideas deserve a lot more recognition (or at least *implementation*) than they get . . .
The perl man pages are quite nice to start:
...
http://perldoc.perl.org/perlboot.html
http://perldoc.perl.org/perlobj.html
And here is a very small example using the basic concepts:
{
package Person ;
sub hello {
my ($self,$who) = @_ ;
print "Hi $who->{Name}! My name is $self->{Name} and I am a " . $self->gender() . ".\n" ;
}
}
{
package Man ;
@ISA = qw(Person);
sub gender {
my ($self) = @_ ;
return "boy" ;
}
}
{
package Woman ;
@ISA = qw(Person);
sub gender {
my ($self) = @_ ;
return "girl" ;
}
}
my $bob = bless { Name => "Bob" } , "Man" ;
my $alice = bless { Name => "Alice" } , "Woman" ;
$bob->hello($alice) ;
$alice->hello($bob) ;
Skip the ads and go right to the story.
Good, inexpensive web hosting
This article claims that there is no programming language in which kids can easily write these programs like they could in BASIC. This is completely wrong.
A child can easily start programming using Visual Basic, C/C++, or even Matlab to program the simple math algorithms that math books have in BASIC. The syntax can be virtually identical for simple programs. These newer programming languages only add functionality, they take nothing away.
Of course, there is nothing wrong with programming BASIC on a C64, but make no mistake there are a wealth of easier to obtain options.
so the answer is probably something like a qemu cylinder running DOS.
An intro programming solution might be the structure of FreePascal Turbo Pascal 7 clone with 32-bit goodness and the option of expanding into Lazarus. I don't see why simple Pascal programs should present barriers over simple BASIC programs.
Actually, I learned PHP 3 years ago... I was 13, and it's actually a good way to learn programming syntax without without having to learn about writing classes, methods/functions, etc right from the start, but still learning some basic OOP (writing your own functions and using them). Now I'm learning Delphi(I realize that the syntax is totally different) & Java, but PHP was a good way for me to get into programming... plus it makes me some cash.
Regards, Brad Williams
In perl there are references. A reference is created by \ on a container.or you can create a reference with anonymous array and/or hash syntax.A reference can have a namespace associated with it. This is done with bless(). Such a blessed reference is called an "object".Subroutines can be written to work on objects. They expect their first parameter to be the object being worked on. Subroutines that expect an object as their first parameter are called "methods". Often this parameter, by convention, is named $self.If you use an '->' between an object variable and a subroutine then the parser rewrites this to provide the object as the first argument to the subroutine.A method call is first searched for in the package the object is blessed into. If it is not found there the package's @ISA array is examined. Each namespace in the @ISA array is searched (while in turn any @ISA's in that namespace is searched if the method is not located in the namespace) until the first method is found or none is.
That's it. Everything else you can put together from general OO techniques.
Here's a small Point class. _init() is seperated from new() so that any sub-classes of Point (those packages that have a @ISA list with 'Point' as an element) can override it without having to rewrite new(). Alternately a sub-class could do some additional work and call $self->SUPER::_init(...) to call _init() in some super class.
Save all URLs in a database. Whenever a new article is posted, lookup for duplicates, if there's a match display a warning. Not that difficult...
its meant for artists so it must be good for kids too, its javabased Multimedia IDE with simplified Java and instant gratification:
http://www.proce55ing.org/
Why can't Johnny just code in C?
It really isn't as compicated as the article makes it sound--you can punch up the same little loops and whatnot as you would in BASIC. The only thing that might make it hard is if the book examples are abusing GOTO.
Otherwise, Johnny could just use a TI-89, one of the free Matlab clones, or some other "real" math-programming tool. Those aren't too hard to use and are a lot better for math than a BASIC interpreter...
Our research on AgentSheets http://en.wikipedia.org/wiki/AgentSheets is addressing the issues raised. In the last couple of years we have specifically explored why fewer and fewer kids (especially girls) get interested in programming course at the middle school and high school (e.g., AP courses). The main issue is that the process of programming is not perceived to be a fun and creative process. Furthermore, especially high school AP programming use pedagogical approaches (e.g. first learn basics and then some semesters after that start working on "interesting" projects) that simply do not attract students. This approach has not worked for learning natural languages and it does not appear to work for programming languages either. We use AgentSheets to teach students (US, Europe and Asia) to design and build video games. We have a gradual design-based approach in which students learn to make increasingly complex games (Frogger, Pacman, .... The Sims) and in the process of doing so acquire not just programming but more general design skills. Tools that teach creative thinking and technological mastery do exist. You should see the kids - the same ones who play Halo 2 at home and are diagnosed with ADD - make just the most amazing games, learn about math and design in the context of building their own games.
Mike Johnston and I (Doug Sharp) are reviving our kids' (and adults') programming game. It's about 6 weeks from completion. It uses an iconic programming language (IBOL) to control a robot through puzzles and quests.
Google "ChipWits".
We're looking for a good online publisher for it. Big Fish Games and Manifesto Games are candidates. Any suggestions or pointers to publishers grovellingly received.
Doug - ChipWits, King of Chicago (Cinemaware)
Channel Zilch: In Your Face From Outer Space!
?AO ERROR
OK
Definitely easy to learn. Not the greatest for learning programming syntax (or anything, for that matter), but it can help in getting you in the programming frame of thought. Gets kids thinking about loops and how to use variables.
The coolest thing about BASIC on the TI-83 is that you didn't need to do the coding on your computer and transfer it - that was only if you planned on doing ASM programming. You could do it all from your calculator, so you could learn it during math class.
http://www.eder.us/projects/jbasic/
I mean honestly, if someone can write an online emulator for pdp-1 machine code to play space war, then it's a good bet that you can find a BASIC interpreter.
I'd say that true structured languages do have a limitation in that regard in their utility for kids; so yes, "linear" languages may have an advantage. But they don't have to be BASIC-like spaghetti code languages. In REBOL, for example, you can, from the console just give:
print "Hello, World!"
You get the proverbial greeting echoed. A REBOL program to do that would require only one line besides the REBOL header, which for introductory purposes could be empty, so:
REBOL [ ]
print "Hello, World!"
But when you flesh out a REBOL program, you can use most of the traditional features of structured and object-oriented programming. Its easy entry, but an easy transition to more structured programming rather than the brick wall in that regard that old-school BASIC presents. I think REBOL would be a great language for kids.
http://kaminari.scitec.kobe-u.ac.jp/java/logo/
I'm not sure its a matter of learning from an expert; I was about the same age when, with my dad supervising (mostly, helping me figure out the big-picture design and what it needed to do, I did the actual programming), I did a household budget management system in a series of BASIC programs and DOS batch files. My dad didn't know much more about BASIC than I did, and probably not much more about programming in general, but he did know more about organization and planning. We had pretty much learned BASIC together.
So I think active adult guidance is definitely a plus, but I don't think that it needs to be from an "expert".
FYI /.er was REALLY on the ball.
I thought I had checked to see if it was already submitted but I didn't go back far enough. The original submission took place at 7am on the day of the essay, i.e., the other
I have since emailed Brin directly (I actually met him several years ago; dunno if he remembers) and asked him about writing a follow-up essay based on all the feedback he's getting. I'm sure there's something better for beginning programmers/kids than BASIC. But I think the suggestions re HTML, Javascript and/or Perl are forgetting how much the syntax and commands in those languages choose elegance over readability.
I think what Brin wants (and I'm in the same boat though my kids are still just toddlers) is something comparable to learning to write in BLOCK letters, i.e., a temporary stepping stone to more sophisticated methods or languages or cursive writing. Of course, it still needs to be 'sophisticated' enough to handle simple math problems. Logo? Never used it, can't say one way or the other. Pascal? Definitely sophisticated enough but is the syntax simple enough and robust enough for little kids?
The author must never have written in BASIC, because I can still run the programs I wrote as a kid with GW-BASIC in the 1980's on my Turbo XT. I bet I could still lend him the 5.25" floppy, assuming he has 360k free and can read double sided disks. People writing an opinion piece on technology should always check in with Slashdot first! :)
If I wanted to tech my child programming, I'd start with Scheme. Here's why:
- I hate loops
- I hate variables
- I hate kids
BASIC is evil. And it's something thse of us over 30 had to unlearn in CS.
Meanwhile any OS a sane person interested in programming should install has programming languages on it. And if not just go get Squeak. David Brin could have written an article on the wealth of programming languages that do not suck like BASIC did when he was a kid. Instead he wrote a bunch of twaddle.
Bad David. No cookie for you.
US Citizen living abroad? Register to vote!
Urtica Dioica Laments Absence of Dupe Control For Slashdot
Yeah forget the emulator idea! Give them a C64 and a tape drive. Sounds more like an elaborate scam to keep the brats busy while Dad plays WoW.
A few months ago I made this one of my MiniProjects: ... it's mostly an excuse to use modern crunch power on classic project calculations.
Where to find a fun variant of BASIC to goof off with, reliving some of my Commodore 128 days for a few weekends, mashing out some cheap algorithms just to solve some other random project calculations. I have zero desire to be any brand of Pro programmer
I didn't finish it, but there are candidates for BASIC out there. What I ended up looking for was one that was still extremely simple, but could use a modern window without a zillion code lines. (The problem with the Ebay trick, or emulators, is your program gets "stuck in time" and can't use your new Core 2 processing power.)
My first Journal Entry ever, in 8 years! http://slashdot.org/journal/365947/aphelion-scifi-fantasy-horror-poetry-webzine
Blitz Basic, QBASIC, FreeBasic... then move onto C/C++ with GCC and Allegro or SDL.
Stop ranting, start coding!
This may be better and worse in different years.
There was tremendous/"exciting" progress in the 70's - '90's, so that was thunderously true then. But then XP went into PermaStasis, and not counting "chapters on alternatives", that was pretty stable. (Add 1 sentence: "Service Pack 2: Update your drivers & devices.")
Vista is here, fine. Let them make a "New Edition". After that exhausting effort, Microsoft will be utterly tapped out for years while they rethink architectures *again*.
My first Journal Entry ever, in 8 years! http://slashdot.org/journal/365947/aphelion-scifi-fantasy-horror-poetry-webzine
Does anyone actually value line numbers? I thought that was always a legacy driven compromise, and that "modern Basic's" went by routines or something.
I think I read a few times that half the problem was that BASIC, while being the jump language, did at least as much damage ingraining deplorable habits.
My first Journal Entry ever, in 8 years! http://slashdot.org/journal/365947/aphelion-scifi-fantasy-horror-poetry-webzine
javascript:alert("This is my first program!")
into the URL of his web browser, find the ENTER key and press it.
Johnny doesn't want to code because he sees what coding did to his father when he lost his job.
Seriously... I have turned down teaching younger US coders who wanted to learn programming for a living because it would be unethical for me to do so given what has been done to my profession by the likes of Gates, et al flooding the market with unprofessional coolies that make them feel like the British Raj with their servants doing the modern equivalent of saying "Sahib" a lot.
Seastead this.
Personally, having grown up with the C64 and the Apple][ and all the rest... man, I HATED BASIC.
...
... wha? Pascal, unshackling?
... eew. Strictness without benefit. No REPL.
Me, too. I learned enough BASIC to discover that it was unusable for most things. Then I taught myself assembly language, Pascal, C, Lisp,
It was way, way, WAY too limiting and tedious, even for my neophyte 13-year-old self.
Right.
I really didn't discover the joy of programming until I discovered Turbo Pascal. It was like somebody unshackling me - even with the crappy PC XT CGA graphics.
Er
Pascal is a *great* learning language. It teaches all the good habits that will be needed for a C/C++/Perl hacker later in life, without all the administrivia involved with C, or the sheer horsepower (with all the syntactic complexity) of Perl.
Pascal is a horrible language, for learning or otherwise. It taught me bad habits that took a while to overcome. String support that's not quite there, so you have to fake it a lot. If you want an array whose size is determined at runtime, you have to build it out of linked nodes
I guess it looks good if you compare it to C, C++, and Perl. That's not exactly glowing praise.
Go with Pascal as a first language, and you can't go wrong.
Ugh.
Go with Scheme as a first language. Or Smalltalk. Or maybe Python or Ruby. Or even Forth.
But please don't turn any more kids off programming by torturing them with Pascal.
You know, I started programming basic on my TI-85, and that's what got me into writing C, then Java, etc. Maybe modern computers/operating systems just aren't easy enough to start out with programming on these days. I know that writing a GUI app for Windows is still a frightening task for me, and I've been writing code for 7+ years :)
I'm not quite sure where Mr. Brin's son was allegedly looking for all those years. Windows 95 and 98 had BASIC on the CDs' extras. Not sure about ME. But BASICs sufficient for math problems have never been absent from the WWW; should I think that Mr. Brin's son was not using the Web in 2002? Anyhow, these days it's quite a lot easier to find a good free BASIC than it has been in years. There are quite a few modern BASICs, more than one of them free, and more than one capable of harnessing the full power of Win32. My favorite is FreeBASIC, but the list on Wikipedia is definitely worth a read.
J.E.B.
Joshua Corps
Back in 1990 someone wrote a BASIC interpreter that won (or was at least recognized by) the IOCCC. A revised entry was recognized in 1991 (in just 17 lines of code).
:(
I tried to post the code but the lameness filter rejected it.
-USR1
Isn't Liberty Basic avalible as a free download?
http://www.libertybasic.com/
I was 10 when Dad took a chance and got me a Commodore 64. I tried hard, but the '64 just lacked really powerful "kid-friendly" tools. I happened to glance at a friend's Commodore 128 the following year, and threw every ounce I had into begging for one.
... drew a line. It played simple notes in 3 track-voices, and why hasn't anyone mentioned *Sprites*?
I got Dad's money's worth out of it. The additions to the command set thundered along. If you wanted to draw lines, you
My first big project was a maze program. Move your sprite character around a maze, avoid the walls. For the difficulty concept, I made the only legal directions up-down-left-right, and the mazes all kinds of ziggy shapes.
I think I learned a tremendous amount, though I declined to become a formal programmer. Today I make my living doing more beta-testing, or glitch-fixing on existing apps. I'm sorry Commodore went under for business reasons.
--TaoPhoenix
My first Journal Entry ever, in 8 years! http://slashdot.org/journal/365947/aphelion-scifi-fantasy-horror-poetry-webzine
The educational value in line numbers really was that it reminded the kid "These instructions happen in sequence".
Of course it begets the now despised goto. Man I dont think I could even *write* goto based programs anymore. How things have changed.
Mindyou when I started on pascal, it took me all of about a week to realise I didnt need them.
Excuse the Unicode crap in my posts. That's an apostrophe, and slashdot is busted.
My kids program just fine. They understand the difference between the hardware and the software.
Brin should have just installed Linux and taught his kids assembler.
Microsoft used to supply a version of QB4 and debug with all versions of Windows. Now they don't.
Its not in Microsofts best interest if your kids know how the hardware works.
They might/could write something to subvert Windows and create a killer program.
Enjoy,
It's just the normal noises in here.
Kid's Programming Language:
i ons/KPL/default.aspx
http://msdn.microsoft.com/coding4fun/coolapplicat
http://www.kidsprogramminglanguage.com/
I haven't gone through every comment here but if I was teaching a kid to program I'd start him with html. Then javascript. Then CSS. Then some other language like PHP.
Fast interactions and all the structure you will ever need or want. You'd have to set up a server, but not much more infrastructure after that.
Who cares about BASIC.
If I really want to give them some insight in how languages really work, I'd teach them assembly!
Those can be programmed with basic rather well. You can also pick them up at any pawn shop for about 30-50 bucks...
Cheap easy Basic portable durable...worry about OOP later.
http://www.squeak.org/
Self-contained, graphical environment with instant feedback, lots of code available, decent language with room to grow, runs anywhere, decent error messages (those who recommended javascript, what are you smoking? it barely gives error messages at the best of times).
You can't win a fight.
One thing that was done back in the 8 bit home computer era, and is never done now (for pretty obvious reasons) is typing in games from computer magazine listings. While these 2, 3 and 4 page wonders weren't up to commercial standard, they also weren't an order of magnitude (or several orders of magnitude) worse than many of the commercial games of the time, as they would be today. It also had the effect of exposing numerous kids to code, for no other reason than than wanting to increase their game library. Such an idea is laughable now, but it was reality back then. Not saying it was better or anything, just that it created an environment where people were routinely exposed to programming. Even in the modern era with "open source", most people who download the source just compile it, and are never exposed to the internals.
Searching for GW-Basic, results in hundreds of links pointing to the original BASIC MS-DOS language, GW-Basic..
http://www.geocities.com/KindlyRat/GWBASIC.html
"Champagne for my real friends - and real pain for my sham friends!" http://ericblade.postalboard.com/
It is called Leopard, it was ment to be a simple programming language. The whole idea was for young people to have an easy way to learn Windows programming and it does work. Here is the link: http://www.leopardprogramming.com/documentation.ph p
John W....
Did BASIC teach you any programming skills that didn't have to be un-learned later on?
No sig today...
I agree that Ruby makes a great learning language. Thanks for the pointer to the "Learn to Program" page -- it's quite lovely.
four nine eighteen twenty-7 thirty-nine forty-7 fiftyeight sixty-nine seventy-9 eighty-8 one-hundred-and-nine one-twenty
Yes. yes and YES. BASIC did suck donkey nut sack. PASCAL is designed for learnerning and teaching programming. You just can't go wrong.
I'm under 30 and I knew BASIC came in the ROM.
"Without curiosity and knowledge, the mind is a vast void. Without the mind, curiosity and knowledge are nonexistent."
Brin dismisses Python (along with Perl) out of hand:
Jeebus! If any language is easy to follow, it's Python! And entry-level???? Someone better tell all those guys at Google that they're using a toy to run their Website, huh?
Python even comes with a cross platform GUI toolkit that lets anybody build up a small Windows style app with a minimal amount of hassle. Granted, I wouldn't want to use Tcl/Tk for anything huge, but a kid would still learn the basics of event driven programming without pain.
I really wish that Python was around when I was first learning to program. It's a much, MUCH nicer first language than Basic. I even convinced one of the math teachers at my son's high school to put together a small module for his advanced math class because I felt so strongly about it. He was looking at C++ or C# until I emailed him some Python links. He was very excited to see it, as its use as a teaching tool was immediately obvious to him.
I love David Brin's books, but boy, is he doing himself and his son a disservice not looking closer at Python.
http://www.boston.com/business/globe/articles/2006 /06/15/study_us_tech_sector_isnt_recouping_job_los ses?mode=PF
Study: US tech sector isn't recouping job losses
By Bloomberg News | June 15, 2006
Less than a quarter of the US technology jobs lost earlier this decade have been recovered in the past two years, according to a labor union's study.
Technology workers lost 395,600 jobs in the three years ended in March 2004, according to the report released yesterday by the Center for Urban Economic Development at the University of Illinois at Chicago.
Through February, 88,600 have been recouped, according to the survey, which was conducted for the Washington Alliance of Technology Workers, or WashTech.
The recovery has been ``jobless," Seattle-based WashTech said in a statement.
Companies kept firing workers or shutting down well past the official November 2001 end of the US recession, the union said. The pace of hiring picked up in the final five months of the survey period, according to the study.
``It is far too soon to celebrate a strong recovery," Nik Theodore, a University of Illinois professor and one of the study's co-authors, said in the statement. ``Moreover the jobs impact of offshoring is considerable."
WashTech, an affiliate of the Communications Workers of America, has been critical of plans by companies such as Hewlett-Packard Co., the world's largest printer maker, and International Business Machines Corp., the biggest provider of computer services, to cut jobs and hire workers overseas.
Professionals in Seattle and San Francisco have fared better than those in Boston, Chicago, Dallas, and San Jose, Calif., which have seen only modest recovery.
Employment in Los Angeles ``continues to fall significantly," the study said.
``Although IT industry employment is finally recovering, the current period is characterized by slow and faltering growth," according to the report.
``For workers in this industry, employment prospects have improved somewhat, though many have been unable to secure jobs that allow them to use the full range of their skills and expertise," it said.
Hiring for computer and data-processing grew at the second-fastest rate of all industries in the United States during the 1990s, adding more than one million jobs, according to the report.
--- Grow a pair, liberals... stop letting the Republicans bully you!
Why Johnny Can't Keep Track of His Stories!
Is Capitalism Good for the Poor?
You say good things.
You advocate Perl for learning. Let's collect some good examples in Perl with discussion in a wiki. They may be easy to gather and good to learn from, especially when annotated.
You say the marks on variables make it easy to follow. Couldn't we make a Perl program to annotate a Python program just that way? Maybe a few hints in comments might be needed in the Python program to make it easy to accomplish with Perl rather than a full language recognizer.
Wouldn't a wiki be a fine home for each such handy source program? The FAQ could accumulate in place. And you automatically get a full history of the source updates for free. Including comments.
Dick
Mosey on over here: "http://www.python.org/cp4e/". GvR wrote the orginal paper, then wasn't able to get funding to finish the project.
Brin's an ass on such things; he knows little, has a giant megaphone, and starts big fights. Meantime, I wish we could get the CP4E project funded.
dupe, dupe. dupe, dupe!
I was doing sprites just fine in plain old C64 BASIC at that age.
Maybe the extensions made it easier, but it was certainly possible.
Consider that:
1) it runs on 100% of computers
2) All the cool kids want to build their own website
3) It works on 100% of all computers.
4) It's typeless thereby removing one layer of complexity (and safety - but thats not an issue for beginning programmers)
5) It's graphical as hell if combined with SVG or inside flash (actionscript)
6) it's syntax is fairly simple and it doesn't force OO coding until you're ready for it. (ok prototype based coding - whatever)
7) it doesn't need to be compiled - removing another layer of complexity
8) compositing complex structures with it is fairly trivial: var point = {x:0, y:0}
9) it runs on 100% of all browsers.
Cheers,
Ben
http://www.youtube.com/watch?v=li5z5XRi0K8&mode=re lated&search=
pretty clear this chap handles text editor and javascript pretty well.
(Someone please send this to Brin)
David,
I hate to say this as I love your books. But I think you are the one who is't getting it. Programming will not be a skill that most people will need or want to know in the future. Programming is going to be become increasingly automated and move into the realm of AI programming systems. The software industry is well aware of this but doesn't want to discuss it due to the implications. Can you imagine the negative reactions of all those programmers out there who will be obsoleted when AIs take over their jobs? Not to mention the fact that software itself will be less and less visible just as NO ONE knows about the opcodes that are hardwired into the latest CPUs save the engineers who designed them. And even THAT is being moved to AIs as well. There are already AIs that can design better circuitry than humans and in such a way that humans can't even comprehend the designs. This is the beginning of the obsolescence of man. You, of all people should regognize this fact.
Sincerely,
John Titor
Long ago I took university level classes in Assembler, COBOL, Basic, Fortran, C and Pascal. Pascal was still common as a "teaching language" in the 1970s and 80s. I always preferred Pascal and got hooked when Borland shipped the TurboPascal compilers.
I use a variety of languages now (including Delphi) but I still think that Pascal is a great FIRST language for someone to learn. Sure, C and Perl are powerful, but its hard to claim that they are intuitive to the newbie.
http://www.delphiforfun.org/ is an absolutely awesome resource for young programmers. I don't want to slashdot the poor guy, but this obscure note in the comments shouldn't overwhelm him too much... He has tons of programs that cover a wide variety of problems and concepts. Many are visually interesting. All have source code and great documentation. I've watched the site grow in content over the years. I think it could provide the majority of content for a beginner's level programming class, but it is also great as a simple resource for a new (or young) programmer to go investigate.
So what do you use to compile these programs? http://www.turboexplorer.com/ free download
...if you really want to hate, how 'bout brainf*ck?
"Time flies like an arrow; fruit flies like a banana." --Groucho Marx
Check out his response to all this fuss: http://theschwartz.wordpress.com/2006/09/26/david- brin-proves-blogs-work/