Follow TV Tropes

Following

Programming: Please recommend good old Basic-level computer.

Go To

Kilyle Field Primus from Procrastinationville Since: Jan, 2001 Relationship Status: Yes, I'm alone, but I'm alone and free
Field Primus
#1: Sep 28th 2010 at 5:13:34 AM

So, I've been working with my nephew (almost 7) on programming with Game Maker, and it's been okay for now. But after reading an article tonight on the way kids ought to be able to program in BASIC, and remembering how much I got out of GW-BASIC and then Q-Basic and then Visual Basic (which I've recently returned to for a bit of a project)... well, I got to thinking.

The article writer actually bought an old computer (Apple II) on ebay just to facilitate his son's interest in programming (since for some reason he couldn't manage to get the original BASIC working on his computer). I just checked ebay for that computer and found some for like ten bucks but I've no idea as to quality and they don't come with monitors.

At any rate, this got me wondering just what old computers might be around that I could get for cheap and would have BASIC on them... pre-Windows, just ready for you to make your own stuff on.

I've thought of this before, only in different contexts, as something like an arcade game you could program yourself, or maybe a handheld, but I'm not into the homebrew scene and wouldn't know where to begin or even whether what I'm asking for is at all reasonable or not. So I'm here to ask my fellow Tropers.

