Old School Basic?
Miscellaneous Forums/General Discussion/Old School Basic?
Anyone know of an ordinary old school type basic that's pretty complete?
Not for games, just console stuff. Could cope with a "let" statement if you typed one etc.
OK, it' be nice if it compiled but does not have to.
I got iBasic but even that's trying to be far too clever for what I want to do.
I just want to write the odd math util in a language I once learned and know. I want to concentrate on the problem being solved not on what a clever @#!* the author of the language tried to be.
MUST have documentation written in English.
B+ will do basic style math in a console.
Chipmunk Basic... don't know if there is a site out there for it anymore!
I'm gonna go for BlitzMAX...
And what's the matter with BB? Sure, it does a lot of stuff that you don't require but you don't have to use it all.
QBasic? QuickBasic? GW-Basic?
I would recommend blitz+. I've programmed in a load of different Basics and I can't think of anything easier to use. You can use 'then' in Blitz if you like, but not 'let'
Just Basic
http://www.justbasic.com/As used in WIlfs Workshop in PC Plus.
Cheers
Garion
Thanks for the help so far.
Just to clarify, blitz and ibasic poducts describe themselves as "basic like" languages, whereas I'm looking for the real thing.
Few coders are capable of coming up with the real thing, which is why it's ahrd to find, and why I am asking. Seems to me just finding one is a "more than one person" job.
Looking back towards Hisoft basic and Amos and all that is much nearer what I am looking for - BBC is not too bad either, but Im not aware of a recent edition of any of these.
If they cn only call it "basic like" then I'm not interested, if they can call it BASIC and still be correct then I am more interested. I don't mind add ons, on top of that, but not making the grade in the first place is not going to help here.
Amiga AMOS and Amiga Blitz were similar in operation, apart from one was interpreted (AMOS) and one was compiled (Blitz).
From what you have said so far, interpreted VS compiled is the only distinction you have really described. AMOS and Blitz share enough similarities that any other comparison yeilds almost a null value!
I use Blitz3D and when I'm testing a small routine or something, it's just as quick for me to hit F5 to compile and run the code than it was when I was using immediate mode in AMOSPro all those years ago.
BTW, use of the 'Let' statement has been optional for more than a decade (I still remember Vic-20 BASIC) and really should be considered deprecated.
Do you have a specific application requiring the use of a ye-olde BASIC interpreter?
**EDIT** Thinking a little more about it, modern BASIC languages are catering for windowed, bitmapped and 3D displays. It's a bit of a stretch for a language that was used when character-mapped displays were new technology!
True Basic is still around. At least they have a web site.
VP, yeah let can be handled other ways, but I was using it as an example, I'm pretty sure some of those "basics" actually complain if let is used, which is frankly ridiculous, depreciated or not.
Another thing I'd welcome is that some basics might have a rad() command, you could use it to convert decimal degrees to radians, etc. There was a time when most basics had a whole slew of commands like that. There where numeric vars, there were string vars, and they knew their place and did their job, no we get variables that are so smart they have become of diminished value as they lessen the readability of code. Sure it makes the coder who wrote the language look clever in a shallow and sureficial way, but also show they really don't think things through as far as having actual consequences to your actions type thoughts.
I'm not keen to waste my time on a language written by such a celebrity wanabe type coder, I much prefer a competent thoughtful sort myself.
It's not esay to be discerning in this way of course, far easier just to put up with what ever tosh is dished out. I got to a point now, where, for me, I have to draw a line, and say "no more of this over hyped nonsense".
Hmm. To be honest, following your criteria, I would say that BASIC is not a suitable language.
You've pretty much described C, here's why:
A standard library (well, collection of libraries), including (no pun intended) a bunch of high powered math functions.
Variable confusion is much reduced from 'clever' BASIC's. You can cast from one variable type to another, but doing so creates visibility of the action.
C
will cast between certain intrinsic types, but the rules for this are well defined and if not desirable, you can have the compiler generate warnings.
**EDIT**
Pascal would actually be a fairly good middle-ground between BASIC and C.
OK, so now you've mentioned both languages I want no part of! ;O)
Not sure where that leaves us! :O)
Sorry about all those typos, new keyboard, and hating every minute of it. I'll find a more suitable replacement after the weekend, and I'll give this new one to someone I detest as a Christmas pressie! :O)
Why don't you try to describe in detail exactly the type of BASIC you want? I think TrueBasic is made by the people who originally invented BASIC, so that's about as BASIC as you can get. But TrueBasic is Object Oriented, I think, so maybe you're looking for a very primative form of BASIC? Maybe you should try GWBASIC or BASICA, since those are the most primitive forms of BASIC I know of.
J J
" Why don't you try to describe in detail exactly the type of BASIC you want? "
I can't, I've tried and failed many times.
Problem is I want something like what BASIC would have been if it had not been taken over by game coders. (or something like that) If it had carried on growing circa 1990-95 or so.
It's very hard to completely define; as you say, something nearer primitive, but not with the negative vibes that use of the word primitive implies.
For yet another example, lprint - why not allow someone to output to the default printer? Hardly a crime against humanity is it? Been a lot of years since a BASIC had lprint in it.
I miss line numbers, but accept that labels were not such a bad thing.
Anyway, it does not exist anymore and I doubt coders exist who could create a language with exquisite detail of language within it. So I guess it's kinda moot really. Locomotive wasn't too bad either. Suppose you're not wanting to go OO - not like you'll have much say in it anymore is it? Seems like listening to would be customers is a thing of the past for todays laguage coder, and so is old school coding. I reckon that is a loss, not a defacto advance myself.
If you are unable to accurately describe what you want, you're never going to get it. It gives the impression that you know you want something but you don't know what.
BASIC was used by game coders almost as soon as home computers were given BASIC as a built-in language. If BASIC has grown in another direction, what direction would it have been? I assume you want a BASIC that has made some progress since the 90's?
No progress can be made without changing things. Line numbering was one of the first things to be deprecated. Line numbering was first implemented because full-screen text editing didn't exist when the language was created (no computer had enough RAM to contain the full text!) so it became utterly useless as soon as full screen text editing was made possible.
Lprint was also deprecated when technology came along that made it useless (ink-jet and laser printers). Lprint was great when dot-matrix and green/white stripey listing paper were de-rigeur. How can you Lprint on an ink-jet printer? Doesn't make sense.
I can almost understand what it is you want, but what you want is incongruous with today's technology.
"Suppose you're not wanting to go OO - not like you'll have much say in it anymore is it?"
Yes, we do! Blitz no more forces OO (really, OBP) on you than does the old AMOS or Microsoft BASIC (remember AmigaBASIC?!). Blitz's OBP features are there if you want them but perfectly procedural code is still entirely possible. I have even used it for prototyping certain things. There is even the argument that for games, procedural can be better. It is certainly faster, but I think it's harder to read procedural code than code that makes use of Functions and custom types.
I don't really get by "taken over by game programmers". Functions and OO were certainly not inventions of game programmers! Quite the opposite. Those features were there because OS writers needed them. Writing a multi-taking OS using procedural code... the idea of it sends shivers down my spine!
I really want you to have what you want, and Blitz seems to be some software that gets you 99% of the way there. I get the impression that you just don't like it because it has features you will never use.
By that logic, I shouldn't like Blitz because it has a GOTO command, which (believe me) I will never need to use.
Make 2 lists. Things you want in your perfect BASIC, and things you don't. Maybe we can then make some progress, until you can start to accurately describe your requirements, we are going to be a bit stuck!
Amiga AMOS and Amiga Blitz were similar in operation, apart from one was interpreted (AMOS) and one was compiled (Blitz).
Standard AMOS came with RAMOS (Runtime module for AMOS) which interpreted your code, but they also sold an AMOS compiler seperately which would create stand-alone executables and gave you a speed boost.
I never used Blitz in the Amiga days, but absolutely loved AMOS Professional (a lot more polished than the original Amos, which was nice too)
I know about the compiler. I made extensive use of AMOSPro back in the day :)
Even when I progressed on to assembly, AMOSPro still got used for prototyping or for making editors.
Remember Alien Breed 3D II (the Doom lookalike)? There was an unofficial patch released which speeded it up 2X. Only worked on the retail version though. I made good use of Monam, AMOSPro and a decent hex editor to make that patch work on the 'other' version of the game ;)
I make an Arkanoid clone, a dynablaster clone, a paint program (sadly abandoned as soon as it was clear that AMOSPro was never going AGA) and a bunch of level editing thingies.
It was thanks to AMOSPro that I figured out bitplanes, hardware scrolling and just exactly how fast the Amiga was(n't).
QBASIC, already mentioned, fits the OP's criteria pretty much to a tee. The non-compiling version is available all over the place and even from MicroSoft (as part of some old package or other) I think. As it's so popular (or was, at least), there's reams of example code knocking about.
QBASIC does sound like it would fit the bill, I guess. There was never a compiler version of it though, as far as I'm aware. It was simply an interpreted version of QuickBASIC.
QBASIC 4.5 compiles but is no longer available (edit: and
is QuickBASIC, big10p, so I see what you're saying). You can find it online, of course, but it's not technically legal - although years and years and years ago I phoned MicroSoft and asked them if I could download a copy and was told yes! :o
The non-compiling version has a runtime, if I remember, so you don't need to execute code from the IDE.
There's also a version 7.1 (MicroSoft Professional Development System) which compiles too, but I have no idea as to the legal status of that one.
Also, a nice freeware BASIC variant I found a while back is BASM - produces tiny exe's (as does ASIC, shareware) although I think you have to compile functions into object code separately and they all get linked at the end. That's definately the case with at least one of those two.
EDIT: Heh, just gave myself a refresher with BASM...
Hello World! comes out at 458 bytes (from 797), assembled with Arrowsoft PD, linked with Freelink and packed with aPACK. Neat.
Anyway, thought
this link might be useful for the thread's author.
polygoon-
You need to concentrate on what you do want out of a language, not what you don't want. I don't know of any languages that force you to use OOP (I'm sure someone will come back and point out ones that do - I don't know them), types, objects, linked lists (Each/Eachin) - you don't have to use any of these if you don't want to in Blitz - and you really do end up writing something very close to the old-style basic code you prefer.
Function rad#(angle_degrees#)
return angle_degrees*6.28318
end function
Wow -
FreeBASIC is really quite neat, and looks like a good replacement for QBASIC. Well, more than that... it looks like you can wrap libraries fairly easily with it and it comes with plenty of good 'uns already done: FMOD, BASS, SDL etc and there's some OpenGL stuff there (at least one example needs GLUT, mind) and Windows API examples. This could maybe give Blitz+ a scare... and it's got LPRINT!
Thank you one and all, I've got a stack of new pages to read and reread where I've not seen them in a while.
There's one or two in there which from a cursory glance look like they might well make it happen for me.
As for the don't use the bits you don't want, well, I'd sorta figured that bit out anyway, but could not see the point in inviting feature creep and bloat, since that's what I'd like to get away from.
I was sorta thinking "less is more" and with less in it there's less to be wrong, bugged or broken. I'd rather see less in it but see it done really well, with some attention to the small details that make coding a pleasure again rather than a chore, which it's seemed to become in recent years.
I'm like it with meals too, preferring "simple" cooked well consistently, rather than "adventurous" but which nearly always fails to quite make the trip past mediocre.
Much to consider here, thank you all. Still open for other suggestions if you happen to know of one. Thank you also for some amazing memories of tools from the past! Some big names sadly no longer with us, and rather findly missed frankly.
With some of them you could just fire up the editor like it was a word processor and just write code that worked just like you were writing in your mother tongue, only glancing at the good and concise language reference to get the right "accent" for the particular dialect. Now that's good BASIC. Some of them also delight with elegant variations in the dialect. What a joy those can be.
Finally, assuming FreeBasic does not require you to go out and buy a teletype and a foot thick pile of green and white killer fanfold, then I'd say the author of said language "get's it" when it comes to lprint - I just wish more got it in the same way.