English Amiga Board


Go Back   English Amiga Board > Main > Retrogaming General Discussion

 
 
Thread Tools
Old 21 August 2024, 12:48   #101
Karlos
Alien Bleed
 
Karlos's Avatar
 
Join Date: Aug 2022
Location: UK
Posts: 4,931
Quote:
Originally Posted by alkis View Post
I understand the feeling about C++, but C?
I don't think there is a simpler language than C.
I hear you but the only people that really say that, myself included, are already familiar with it. We forget the first encounter because there's an epiphany moment with C where suddenly it all clicks and we forget the WTF moments where something compiled but didn't work or when something wouldn't compile but seemed correct. We forget the phases we went through with pointer indirection, multdimensional compact arrays, single dimension arrays of pointers that we could dereference as if they were 2D arrays and how lethally different their internal representations are, etc. It's all muscle memory now and seems like the most obvious thing in the world - precisely because we aren't beginners.

Beginners ask informative questions. Why do you need to declare the return as void? What, it will return an integer by default if I don't specify? Why? If I don't declare any parameters that means what? Oh, I have to put void to say it takes no parameter, otherwise I am asking the compiler to play guessy games based on the first invocation?

There's all sorts of odd fruity behaviours in C that we again avoid by muscle memory.

I also think that many of us will have had some sort of assembler experience before C which preps you for concepts like different integer types, pointers and linear arrays just being a continuous span of memory locations and what not, but I can imagine (even if not recall) how they seem in isolation to beginners without that experience.

Last edited by Karlos; 21 August 2024 at 13:02.
Karlos is online now  
Old 21 August 2024, 12:57   #102
Karlos
Alien Bleed
 
Karlos's Avatar
 
Join Date: Aug 2022
Location: UK
Posts: 4,931
Quote:
Originally Posted by Thorham View Post
That's indeed nicer. Isn't Blitz also newer than AMOS? AMOS is still quite old school.
Yeah, I believe so.
Karlos is online now  
Old 21 August 2024, 17:01   #103
Dunny
Registered User
 
Dunny's Avatar
 
Join Date: Aug 2006
Location: Scunthorpe/United Kingdom
Posts: 2,184
Quote:
Originally Posted by Karlos View Post
A while later there was a DK book series that showed a nicer way. It used the DEF FN keyword to define a function that would run a machine code routine from basic. It didn't include listings of the machine code, just the pokes, but there was some obvious boiler plate bytes in every example. Decoding those showed me how it was getting the variables passed to the declared function from the basic stack. Knowing that, I could write my own assembly routines that could be called from basic as a function. Happy days.
Those would be the "Step By Step" programming guides from Dorling Kindersley. I have all four. The two that introduced m/c routines in DEF FN were books 3 and 4:

https://spectrumcomputing.co.uk/alt/...ics-Book_Three

https://spectrumcomputing.co.uk/alt/...hics-Book_Four

You can find the PDFs of those on those links.

Last edited by TCD; 21 August 2024 at 17:14. Reason: Fixed the quote
Dunny is offline  
Old 21 August 2024, 17:14   #104
Karlos
Alien Bleed
 
Karlos's Avatar
 
Join Date: Aug 2022
Location: UK
Posts: 4,931
Damn! Nostalgia overload.
Karlos is online now  
Old 21 August 2024, 19:23   #105
Thorham
Computer Nerd
 
Thorham's Avatar
 
Join Date: Sep 2007
Location: Rotterdam/Netherlands
Age: 48
Posts: 3,965
These are available for the C64 as well.
Thorham is offline  
Old 21 August 2024, 20:13   #106
Dunny
Registered User
 
Dunny's Avatar
 
Join Date: Aug 2006
Location: Scunthorpe/United Kingdom
Posts: 2,184
Quote:
Originally Posted by Thorham View Post
These are available for the C64 as well.
They're superb and possibly my most treasured computer books. I got so much mileage out of them back in the day.
Dunny is offline  
Old 22 August 2024, 08:29   #107
Thorham
Computer Nerd
 
Thorham's Avatar
 
