05 June 2015, 21:41 | #201 | |
AMOS Extensions Developer
Join Date: Jun 2007
Location: near Cambridge, UK
Age: 44
Posts: 1,924
|
Yup, which was why the font was really small and only needed to draw on 1 bitplane
Quote:
|
|
01 August 2015, 16:12 | #202 | |
Registered User
Join Date: Sep 2007
Location: Stockholm
Posts: 4,348
|
Quote:
|
|
10 August 2015, 06:23 | #203 |
Banned
Join Date: May 2015
Location: Australia
Posts: 67
|
In regards to the actual topic,.....
What quantifies "homebrew" ? In recent times we've had sqrzx1,2, and 3. We've had scummvm, a few doom engines, wolf3d, quake 1+2, strife, heroes if m&m3, a bunch of Atari st ports, etc., etc. along with various library upgrades and utilities. A browser, mplayer, ffmpeg, mui4, Mr. Beanbag, T.O.G, and so on and so forth. There's also a complete rewrite of the OS, and versions of said OS (AROS) to various architectures, along with software for it. The list goes on and on, and this is also disregarding the ppc amiga-oid systems and their software. Personally I think that's at least on par with the handful of titles released for the assorted 8bit machines. Being that I'm a fan of most retro systems and Amiga (retro as well granted, but have to make the distinction somehow) its all a win for me, but I can't help feel the Amiga is being sold short here. |
10 August 2015, 15:18 | #204 | |
Registered User
Join Date: May 2014
Location: inside the emulator
Posts: 377
|
Quote:
The problems with most BASIC systems are: line numbering (actually a forced form of labels), limited datatypes, limited support for structured programming, limited naming of variables (often limited to an a-z character followed by a 0-9 character followed by a type indicator), static allocation of resources etc. But the _big_ problem is that there isn't a BASIC standard in the same way there are standards for Pascal, C, C++ etc. Yes there are standard BASICs (ANSI & ISO) but most systems doesn't implement them. That means that one can't learn a single standard language and then transfer that knowledge when working on another system. Actually it's worse than that - one often have to do drastic rewrites as different evolved BASIC dialects supports different types of extensions that work in different ways. And even if one would find and work on systems with standard ANSI BASIC (the Enterprise 64/128 computers use it under the name IS BASIC) there are obvious limitations compared to other languages. (* for a very limited subset of programming) (** in some form) |
|
10 August 2015, 16:03 | #205 | |
Registered User
Join Date: Aug 2006
Location: Scunthorpe/United Kingdom
Posts: 2,077
|
Quote:
It was intended to get the absolute beginner into programming, with an eye to moving up to more complex systems later when they reached proficiency. Many people make the mistake of saying things like "C is perfect for the beginner" or "Assembly is so simple anyone could pick it up" or other such phrases - when what they're actually saying is that because they're proficient in such a language they believe that someone who has never even looked at code before could do as well as they have. That's not to say that a beginner couldn't start off with C or Python or Perl or whatever - they can. But BASIC makes it easier, by a huge margin. Line numbers are not there to "enforce labels" - they are there to reinforce how a computer does its job - logically, one instruction at a time in sequence. The list of lines, being numbered and in sequence, helps the beginner grasp what order things are going to be done in. This is preferable to C/Pascal et al because they often do things in a non-obvious order what with having entry points halfway through a source file or whatever. Limited datatypes is a conscious decision to simplify things - when you don't even know what a variable is you certainly can't be worrying about how many bytes it takes, what the range is, whether or not it's signed... You have enough on your plate as it is when some letters can be numbers and some can be strings of other letters! Limited variable naming tends to be a limitation of the BASIC's environment such as memory space available etc. Even the old 8bits allowed you to name things with long names, even if some of them restricted string variable names to one letter and a $ character suffix! These days though, I don't know of many BASICs at all that restrict variable name lengths. Static allocation isn't really a problem at the beginner level, and nor is support for structured programming or code flow. It's enough to know that you can use GOTO to jump around, GOSUB to enter a subroutine - moving onto procedures and function definitions is quite advanced when you're still getting to grips with the fact that your code can branch if a decision is made There are many BASICs out there now (and have been since the days of the Amiga and before even that) which promise that the user can use them to write complex applications and boast many of the features of their lower-level peers, but they themselves are to blame for many of BASIC's failings - they don't encourage a user to move on and learn a better system. If a user has learnt sufficient BASIC to be able to write complex systems and games then they really shouldn't be using a BASIC to do it - they're good enough coders to be able to start with something like C or learn Asm. BASIC is for beginners, and for its part in their development it does its job admirably. TL;DR - BASIC is great for teaching people to code from the ground up, but no more than that; you're not meant to stay with BASIC forever. D. |
|
10 August 2015, 16:23 | #206 |
Banned
Join Date: May 2015
Location: Australia
Posts: 67
|
I've not seen line numbers in a basic dialect for years. As for data types, perhaps I've missed something, but ints, floats, strings, words, and long words (where relevant) are supported by pretty much any basic I've seen in an equally long time, along with structs (or equivalents,... Newtypes for blitz for eg.). Not sure where the idea of limited naming comes from either,... haven't encountered that in my 35 years of programming. No need for things to be static either in my experiences.
As for program flow/structure,... does anyone use things like goto or gosub anyway? Most basics I've used can call procedures/functions. Also, most basics these days let a user directly use system libraries, so even basics use something other than basic for most functions (even if the author isn't really aware of it). To each their own, but it seems some people still liken basic to versions from a few decades ago (although even then they started evolving). While syntaxes aren't dissimilar, they're pretty different beasts to the very early dialects. Last edited by beezle; 10 August 2015 at 16:38. |
10 August 2015, 16:30 | #207 | |
Registered User
Join Date: Aug 2006
Location: Scunthorpe/United Kingdom
Posts: 2,077
|
Quote:
People absolutely should learn line numbering first - if they have never touched code before then it makes it so much easier to visualise what's going on. They can leave line numbers behind when they leave BASIC behind, and should be encouraged to do so. As I said in my previous post, you're making the assumption that an absolute beginner should understand what things like datatypes are and be proficient with calling procedures and functions when by their very definition ("Beginner") they don't even know what an instruction is. Edit: Right now, I'm being paid to develop a teaching system for 7 year olds to learn to code with. I've made a start on the manual, and I'm having to get a few chapters in on what numbers are as opposed to strings - and that's before I even touch upon actual code. I suspect that not many people have a real grasp on how basic(!) the knowledge of a real beginner is. D. |
|
10 August 2015, 18:53 | #208 | |||||||
Registered User
Join Date: May 2014
Location: inside the emulator
Posts: 377
|
Quote:
Quote:
Quote:
But still the line numbers mean that one can't know if a certain code block is the target of a goto/gosub/restore. Quote:
If one uses BASIC to learn the absolute basics of programming then yes, I can see your point. But that wasn't the point of what I replied to. Quote:
In BASIC one doesn't even have the luxury of that, IF the BASIC system supports semi-long names (many doesn't) then all but the first character is ignored and the length of the name is too. Total failure. Quote:
The only "standard" structured element in BASIC is DEF FN and even that isn't a given (some BASICs doesn't implement it, some have serious limitations). Static allocation makes a lot of things essentially impossible to program in BASIC. Quote:
But still the point of my post was that BASIC have problems on many levels and isn't a good alternative for most programming tasks. Unless it is the only language available like in my Wang 2200 beast. :/ |
|||||||
10 August 2015, 19:00 | #209 | ||
Registered User
Join Date: May 2014
Location: inside the emulator
Posts: 377
|
Quote:
Then you still have the problem of non-standard extensions. You aren't writing BASIC code - you are writing *basic code. Most extensions are awful BTW, I stopped using BlitzBasic (the modern PC version) as not only the syntax but the semantics was horrible for anything complex. Quote:
|
||
10 August 2015, 20:00 | #210 | |
Glastonbridge Software
Join Date: Jan 2012
Location: Edinburgh/Scotland
Posts: 2,243
|
Quote:
Goto and Gosub &c might be easy to understand, but functions and composite types are such essential concepts these days that learning without them isn't really setting you up to progress to anything else. Back when more people might graduate to Asm it made sense, because asm has only jump/branch &c. More abstract, modern languages don't even have the equivalent of Goto, or at least strongly discourage it. You would educate kids into a dead end, and then wonder why they never progressed any further. Besides, kids seem to be able to grasp the concept of functions pretty easily. They aren't a difficult concept at all, the only one who has to think very hard about them is the one who has to write the interpreter! |
|
10 August 2015, 20:42 | #211 |
Banned
Join Date: May 2015
Location: Australia
Posts: 67
|
@Megol
Quite the contrary. What I've mentioned is a typical basic dialect these days, and has been for many years. Those that aren't like this are the exception nowadays. To single out those that aren't is to misrepresent "modern" basics. It doesn't matter where inspiration came from (more c than pascal in my opinion anyway), it's simply the way the language has evolved. It's what basic has become. This isn't to suggest I'm advocating it to everyone, but I'm hardly going to denounce it based on what it was 20+ years ago either. It's a much more versatile and flexible language than it once was, and as such a perfectly valid choice for quite a bit of software. From web browsers to emulators to art packages, movie players and quake clones. There's very little that hasn't been done, and end results ratio of hit:miss isn't drastically different to software written in other languages. Last edited by beezle; 10 August 2015 at 21:03. |
10 August 2015, 22:09 | #212 |
Code Kitten
Join Date: Aug 2015
Location: Montreal/Canadia
Age: 52
Posts: 1,178
|
Actually, there is evidence from recent studies that functional languages (Haskell, ML, ...) are easier to pick up by absolute beginners than imperative ones (BASIC, C, Pascal, C#, ...). The notion that a GOSUB is simpler to grasp than a regular function has been long disproven.
Experiments with kids aged 5-10 show that not only they are capable to grasp the concept of function but that they actually are capable of inventing it when they realize they need to repeat a multi step operation. Basic is universally considered a historical accident by computer scientists and professionals alike and although that is the language I started with when I was around 11-13 I definitely would recommend to stay away from it. It's fine to use as a prototyping language (Amos/Bltiz) but I do not think it is a good introductory language because it hampers the use of higher level concepts that any programmer needs even very early on. |
10 August 2015, 22:28 | #213 |
Banned
Join Date: May 2015
Location: Australia
Posts: 67
|
Care to elaborate?
What "higher level concepts" do you mean. As I already said a few times an even semi modern basic is a different beast than it once was. Much more c like, but with a friendlier syntax. People keep trying to dismiss it based on things that are simply no longer true. I've read a few times in this thread about gosub, goto, etc. as examples, but they're frowned upon even by basic coders, in favor of functions/procedures anyway. Types, structs (including nested), macros, includes, o-o, etc,etc. are all part of a typical basic dialect these days. Again, I'm not particularly endorsing the language, but it really appears many here who are quick to denounce it are doing so on the back of the state of the language when they moved on to something else. As such these perceptions are pretty skewered. Ironically though basic is now typically taught as an intermediate level language at uni, along with c/c++. Things like flash/action script and even gmsl are taught as introductions to programming. Last edited by beezle; 10 August 2015 at 22:55. |
10 August 2015, 22:38 | #214 |
Glastonbridge Software
Join Date: Jan 2012
Location: Edinburgh/Scotland
Posts: 2,243
|
well even ANSI Basic has functions, but really children have no problem at all with abstract concepts, it's adults who struggle, and then we try to dumb things down for children because we'd like to think we're smarter than they are when in fact we could all do with unlearning a few things that have got a bit too concrete.
There's nothing inherently friendly about BASIC syntax, in any dialect i've ever written in. The theory goes, i suppose, that if it looks like natural language it will be easier to get your head round it, but 1. it isn't natural language. "Looking" like natural language just confuses matters. 2. children don't have a "natural" language anyway, they only know English because they learnt it. 3. not all children speak English generally, BASIC syntax uses far more keywords than it really needs (essentially arbitrary symbols divorced from their everyday meanings), that is just more things to learn for no reason, and it's completely ad hoc and inconsistent. Last edited by Mrs Beanbag; 10 August 2015 at 22:44. |
10 August 2015, 23:09 | #215 |
Registered User
Join Date: Aug 2006
Location: Scunthorpe/United Kingdom
Posts: 2,077
|
All good points folks, but might I just point out that BASIC is just about to become the language that kids learn in pretty much all British schools?
Well, if I get this done it will be D. |
11 August 2015, 00:45 | #216 |
Registered User
Join Date: Jun 2012
Location: UK
Age: 44
Posts: 748
|
I guess I would dispute that, being brought up on BASIC and finding the ideas so easy. The only complicated thing for a seven year old was GOSUB, but I got it eventually. Still, it's difficult to know, if being brought up on OOP would have been better because it's too late now
|
11 August 2015, 10:42 | #217 |
Registered User
Join Date: Nov 2012
Location: Willich/Germany
Posts: 233
|
Another problem is: what kind of machine is a good target for a game development? Amiga 500 with 1 MB RAM? Amiga 1200 with Fast-RAM? Are there any preferences?
|
11 August 2015, 11:04 | #218 |
Glastonbridge Software
Join Date: Jan 2012
Location: Edinburgh/Scotland
Posts: 2,243
|
the syntax... not the ideas. The ideas are simple, but the syntax is horrendous. It's a testament to how smart kids are if they can get their heads round BASIC syntax.
i think gosub is harder than function calls. I grew up with Enterprise BASIC, which has function calls, they are easier to grasp because you get this coherent unit that you can call much like any native command. It's an abstraction; gosub is concrete. I think it's a mistake to assume concrete ideas are simpler than abstract ones, especially for children. We become concrete as we become set in our ways as adults, or as were *taught* to become set in our parents' or teachers' ways... children are natural abstract thinkers. Just look at children's drawings. They don't draw static images. They draw stories. Everything is symbolic, it doesn't matter to them that it doesn't look photo-realistic because it's about what it means not just what it looks like. Then we bully it out of them throughout their whole time at school, making them draw still lifes. Sadly i think our education system is built around producing worker drones rather than expanding people's minds. Also i remember being continuously frustrated at school, because at every next step we found out that what we'd learned previously was wrong. They teach you wrong things because they think it's "simpler" than the truth, as if the point of understanding were just to sate your curiosity and stop you asking awkward questions. Adults are terrified of children actually understanding things and asking good questions they can't answer. It was doubly frustrating when i was ahead of the class and already knew that what i was being taught was wrong, because my dad had taught me, or i'd read a book or something... @Dunny have they specifically requested you write a "BASIC"? Because it really doesn't seem like a good fit to the problem anymore. What is the motivation behind this choice? And how do you even define "BASIC" these days? Line numbers don't exist to make it simpler. They are a relic from the old days of punched cards. Actually they are the stuff of nightmares. I remember always using increments of 10 (as my dad taught me) so that i could squeeze more instructions in the middle if i needed to, starting each function on multiples of 1000's &c. There's nothing simple about that, it quickly becomes a major task of engineering even for a moderately complex project. They are redundant now with modern editors, and only meaningful as the target of GOTO/GOSUB, which you shouldn't be teaching kids anyway imho. I never use them even in AMOS. |
11 August 2015, 12:26 | #219 |
Registered User
Join Date: Jun 2009
Location: Dublin, then Glasgow
Posts: 6,377
|
Meh, I use C for some work stuff, and I use BASIC for enjoyment, so most of my Amiga coding is done in AmiBlitz. It produces executables that are slightly bigger and slightly slower than their C equivalents, but there isn't really anything I can do in C that I can't do in AmiBlitz. Goto and Gosub are strongly discouraged in the Blitz documentation too, with procedures given as a good alternative.
As a kid programming on the BBC Micro and Atari 8-bits, Gosub was never a problem, like people have said, if kids are interested in it, they'll just pick up the concepts naturally, be it Gosub or an abstract procedure. It tends to be adults with their brains more "set" that have difficulty trying to learn these things (and I can tell you I still struggle with pointers sometimes!). So with more modern BASIC dialects, it will be down to the concepts and methods learned rather than the actual keywords. I remember switching between BBC BASIC, C64 BASIC and Atari BASIC, never having problems remembering which code worked where (CLS versus PRINT CHR$(147) versus ? "<Esc>+<Home>" for example... Wow, that's kinda scary ), and some differences, like the example, were quite dramatic. Once the concepts are learned, it won't make much of a difference in what language they were picked up, once the language supports the concepts. And any modern BASIC will. |
11 August 2015, 13:18 | #220 | |
Registered User
Join Date: Aug 2006
Location: Scunthorpe/United Kingdom
Posts: 2,077
|
Quote:
Which will be rolled out across the UK over the coming months. D. |
|
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests) | |
Thread Tools | |
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
What is the technically most impressive A500 game? | mc68060 | Amiga scene | 67 | 03 June 2015 22:32 |
The Tales of Grupp - Another impressive homebrew ZX Spectrum title! | Neil79 | Retrogaming General Discussion | 3 | 24 February 2015 19:19 |
New One Of "Homebrew" 68k Amiga Magazine Idea | fishyfish | Retrogaming General Discussion | 6 | 16 April 2013 08:57 |
Impressive and Amazing PD Software! Any thoughts? | hamster | Retrogaming General Discussion | 0 | 18 July 2004 01:42 |
|
|