Can you explain to me:

  • Whether it's reasonable to try to get an old computer simply for self-programming (stuff around the sophistication of Pong, or text adventures)
  • Which computers I ought to be looking for (in terms of utility and also low cost nowadays)
  • Which languages besides BASIC might be available via this route (I'm only familiar with BASIC and C++, but I vaguely remember reading something about a turtle you could command to walk around the screen... which language was that, Logos or something?)
  • What to do about the monitor thing (hook to TV? buy a separate monitor? look for a model that comes with its own?)

So... thanks!

Only the curious have, if they live, a tale worth telling at all.
SilentReverence adopting kitteh from 3 tiles right 1 tile up Since: Jan, 2010
adopting kitteh
#2: Sep 28th 2010 at 5:38:14 AM

For computers "pre-Windows" with "BASIC installed", your best luck is to try a specialized second-hand store. If any.

Now, on the questions you have and looking with Nostalgia Glasses 2000 or later:

Whether it's reasonable to try to get an old computer simply for self-programming (stuff around the sophistication of Pong, or text adventures)
Simply for that? Nah, any computer you have will do; but the mere fact of having a "production-only box" (ie.: a machine that you use only for programming) will benefit you and your sonnephew in terms of approachability (ie.: "not screwing with something else").

Which computers I ought to be looking for (in terms of utility and also low cost nowadays)
For simple programming, hight utility, low cost and easy to find: netbooks. If that's still too much in terms of capacity, or too easy to find for your tastes, some sort of store nearby should have a P3 or even a P2, on which languages like BASIC and Pascal aer easy to set up. If "have BASIC preinstalled" is the key prerequisite, trusting the good ol' city museum or local universities for advice will drive you to the right machines.

Which languages besides BASIC might be available via this route (I'm only familiar with BASIC and C++, but I vaguely remember reading something about a turtle you could command to walk around the screen... which language was that, Logos or something?)
Anything ranging from GW-BASIC to C++ going through Pascal will run and be programmed well in a Pentium or higher, but old or specialized machines will probably have either BASIC (or a variant) or Pascal installed; anything higher you'll require a Pentium 3 or higher, specially for monsters like Java, and forget about having them preinstalled.

The turtle thing you are thinking of is actually called Logo, or Logos. Shouldn't be hard to find or set up, and it is easy to program and show procedural programming with it. I'm sure an old computer with Pascal pre-installed would also have a Logo demo preinstalled.

As for the things you intend to program:

For Pong-sophistication (simple AI, interface-focused): Pascal, BASIC and Python are by far the best choices, with Python being the most actively language used in game development in that set; however, again, the only one you are likely to find preinstalled in an old machine is BASIC. IMHO BASIC is also easier and quicker to set up and start with.

For text-adventure-like games (higher-level AI, state-driven, less interface-focused): either BASIC for focus on the interface end, or C++ for focus on the state/event end. C++ has a steep initiation curve compared to the other languages so far, but after you've got accustomed with it it is not difficult to program a basic engine for parsing text instructions (anything from "go North" to "put the blue keycard back in the drawer") and create a game from there. Java could do it better, except it is too heavy to make it to anything less than a Pentium IV.

Not exactly what you were looking for but... Hope it helps.

edited 28th Sep '10 5:44:57 AM by SilentReverence

Fanfic Recs orwellianretcon'd: cutlocked for committee or for Google?
Tzetze DUMB from a converted church in Venice, Italy Since: Jan, 2001
DUMB
#3: Sep 28th 2010 at 10:12:30 AM

Python has a "turtle" module that works just like LOGO, though with Python syntax of course  *

. I don't know how well it works on Windows, though.

edited 28th Sep '10 10:12:45 AM by Tzetze

[1] This facsimile operated in part by synAC.
Madrugada Zzzzzzzzzz Since: Jan, 2001 Relationship Status: In season
Zzzzzzzzzz
#4: Sep 28th 2010 at 11:02:46 AM

If it were me, I would hie myself to the local storefront computer repair shop and ask them.

...if you don’t love you’re dead, and if you do, they’ll kill you for it.
Kilyle Field Primus from Procrastinationville Since: Jan, 2001 Relationship Status: Yes, I'm alone, but I'm alone and free
Field Primus
#5: Oct 2nd 2010 at 3:42:13 AM

Better info than I even expected :) thank you so much. And I will be getting info from other places, including the local stores, so thanks for the advice.

Let's see here.

What I get from searching "P2 P3" is an MP 3 player. If I've hit on the right item, I assume it's enough like a computer that it'll run basic programs... which brings me in mind of a programmable calculator. Anyway, the main thing that makes me shy from this is the touch screen; my nephew can't even type properly yet, so I don't want to go that route right now.

(The programmable calculator makes me wonder if I oughtn't just get one of those. I never toyed with them myself, but I always wondered what they were capable of. Any info there?)

For getting a programming-only machine, there were a few reasons:

  • Not as expensive as buying a secondary computer comparable to my own. The Netbook seems to answer this... sorta. I could budget $350, possibly, and I'd certainly relish having a Netbook for other uses as well. Still a far cry from that $65 Apple II I was looking at (though that price was probably due to lack of monitor... assuming it was a working model to begin with).
  • Not full of distractions. If a game's available, he wants to play it - but if both household computers are in use, he's more ready to try other interesting things. A computer dedicated to programming would avoid this; he'd have to design his own playthings.
  • As you mentioned, this way he won't screw anything else up... or force me to have to deal with other bells and whistles.
  • It can give him a better idea of what it was like before we got to Windows. I think this would be useful in and of itself.
  • A non-graphical interface should help him focus on typing, since he won't be able to use the mouse.

Anyway. The Netbook does look like a solution that's going to work, though I'm still going to look for cheaper or simpler alternatives. (I did find it funny when the stuff I was reading said "these use old or unusual operating systems... such as Windows XP" which I happen to be running at present and still enjoy.)

I think I was looking at Python some time ago. Seemed like a neat language. I'm mostly aiming at logic development in this kid's brain (taking tasks apart step-by-step), rather than long-term programming skills, but I think it's good to stick with stuff he might find useful long-term as well, so Python seems like one good route.

I recall picking up QBasic on a moment's notice couple years back, so I think that'd be easy to find and install, and pre-modern era I got the most use out of it. It had that bridge to procedural stuff, instead of the line-by-line bit from GW-BASIC, so that's good. I've been using GameMaker with my nephew, which is Object Oriented, and offhand I'm not sure how big a step back it is to QBasic.

The one thing I got the greatest frustration from while studying programming in college was the lack of graphics control. Visual Basic and Visual C++ both gave me the internal stuff, but for externals we never got past "this looks like a Windows application" and that bugged me, coming from languages whose names both include the word "Visual".

I never got anything like easy animation or easy motion control, which is why I'm a staunch supporter of GameMaker, which easily handles all the animation, movement, collisions, steps and alarms, and is fully capable of creating those Windows applications as well if you just port in the graphics. (Not that I've specifically tried.)

As far as graphics I managed on my own... characters drawn pixel-by-pixel in QB. They blinked a bit, probably took up way too many resources for the level of output, and could only be drawn in the limited palette of QB (sixteen colors, if I recall). I have never learned how to import PNG files to my programming, aside from sticking them on individual picture boxes in VB, which seems unwieldy for a game of any magnitude.

So I guess my next question is... how hard would it be in these suggested languages (particularly Python) to work with images? We'll likely be starting with simple boxes and stuff, but I want to progress eventually to something like you could make with GameMaker or RPGMaker (taking a tiny piece of a larger PNG and animating it).

ETA: Oh, and what about homebrew games for any of the current or previous-generation handhelds? PSP or something? I've never gotten into the homebrew side of things (aside from toying with some retro ROMs using a hex editor), so I don't know how that works or how reasonable it might be as an option.

edited 2nd Oct '10 3:45:20 AM by Kilyle

Only the curious have, if they live, a tale worth telling at all.
Ana Since: Jan, 2001
#6: Oct 2nd 2010 at 8:49:31 AM

I'm pretty sure by P2 P3 he meant Pentium 2 or Pentium 3. But really ... old hardware might be cheaper at first glance but if you calculate by $ per ghz or mb, you'll pay premium. Especially since it's nearly impossible to upgrade or replace parts for the really old ones without paying antique store prices.

You are better off with a netbook or a $200 office PC. If you want him to play around with the hardware programming-wise without the Windows abstractions in the way, simply install Linux. You'll get a powerful operating system with several programming environments out of the box and a DOS-esque feeling of being close to the actual hardware. You want him to learn actual useful skills after all and not stuff that only might come in hand if he ever meets Doc Brown.

Tzetze DUMB from a converted church in Venice, Italy Since: Jan, 2001
DUMB
#7: Oct 2nd 2010 at 10:37:58 AM

(The programmable calculator makes me wonder if I oughtn't just get one of those. I never toyed with them myself, but I always wondered what they were capable of. Any info there?)

TI-86 is pretty similar to BASIC, I think (I haven't used the latter in years). It's primitive, but Turing-complete and with graphics functions at the pixel level.

As for homebrew, don't do that, ROM hacking is masochistic.

[1] This facsimile operated in part by synAC.
Kilyle Field Primus from Procrastinationville Since: Jan, 2001 Relationship Status: Yes, I'm alone, but I'm alone and free
Field Primus
#8: Oct 2nd 2010 at 10:57:25 PM

I dunno, I enjoyed it. I even learned something that I never thought of before: When conserving bytes, use a dictionary to make common letter combinations or words referenced by fewer bytes than they possess. E.g., use one code (D4) to refer to two letters (st) which would normally take two codes (D4 D5). Or use D4 to represent the whole word "King" or "Dragon" or "Mysidia", with the added bonus of being able to update those terms easily without having to search-and-replace over tons of code.

Thing is, I don't think a high-level language like C++ can benefit from that kind of thing... mostly because I'm not sure how to get at the lower-level code. I think the very act of "hunt down ST" takes more effort for the computer than "S, T" simply because of the language level at use. So it's only really useful if I get back to the low stuff, which isn't very useful at all.

But anyway... on the subject of low-price computers, what level of graphics card do you think I ought to get? Won't need anything like "capable of running World Of Warcraft" but I'd want to be able to create and process PNG files... probably with GIMP.

And as for Linux, I've looked at that before but wasn't able to determine what could meet my needs. It didn't seem to be as easy as "Windows XP or Windows Vista" and a lot of the ones I was looking at said "Beta" but I wasn't sure if that was "we're not ready, come back in a few years" or "Beta is just accepted state for most of these anyway" (as with some games I've played).

So if I were going for something not pre-packaged (my dad and brother worked in computer assembly for over a decade, they can handle getting hardware piecemeal and putting it all together), which Linux thing should I be looking for? I'd want it to be free if possible. And while I do appreciate that I ought to learn what all the little processes do behind the scenes, I think I'd be more comfortable if most of them were hidden and I only had to deal with basic settings and whatever programs I myself install.

Oh, and would Linux be capable of running GameMaker? (I assume GIMP and Open Office aren't going to be a problem.)

Only the curious have, if they live, a tale worth telling at all.
Ana Since: Jan, 2001
#9: Oct 2nd 2010 at 11:25:36 PM

Basic image processing - and hardware acceleration, which you'll need for Game Maker - is something literally any graphics card can do nowadays, including onboard graphic chips.

And I don't think there is a native version of Game Maker for Linux. You might have some luck running it with Wine but I don't know about that. Do you want to use that with your kid? Then this might not be the best solution. If not, use dual-boot so you can simply boot into Windows if you want to tinker with Game Maker and use password protection to keep your kid away from it.

As for Linux itself, give Ubuntu a shot, last I've heard it can be set up by a monkey. The beauty of Linux - and thus my recommendation as a learning platform - is the flexibility. You can go work at the system's core with a DOS-esque command prompt and being restricted to a text interface or you can fire up a full-blown desktop environment that abstracts the system away from you and is as easy to use as Windows.

Tzetze DUMB from a converted church in Venice, Italy Since: Jan, 2001
DUMB
#10: Oct 2nd 2010 at 11:34:02 PM

Ubuntu is cake to set up, and I've been using it for months with no complaints (no more than I had on Windows, anyway).

high-level language like C++

Say what?

I think that you could do the compression you're describing with a basic hash table, anyway. Doesn't STL have one?

Oh, and would Linux be capable of running GameMaker?

No. Personally my experience with WINE is terrible, as well, but my computer is weak and other people do fine with it.

There are some things that might work, but nothing as simple. For example, Processing (simple C-like syntax), Factor (stack-based, kinda hard to explain), Python with pygame, and Fluxus Scratchpad (Scheme, e.g. Lisp, e.g. functional, screenshot) should all have graphics right out of the box.

(I assume GIMP and Open Office aren't going to be a problem.)

You assume rightly.

edited 2nd Oct '10 11:35:46 PM by Tzetze

[1] This facsimile operated in part by synAC.
lee4hmz 486-powered rotating frosted cherry Pop-Tart from A shipwreck in the tidal Potomac (Before Recorded History) Relationship Status: Chocolate!
486-powered rotating frosted cherry Pop-Tart
#11: Oct 3rd 2010 at 1:55:25 AM

Yes, STL has a hash table class (std::map).

online since 1993 | huge retrocomputing and TV nerd | lee4hmz.info (under construction) | heapershangout.com
SilentReverence adopting kitteh from 3 tiles right 1 tile up Since: Jan, 2010
adopting kitteh
#12: Oct 3rd 2010 at 8:16:42 AM

Say what?

O U!

Anyway... for Linux, yeah, Ubuntu is a good choice, it stands right in the middle of "give access to the low-level functions" and "hide things behind amicable interfaces". A recent version of Ubuntu can still be installed in a Pentium 2, but yo will probably want to begin with one that has a loght desktop environment, like Lubuntu or Xubuntu, otherwise it will eat your system's CPU and RAM for ten minutes before you can do somethign useful.

Most Linux distros already come with basic C/C++ or Python tools, but you will still need to install the ID Es for comfort. Geany is a good ide overall for several languages. Plus it is easy to set up and extend. Python with pygame are IMHO the best choices to begin as in my college class we were doing basic sprite collision and stuff at the first week.

Linux is "free" as in like freedom of speech and and blah blah, if you mean "free" as in "zero currency cost" then yeah, most Linux are like that as well.

And on the compression thing: since you're most likely wanting to go from the compressed form to the uncompressed and viceversa, a std::vector of the uncompressed strings should be enough. After all, you're either using all the indices (00 = 0 —> FF = 255) or getting blanks. It also has the adnavtage of imitating, very closely, the low-level behaviour RO Ms use for such mechanism.

Fanfic Recs orwellianretcon'd: cutlocked for committee or for Google?
Comonad This bacon is awesome from 19th Jan '38 3:14:07 AM Since: Jan, 2001
This bacon is awesome
#13: Oct 3rd 2010 at 9:45:38 AM

It's worth noting that BASIC will teach you some pretty bad habits if you use it for long. In particular the language has very little in the way of flow control other than GOTO.

I'd recommend you go with Logo instead. I started with it, and it worked well for me. It's derived from the LISP programming language, which gives it better control flow. It's designed for teaching, so it has that same level of simplicity, and the turtle graphics are pretty easy to use.

I used a variant of Logo called MicroWorlds, which apparently still exists. This was ten years ago, so I don't know whether it's still good or what other versions there are.

Torment liveblog is still hiatusing. You can vandalize my contributor page if you want something to do.
storyyeller More like giant cherries from Appleloosa Since: Jan, 2001 Relationship Status: RelationshipOutOfBoundsException: 1
More like giant cherries
#14: Oct 3rd 2010 at 10:00:00 AM

If you want to do homebrew, the only legal option I know of is XNA for the X Box 360.

Also, why on earth would you want to teach BASIC? Use Python instead.

edited 3rd Oct '10 10:03:28 AM by storyyeller

Blind Final Fantasy 6 Let's Play
Tangent128 from Virginia Since: Jan, 2001 Relationship Status: Gonna take a lot to drag me away from you
#15: Oct 3rd 2010 at 1:28:27 PM

I made all kinds of things on my TI-83 calculator back in the day... a "pet pixel" based off code from a 1980s A-LIFE book, a terribly-slow Lode Runner style game, a space invaders shooter...

So a calculator is definitely an option, and old TI-83s should be plentiful.

For the computer, I'd actually look into... Javascript. It's quick to get into, and there's the canvas tag for graphics once you're comfortable with the language itself.

Do you highlight everything looking for secret messages?
Kilyle Field Primus from Procrastinationville Since: Jan, 2001 Relationship Status: Yes, I'm alone, but I'm alone and free
Field Primus
#16: Oct 5th 2010 at 7:07:16 PM

My reason for starting with an assumption of GW-BASIC was that I was familiar with it - no learning curve before I could teach it to my nephew. I could start today with any of the three variants (GW, Q, or VB) and teach it off the top of my head, all the basic functionality.

The other reason was basically that I could see a low-functionality computer system running GW or Q just fine, and that was my initial impression of where this enterprise was heading. But it appears my initial impression was wrong, and I'm not against learning Python, so that seems to be the way I'm leaning right now.

C++ may not be high-level overall (as in, compared to many other available languages, I know it can get at the low stuff), but it was high compared to the one I was using with the hex editor... at least, my impression with the hex editor was that I was getting a lot closer to either assembly language or machine code than I had ever been. Paring the code down to the essentials with none of the fluff.

Reverence, thank you for the info on hex values... I'm gonna have to read that more later because I don't have time to more than skim it now.

edited 5th Oct '10 7:09:27 PM by Kilyle

Only the curious have, if they live, a tale worth telling at all.
Add Post

Total posts: 16
Top