Join Date: Sep 2007
Location: Rotterdam/Netherlands
Age: 48
Posts: 3,965
Quote:
Originally Posted by Dunny View Post
They're superb and possibly my most treasured computer books.
Sadly they don't make them like that anymore
Thorham is offline  
Old 22 August 2024, 10:36   #108
Karlos
Alien Bleed
 
Karlos's Avatar
 
Join Date: Aug 2022
Location: UK
Posts: 4,931
I had books 3 and 4. I have no idea what happened to them. I still have a ZX Spectrum owners manual though, the original ringbound one with the strange floating cityscape at sunset/sunrise cover.
Karlos is online now  
Old 22 August 2024, 12:57   #109
Photon
Moderator
 
Photon's Avatar
 
Join Date: Nov 2004
Location: Eksjö / Sweden
Posts: 5,761
I think any language helps, but your first language(s) should be 1) simple and 2) educational. BASIC was, in the 1970s.

Simple can mean 3 things: a) limited, b) not limited but low-level (write all the code), c) not limited and written code available, but you must learn a bunch of custom libs which will break and change. a keeps the language simple and easy to learn, while b and c keeps the language simple and hard to learn, and c means you have only custom knowledge about opaque functions, knowledge which is worth nothing and useless to learn.

Early languages also had to be limited to be small in size and leave enough RAM for programs. Some limitations like line numbers also came from something like this; to make the editor smaller and faster. BASIC is BASIC even without line numbers, and most BASICs did have functions of a sort.

I would say languages classed as educational would be a better start; this excludes the C family but includes languages like the Pascal family, Lingo, etc. But BASIC wasn't bad for the 1970s and early 80s. You could do a lot. Some dialects were bad tho, like the C64 BASIC.
Photon is offline  
Old 22 August 2024, 13:51   #110
Karlos
Alien Bleed
 
Karlos's Avatar
 
Join Date: Aug 2022
Location: UK
Posts: 4,931
I would suggest that Python fills the gap of simplicity and ease of learning, except that it's not really an option for learning to program on the Amiga.

I think Blitz Basic is probably an OK dialect though, it does support things that prepare you for moving on, like scalar types, structures and pointers and what not and it's not too much of a word salad.
Karlos is online now  
Old 22 August 2024, 20:01   #111
Daedalus
Registered User
 
Daedalus's Avatar
 
Join Date: Jun 2009
Location: Dublin, then Glasgow
Posts: 6,416
Also, to an extent it will depend on whatever reading material and / or tutorials you have. Even BASIC is a steep learning curve if all you have is a blank screen with a blinking cursor. The Usborne BASIC books in the '80s were wonderful learning material and taught me basic, despite the dialect used by my Atari being unsupported and thus incompatible with 80% of the material.

But I also had (and still have) an extremely dry book that does its best to put any aspiring coder off learning even BASIC. It's called Programming Your Atari Computer by Mark Thompson (viewable here), and spends 85 pages lecturing on computer theory, boolean algebra, binary arithmetic and so on before introducing a single command. As a kid, it might have put me off coding if I didn't also have access to the Usborne books in the library.
Daedalus is offline  
Old 22 August 2024, 20:40   #112
Locutus
Registered User
 
Join Date: Jul 2014
Location: Finland
Posts: 1,211
This again something that Python actually does quite well. It's entirely possible to learn basic (hah!) programming with nothing but the default Python documentation included with the language.
Locutus is offline  
Old Today, 20:51   #113
Bruce Abbott
Registered User
 
Bruce Abbott's Avatar
 
Join Date: Mar 2018
Location: Hastings, New Zealand
Posts: 2,862
Quote:
Originally Posted by Locutus View Post
This again something that Python actually does quite well. It's entirely possible to learn basic (hah!) programming with nothing but the default Python documentation included with the language.
It may be possible, but is it a nice experience?

I went to the official python website and after clicking through five levels 'Python for Beginners", 'Beginner Guide', ' Beginner's Guide/Tutorial', and 'Beginners Python Course', I was asked to pay € 39.00. Scrolling down for the 'free' beginner’s Python tutorial instead, I was assaulted by ads trying to trick me into making money for them.

So I googled 'python language documentation' and got this. Another click for 'The Python Tutorial' and then another click to 'Whetting Your Appetite' which tells us that 'If you’re a professional software developer... Python is just the language for you!'

