Quite BASIC — Web BASIC programming

 Posted by (Visited 12918 times)  Game talk
Nov 212006
 

A while ago David Brin lamented in Salon that Windows computers these days don’t come with an easy to use programming language, like BASIC. I tend to agree with him that this is a loss, as we have traded computer literacy for computer use literacy, a very different thing.

In response, a guy named Nikko Strom created Quite BASIC — Web BASIC programming. And lo, it’s neat. Who’s up for making games in it?

  18 Responses to “Quite BASIC — Web BASIC programming”

  1. 10 PRINT “oh my gooses, lines!”
    20 GOTO 10

  2. […] BASIC for the Web […]

  3. […] BASIC for the Web […]

  4. “I tend to agree with him that this is a loss, as we have traded computer literacy for computer use literacy, a very different thing.”
    Actually, I think even this is a little optimistic. Most of the people I meet are computer literate in the same way that a kindergartener is literate.

  5. […] Comments […]

  6. To play devil’s advocate, a LOT of games (especially FPSs and CRPGs) come with modding ability and the requisite scripting language. Using a game to learn how to program is probably a LOT more fun than playing with basic.

  7. A few more thoughts…

    To counter my counter argument, I’d point out that when I started programming, the computer came with breakout, blackjack, and Star Trek (later renamed to avoid copyright violations). It didn’t take that long to write your own breakout. Star Trek was a bit more work.

    I played my first adventure game AFTER I had typed in 20(?) pages of “The lost dutchman’s gold” from Byte.

    I wrote a cheap Wizardry 1 clone over summer vacation.

    If I tried to write a clone of half-life 2 alone, as experienced as I am, it would takes years and years. For someone with no experience programming, tackling such a project is beyond comprehension. There’s no way that a novice programming can even imagine writing a real game, so (I suspect) many don’t even try to write anything.

  8. I’ve actually been looking for a long time for a programming environment that you could use to introduce programming to kids. This looks promising, though the interface looks a little awkward.

    To play devil’s advocate, a LOT of games (especially FPSs and CRPGs) come with modding ability and the requisite scripting language. Using a game to learn how to program is probably a LOT more fun than playing with basic.

    The problem is that most modding tools aren’t aimed at the really young kids (though I have no doubt that the bright, motivated ones would figure it out on their own) and a profound lack of introductory material aimed at kids.

    In fact, one of the big advantages of BASIC was the huge amount of material aimed at showing kids how to program – including the cutting-edge type-them-in-yourself programs, some of which were games.

  9. […] Raph Koster points us to Quite Basic, a new tool that offers a lightweight, easily accessible programming environment right inside a web page. And even better, it’s the BASIC that we once booted and loved. Quite features a text and canvas output space, a happy text area for typing your code, and a little mini debugger. Slick stuff. You can certainly write games in it, and a few are already there as sample projects, including Pong, pictured at right. Comments (0) | TrackBack (0) | Email this article POST A COMMENT […]

  10. I began to write a ‘Snakes and Dots’ style of game last night and realized there was no way to read the color of a dot, thereby requiring that I check the array of the snake’s position on the grid each time its head moved, to collision detect. Even my Trash-80 CoCo could do check the color of a dot. 😉

  11. Well, if you could PEEK into video memory, that’d do the trick… of course, you had to learn all the PEEK and POKE registers separately for every machine back then…

  12. When I was young, I spent a sizable amount of time learning how to program in BASIC.

    Ironically, I don’t recall ever learning how to use a conditional.

    I have no idea whether I actually succeeded in making anything. =P I just don’t remember. Which suggests the answer is “No”.

  13. Holy crap, I’ve been spending weeks learning object-oriented programming. Seeing line numbers and REM and LET just brings a tear to my eye…. And green screen FTW!

  14. I learned on BASIC but I can’t help but feel now, many years later and many programming language theory courses later, that other languages have to be better for teaching this stuff. Line numbers, GOTO’s, etc. just make me cringe. But they work. I like Pascal a lot as a learning language and I think that learning Scheme or Lisp as a first language can be really interesting but it seems like BASIC still has a pretty low barriers to entry. When it comes to teaching my kids to program I will be sorely tempted to write my own API/language. I think the ideal language to learn on is something where you get to focus on the ideas as much of the time as possible. The details, the platform-specific stuff, work-arounds for gaps in the language, etc., are all just distractions, IMO. What matters is thinking critically about things like “how do I tell if this guy is running into that guy”.

    I began to write a ‘Snakes and Dots’ style of game last night and realized there was no way to read the color of a dot, thereby requiring that I check the array of the snake’s position on the grid each time its head moved, to collision detect.

    Heh. That’s how I’d do it anyway. You’re just looking up a piece of data in an array if you get the pixel data (the data on the screen is just a big array in video memory). But I’m an efficiency freak and so, even though it’s snakes and it doesn’t matter, I’m thinking things like “if you look it up in video memory you don’t get to use cache” (but also “if you change the rendering image, for example displaying an image or just using different colors, then you the pixel data changes but the grid doesn’t so better to use the grid as a baseline”). I guess that’s one reason I like working with cell phones — the limitations of the devices match my prejudices. 🙂

  15. […] Parallel Industries – Cars and Computers and Biotech Following a link from Raph Koster’s site, I recently read an article on Salon that sci-fi author David Brin wrote back in September (needs you to click on an unobtrusive “sponsor” link to get to the article). Brin is concerned with how difficult it is for a kid today to get experience of line-programming languages, particularly in Basic.  He makes the point – rightly in my opinion – that this is the most fundamental and easily-understood primer for more advanced coding.  I simply do not know a good programmer who didn’t start on a home computer such as a Sinclair Spectrum or ZX81, a Commodore 64 or a BBC Micro (my own first love). The ability to create even a short program is a great thing for a kid: you can see the results of your work happening before your eyes, but beyond the usual circle of your control (which in early teens barely extends even to the limits of your own skin).  You are making something happen through the commands you enter.  At a time when it seems everyone tells you what to do, you are making something else obey you, and if you do it right, the machine obeys unquestioningly and without delay.  You see that you can manipulate the world. The growth of home computing manifested in ways that would be pretty unthinkable in most schools today.  Programming, or at least sitting around toying with computers after school or at lunchtimes, became an acceptable social activity, very different from some sort of “Math Club” in US terms.  There were often queues to get at the 7 or 8 Apple IIs and BBC Micros and one ZX81 that were available, and this in a school whose headmaster (my dad) had been committed to computer studies in schools since at least the late 70’s (thus my first experience with a Commodore Pet). As a schools’ inspectorate document on computer studies says (here, at point A3): “The rapid growth of home computing at this time stimulated the interest of many pupils in acquiring a better understanding of the concepts and principles behind computer systems.” Brin makes a comparison I have often talked about with others: that between computers and the cars of the middle 20th century.  Within a generation, kids moved from tinkering with automobiles to tinkering with code.  My grandfather spent many of his evenings after work up in his little garage at the top of the council estate, trying to make his Vauxhall Viva (if I remember rightly) run a little smoother.  Both he and my father could tell the problem with a car – and fix it – in a kind of instinctive way. I, on the other hand, have only the most theoretical knowledge of how my car runs.  It is a closed book to me, largely because BMW designed it to be so.  The AA mechanic is no more able to tweak it than I am: it is a series of black boxes that require a visit to a BMW garage for work on anything to do with the engine or electronics.  As a result, if I were to break down in an area with no phone coverage, all I could do is start walking. With PCs, however, I had a basic grounding in how they work, thanks to those early years oftaking them apart, and of coding them at the line-programming level.  I am comfortable with just about any computer, and can fix problems without ever really knowing everything about the problem: it’s an instiinctive thing.  I doubt if someone who learned to program in windows, starting with something like Visual Basic, would ever develop that same easy relationship to the computer as a whole, from hardware through opsys to language and aplication.  The effects of code upon machine are obfuscated and removed a step. As Raph says, “we have traded computer literacy for computer use literacy, a very different thing.”  A kid of ten today feels relaxed and comfortable with a computer.  But they can probably only ever hope to work within the limits set by others, even if they become a coder. This might not be a terrible thing.  I don’t want to have to adjust the timing on my car.  Nor do I want to become a motor mechanic.  I would be very cautious, today, about encouraging a kid to enter my field, as it is clearly going to become similarly commoditised in the future, first through the growing eastern outsourcing markets, then (later) through abstraction of the development process.  Just as mechanics are now poorly paid, and cars only need a few highly-paid designers, so there will be a call for fewer programmers of real skill, but more and cheaper technicians.  People like myself, with decades of learning and a willingness to stay at the edge, will tend to win out over people starting out and lacking experience.  This happens already: in a marketplace flooded with graduates who entered programming thinking that the boom of 1999 was a permanent feature, a great many never used their degrees and left the field while those of us with big cvs never missed a step. I was lucky: I grew up at a time when almost no-one already knew the things that I could learn.  My knowledge gave me a competitive advantage, and the means to start gaining that knowledge at the fundamental level of the command line, of BASIC and of assembler (and Comal, Forth et al), and of changing a variable resistor to retard the timing on the hard drive starter motor.  Today’s kids start learning at many levels removed from that, and I think that those who will ever become great programmers will have to go back and fill those gaps in.  But unlike Brin, I think that for most, it is nothing more than a shame (in Platonic terms) that their knowledge will be shallower.  For most western kids of 10 or 11, the boat has sailed on this career as a fast way to get wealthy.  There will be another valuable, rare knowledge-based skill along in a while.  From the interactions I have in my work, my guess is tomorrow’s hacker will work in the biotech and pharms sector. Post a Comment :: […]

  16. I actually think Python might be the way to go for teaching kids (although Im told scheme is a good one too. Unlike kids, I probably have to “unlearn” a few things to really wrap my head properly around the lisp/scheme thing again)

    The beauty of Python, other than its dead easy syntax , is its quite advanced in that it can do object oriented stuff etc (I like to explain object oriented as “imagine the object as a little machine. Its got propertys or variables, and its got methods to do things”) but it can do procedural stuff as well (explain as “imagine a program as a notepad with a list of things to do in order. A procedure is like another notepad with a task. and you call it by saying “go to the x notepad and do the things there, then come back here”) , finally its got a really straightforward data model. The syntax is readable, and you can do alot with quite a little.

    But the great thing with python is its got lots of tools that can be used for making 3d games and the like that a kid should find pretty easy to work out with the right tutlage.

    The “Alice” project is a big 3d engine designed for teaching kids, thats programmed interactively via python. The kid makes an instance of an object, and then says “ok object, go forward x, and then turn right y” , somewhat like the old logo turtle, but cool and 3d.

    Then the more advanced kids could play with the Panda3d engine, which is a full blown 3d engine (although perhaps not quite torque or whatever, but hey) , thats got a really intuitive interface and object oriented style, and is really well documented. The software is actually at the core of disneys “toontown” mmorpg, so its powerful enough I guess, and its entirely possible for a bunch of kids to write a low budget garage or open source game.

    One thing I’d like to see however is “basic” type programming tools for the little handheld type things. Gameboys and the like. One thing I remember fondly about my education on computers as a teen on the Amstrad CPC464, was that it was entirely feasible to write “professional” quality games in the bedroom. Infact I proceeded to teach myself Z80 codeing, hacked the hell out of the machine, wrote a really neato utility that circumvented the need to buy “black boxes” to put in cheat/copy codes (I guess that makes me an early “cracker”? I certainly did enjoy pulling apart games to come up with infinite life hacks etc) and yeah.

    But now PC’s dont have kids accesible programming languages, and even if they did, the quality of games now is such that a kid in the bedroom couldnt dream of codeing the next Half life, or World of Warcraft (although godbless a few will try!). However some of the hand held games do have that low-budget spark of mad creativity and accesibility that the games I loved as a kid had, and yeah; It’d be nice to make sure the next generation of teens had incentive to develop a passion for code like I did.

  17. Drey, thank you for the feedback. I have now added the ability to check the color of a dot ( COLOR(x, y) ). Sorry it took so long.

    I also created a “house project” for a snake and dots game, but I actually didn’t use the COLOR function, but rather a matrix containing info about each pixel. That way I could encode the position and direction of the snake movement as well as the position of the dot in the same array.

    Another new cool thing are the redesigned Google Gadgets. In gadgets, the text and graphics are overlayed to save space and allow a bigger canvas. I made gadget versions of several “house projects” and I also made a general purpose gadgets where you can run your own BASIC program.

  18. The url of my last post is bad, this one is better. Sorry.

Sorry, the comment form is closed at this time.