Appetite not whetted.
Bruce Abbott is online now  
Old Today, 20:55   #114
Karlos
Alien Bleed
 
Karlos's Avatar
 
Join Date: Aug 2022
Location: UK
Posts: 4,931
If you can already program in another language, python is a doddle - especially if all you want to do is basic procedural/imperative code.
Karlos is online now  
Old Today, 22:02   #115
Locutus
Registered User
 
Join Date: Jul 2014
Location: Finland
Posts: 1,211
You can skip to the next page and it'll introduce you to the first learning mechanism, a REPL. One of the better didactic tools for programming instruction.

And then you are ready to continue on the page after that to interactively learn how the primitive types work.

But engaging with Bruce is a folly, so I don't know why I bother.

(Yes, there's going to be a witty mind bending line of reasoning coming now)
Locutus is offline  
Old Today, 22:41   #116
saimon69
J.M.D - Bedroom Musician
 
Join Date: Apr 2014
Location: los angeles,ca
Posts: 3,680
Quote:
Originally Posted by Karlos View Post
It seems that these days, Python is the go to language for learning to program on modern systems.
Python is the new Basic
saimon69 is offline  
Old Today, 22:46   #117
Karlos
Alien Bleed
 
Karlos's Avatar
 
Join Date: Aug 2022
Location: UK
Posts: 4,931
Python gets used by professionals too, just not necessarily software engineers first. It's big in data processing, visualisation and AI. It doesn't do these things itself but it has bindings for all the main technologies that do, and as such is a glue language that people with secondary skills in programming can use without much difficulty. You can easily wield absurds amount of GPU accelerated compute from just a few lines of python code.

It's not my particular cup of tea, but I do understand why it gets used.
Karlos is online now  
Old Today, 22:46   #118
Bruce Abbott
Registered User
 
Bruce Abbott's Avatar
 
Join Date: Mar 2018
Location: Hastings, New Zealand
Posts: 2,862
The OP says:-
Quote:
Originally Posted by Megalomaniac View Post
It made its mark on the Amiga too. As late as 1991, the dropping of AmigaBASIC (a Microsoft BASIC derivative poorly regarded by then, but actually well-received on the Amiga's launch) from Workbench 2 received some murmurings of discontent, that it was going to impact people's learning of computing.
That's true. AREXX was not a good substitute for those who wanted to learn programming. It cemented the attitude that computers are now too complex for the average person to develop their own software, so shut up and buy the titles we provide (we didn't make this computer for you, it's just a way for us to extract more money from your wallet!).

Quote:
Variants like Blitz and AMOS were still to come into their own - games like Skidmarks, the Valhalla series, Base Jumpers and Gloom were made in them, not to mention innumerable PD/coverdisk or recent homebrew games - all mostly by people with no professional or academic coding experience. Amiga Format cover-mounting the programs and having extensive guides has to take some great credit there - not sure if magazines in other countries did anything similar at the time?
Magazines in other countries did indeed do the same, as was traditional in the home computer scene. Some also published books on the subject, eg. Compute!'s first book of Amiga which included 'Powerful games, tutorials, programming techniques' and 'previously unpublished programs as well as the best from COMPUTE! magazine'.

Quote:
Still, though, there are criticisms of it. Some feel that it promotes bad programming habits. Some care that it lacks functions or object-orientation. The variants can be quite different from each other...
Yes, BASIC was roundly criticized by 'experts' for allowing bad programming habits - in particular the abominable GOTO - and for not being consistent between variants. Perish the thought that the unwashed masses might think they can learn to program their toy computers without first doing a 5 year university course.

Proper computing languages like C don't have GOTO, and all variants were so consistent that K&R was all you needed, even before '89. Furthermore, accepting that programs take take ages to compile and throw up heaps of cryptic errors if you make the slightest mistake, or silently accept that missing semicolon or out of range pointer and go awry and corrupt memory at run time, is what separates real programmers from amateur wannabes.

This complaint didn't apply to Amiga BASIC though, which was fully structured and had extensive support for the Amiga's powerful OS and hardware. Sadly it suffered from being a Mac port, which meant it was incompatible with 32 bit CPUs, and Microsoft didn't fix it (I presume) because Commodore didn't want to - or couldn't afford to - pay them for it.

Quote:
Of course, home computers varied in the quality of their BASICs. It's been argued elsewhere that a system coming with a relatively poor BASIC (or at least, one which didn't maximise the computer) this may have been a blessing in disguise, as it encouraged programmers to go straight to assembler.
This is true, but it was more a matter of the machines having such low specs that you needed the most efficient language possible to get acceptable results - at least for action games. But the same also applied (to a lesser extent) to other high level languages, which were generally not a good fit to the average 8-bit home computer - as well being far more difficult to work with.

Quote:
Was this a general feeling, or were the outweighed by the amount of people who were put off from programming altogether?
The purpose of BASIC was to make it easier to get into programming. It certainly did that. It was even easier on machines that had BASIC built in, especially when it (almost always) also acted as the user interface. Machines of the day generally had excellent manuals that led you through the first steps of programming, and magazines had heaps of 'free' program listings that users who were starved of commercial programs typed in. Anybody who was 'put off' by that wasn't meant to be programmer.

Quote:
Do we know to what extent the leading Amiga game programmers started off with learning BASIC, whether they feel it was good or bad before progressing to Assembler or perhaps C?
I'm guessing the vast majority started out learning BASIC on their first home computer. The exceptions would be formally trained professionals, and those of us (like me) who started earlier writing machine code for a microprocessor development board or scratch-built computer.

By the time the Amiga arrived many 'leading' developers were already experienced in asm, and so may have transitioned directly to it on the Amiga. However this required programming tools that initially were sparse and difficult to use. I got the MetaComCo assembler for my A1000, but it was a pain to work with so I used Amiga BASIC until something better came along. In my case that was AssemPro, which came with the book Amiga Machine Language by Abacus.
Bruce Abbott is online now  
Old Today, 23:08   #119
Bruce Abbott
Registered User
 
Bruce Abbott's Avatar
 
Join Date: Mar 2018
Location: Hastings, New Zealand
Posts: 2,862
Quote:
Originally Posted by Karlos View Post
If you can already program in another language, python is a doddle - especially if all you want to do is basic procedural/imperative code.
Awesome.

I see Micropython for the Amiga classic has just been released on Aminet. 440k of super-efficient compiled code, ready for you to create the next hot Amiga game on your A500! - provided that you have OS 3.1, bsdsocket.library, and preferably 4 MB of RAM (though it 'may' work in less).

MicroPython
Quote:
MicroPython is a lean and efficient implementation of the Python 3 programming language that includes a small subset of the Python standard library and is optimised to run on microcontrollers and in constrained environments...

MicroPython is packed full of advanced features such as an interactive prompt, arbitrary precision integers, closures, list comprehension, generators, exception handling and more. Yet it is compact enough to fit and run within just 256k of code space and 16k of RAM.
...but not on the Amiga.

Still, at least it has 'advanced features' such as an interactive prompt. If only BASIC had that!
Bruce Abbott is online now  
Old Today, 23:12   #120
Karlos
Alien Bleed
 
Karlos's Avatar
 
Join Date: Aug 2022
Location: UK
Posts: 4,931
Reading the opinions on this thread and ruminating on the last 30 odd years of personal and professional experience is oddly cathartic.

Back when I moved to C, and soon after C++, I was such an opinionated, insufferable prick of a language zealot. Fast forwards to now and I'd like to think that's changed. I'm much more of the view that all languages are tools and you pick whichever suits your needs best.

One our of two isn't bad, I suppose... :
Karlos is online now  
 


Currently Active Users Viewing This Thread: 4 (3 members and 1 guests)
Karlos, Bruce Abbott, DanScott
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
Trying to find variant of this song Flow Res. Kenny Amiga scene 1 11 August 2023 21:58
A1200 case, desktop variant? Malakie Amiga scene 6 11 December 2021 18:12
Preferred Falcon variant eXeler0 Retrogaming General Discussion 19 20 November 2020 00:40
How to specify the game variant used in Arcade Mode? ketschak support.FS-UAE 2 07 March 2014 14:31

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 23:14.

Top

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Page generated in 0.10865 seconds with 15 queries