Ars Technica has published part four in their series on the history of the Amiga, starting with Amiga being bought by Commodore. “One hugely positive benefit about being owned by a large computer company was that the Amiga team no longer (for the moment, anyway) had to worry about money. The team was moved 10 miles to a spacious, rented facility in Los Gatos, California. They could afford to hire more engineers, and the software development team went from having 10 people sharing a single Sage workstation to everyone having their own SUN on their desk.”
A History of the Amiga, Part 4: Enter Commodore
About The Author
Follow me on Twitter @thomholwerda
2007-10-22 5:01 pmjack_perry
Not really. In many respects, programming is far easier today than it was then. Especially graphics programming! Those GETs and PUTs and POKEs and PEEKs were awful. Now you just have to read a book carefully, and it explains the structures with great examples. Since the structures have meaningful names, as opposed to random addresses in memory (or seemingly random), it’s much easier to move off and do your own thing.
2007-10-24 8:38 amtorbenm
PEEKs and POKEs were indeed awful, and it didn’t help that characters had a different code when POKEd on the screen than the ASCII code used in strings, nor did the lack of colour attributes for individual pixels on the C64 help.
I did some graphics on the PET and later a bit on the C64 (I never owned any of them, though), but most of my early graphics programming was on my own BBC Micro, which I bought around 1982 IIRC. The BBC micro had a vastly superior BASIC to the Commodores, including real graphics commands (points, lines, filled triangles, flood fills and more) and structured programming (repeat and while loops, multi-line if-then-else and recursive procedures and functions with named parameters), so programming was a joy compared to the C64. And with separate colour attributes for each pixel, colour graphics were a lot easier.
I agree with the original poster that getting into graphics programming is more difficult now than it was then. When you started your home computer, you were directly brought into an interactive BASIC environment and could start typing, editing and running programs, and a graphics environment was easily initialized (on the BBC, you just wrote “mode 0” to get a 640×256 b/w screen, “mode 1” to get a 320×256 4-colour screen and “mode 2” to get a 160×256 8-colour screen). In most PC programming languages you need to include a graphics library and call an initialisation function with zillions of arcane parameters, and if you want to plot text, you have to first load fonts and then specify half a zillion parameters to the text-plot functions. Sure, all these parameters allow flexibility, but they also raise the entry barrier.
2007-10-24 12:46 pmMacTO
I have to agree that programming was a lot easier back then. There were a bunch of reasons for that:
You had more accessible languages to learn with. In BASIC, you can write one line of code and have a working program. In C, the smallest properly written program is four lines and those four lines introduce three concepts instead of one. Then there is the edit-compile cycle, which you didn’t have to deal with in BASIC.
There was less confusion as to where to start. Almost every personal computer had BASIC, even IBM branded IBM PCs. There also seemed to be less of a stigma over proper languages and proper programming technique. Sure that combination produced a lot of bad programmers and bad programs, but it also got a lot of us into programming.
“Open source” (or maybe visible source is a better name) was arguably more common back then than it is today. If you download free (as in beer) software for Windows, you probably will never have the opportunity to see the source code. Even if you download free (as in freedom) software you will probably never download the source code. If you never have the source code stuck in front of you, you lose a great opportunity to learn from other people. But back then a lot of little programs were programmed in BASIC so you did have the source code. In other cases, you didn’t only have the source code in front of you — but you had to type it in! (Remember Compute’s Gazette, the magazine and their books?)
There were also a tonne of books for new programmers, and they were not intimidatingly thick. Many were even geared toward kids and young teens. Sure such books still exist today, but when I go to the computer programming section, it is tiny and it is dominated by specialist books rather than introductory programming books (e.g. how to program python). Of course the majority of computer books are just how-to books for using software, rather than how-to books for programming, which demonstrates where people’s interests lay.
Finally, expectations were lower. If I wanted to create a game today, one that is played by normal people, it would need great graphics, great sound, and be sophisticated enough to draw people in. If I wanted to create something less creative today, like a utility or application, my program would be compared to the many commercial, independent, and open source applications out there. All of which would be more sophisticated that what I could make in a reasonable time. But it wasn’t like that in the 1980s. Back then I could make a program and show it off to my friends, only to have them go “ooh” and “ahh”. And showing off is a great little incentive to acquire and improve your programming skills.
Edit, for clarity (too early). Added comments on books.
Edited 2007-10-24 12:53
2007-10-24 1:19 pmjack_perry
Finally, expectations were lower.
This is one important difference between our statements. I look at Python today & I see a language that is just as easy as BASIC, in fact I think it’s easier, and with the TCL/Tk libraries it does graphics easily, too. I expect that’s because TCL/Tk itself is easier but I haven’t looked at that, so I can’t say. 🙂
The other important difference is the languages you two are citing. Comparing BASIC and C is like comparing apples & oranges. There were C compilers back then, and they weren’t any easier than C compilers today; indeed the graphics were even harder. On one system I owned (Microware’s OS-9), good luck getting the compiler to work, let alone figuring out the graphics libraries! Some people did it of course but for mere mortals BASIC09 was much easier. But easiest of all was to use Tandy’s Extended Color BASIC, which was more powerful than most BASIC’s, so I used that.
I think it’s important to keep things at the same level. My son, when he was ten, started learning some Python programming. He was able to learn things pretty easily & enjoyed it a LOT more than I did when I was trying to figure out BASIC with all its stupid line numbers, GOTOs, esoteric commands (VARPTR) and packing. Open-source programs back then weren’t made to be readable or learned from; they were made to make you go “ooooh” and then we plugged in the game cartridge because one’s family & friends were rarely interested in anything else.
2007-10-24 2:59 pmMacTO
Yeah, I know comparing BASIC and C is like comparing apples and oranges. On the other hand, those seem to be the languages that everyone has heard of. You’re right about Python being a much better language for learning too. The thing is, not everyone will agree. As soon as you ask someone “where should I start in my quest to learn programming”, you will get six different answers from 10 different people. As soon as you start presenting too many choices to novices, I find that they start dropping out. That is particularly true if the differences are hard to explain.
Back in the 80s the choices were fewer and much easier to explain. Typically you had assember, Pascal, and BASIC. Assembler was “hard”, while Pascal cost money. BASIC was both easy and free. (Yeah, I know that there were other languages out there. But they weren’t so popular on personal computers and when they were available they fell into the same trap as Pascal.)
As for the quality of published sources back then: yeah, I know a lot of it was pretty hard to learn from. (Data statements and the like.) The thing is, a lot were easy to learn from too. Or at least no worse than modern open source projects. I still have a few books from the 80s in my library which includes the sources for BASIC games that you could enter into the computer yourself. None of it is obscured by data statements, either because they were meant to be portable or they were meant to learn from.
2007-10-22 9:23 pmDoc Pain
“I still have my C64 in my closet, […]”
Same here, too. 🙂 There must be approx. 5 C64s down there in the cellar, next to two Amiga 500s, an Amiga 1200 and some Atari XL, XE and ST stuff… In fact, I’m very sad I didn’t experience these computers very much. 🙁
“[…] plus I reprogramed half a game once. I didn’t purposely do it, but god if I got a book I prob. could have taught myself to prog. Now you actualy need to take a class to program.”
I don’t think so. “Ordinary people” – and please excuse that I use this term – may need to be taught programming, but “real man” – sorry again, folks – teach theirselves programming. Good literature, tutorials, examples and today the Internet do help. But when the Amiga was up to date, there was no Internet for everybody, so you usually learned from books and other programs. This kind of autodidactic learning may take more time than taking a class.
Regarding graphics programming, the C64’s PEEK and POKE and GET and PUT were not very intuitive, but almost arbitrary. The famous KC series built by RFT in the former GDR, operating on CAOS (not the CAOS mentioned in the article) and BASIC already had “real” commands for creating graphical primitives, composing sound and controlling I/O ports – see RFT KC85/3, RFT KC85/4 and robotron KC87 if you like. These devices could not compete with the Amiga, but with C64 for sure.
With today’s high level languages with their many abstraction layers and virtual concepts programming is a lot more easier, I think, but you need to know your toolset very well. And you usually need more than just an editor.
But please, don’t confuse programming with just writing code (implementing), because programming is much more: Planning, researching, coding, testing, debugging, debugging again…
2007-10-22 9:52 pmsbergman27
I don’t think so. “Ordinary people” – and please excuse that I use this term – may need to be taught programming, but “real man” – sorry again, folks – teach theirselves programming.
I would be more inclined to say that “ordinary people” go to school to learn to program because there’s money in a programming career, while “real men” (and women!) learn programming any way they can… school, tutorials, whatever, because they love it and have a passion for it.
2007-10-22 10:06 pmDoc Pain
“I would be more inclined to say that “ordinary people” go to school to learn to program because there’s money in a programming career, while “real men” (and women!) learn programming any way they can… school, tutorials, whatever, because they love it and have a passion for it.”
That’s a valid way to see it, I agree – money or passion. Good for those who are lucky and may combine both, but I’ve never been one of them. 🙂 I think passion is what makes a programmer being an autodidact, passion usually is much stronger than money, it makes the brain moving some more.
In addition to my short list above, I just noticed there are two Amiga 600 in the cellar, too. Poor devices… maybe they can play with the KCs a little bit and a big byte, and create some CAOS down there. 🙂
2007-10-22 11:47 pmjaviercero1
Ufortunatedly a lot of people seem to forget that “learn to program” is only half of the equation, you still need to have an algorithmic background.
Now, think of it this way… most people can write English (at least for the intents and purposes of this board), but not everyone can write beautiful or meaningful prose.
That is the reason why there are so many awful programmers out there. Knowing how to code in C for example doesn’t necessarily mean that you know how to solve a problem, and C is at the end of the day a tool. A lot of people seem to put all their effort in mastering the tool without understanding the problems…
2007-10-23 12:29 amlosethos2
You can do an awful lot being self-taught in high school. I did a lot in high school on a commodore and later learned there were better ways, but bad algorithms work fine for amateur projects. I used “bubble sorts” just fine.
I even wrote a program to balance chemistry equations, figuring-out triangulize matrices on my own.
Amateur games are well with-in the capability of high school unschooled programmers, or adult hobbiests, for that matter.
Remember text adventures?
2007-10-23 3:09 pmhelf
And that is why I don’t try to code anymore I can admire good code but I can’t write it…
you may find this interesting:
from the guy that did TripOS..
You can even dig about from some of the source of the OS.. I wonder how hard it is to bootstrap a PDP-11 (simh!?) to TripOS… it’d be very… cool if not amiga-ish!
Yes, article it is fine, the news about it on OSNews are fine, but OSNews site still forgot to mention that AROS had reached a milestone by booting on 64 bit processors.
If someone in OSNews could notice it and resolve this lack of news, then her/him work will be very apprecciated.
Thank you in anticipation.
—[/OffTopic] Yes, fine…—-
—[In Topic]Commodore: Jack Tramiel—
Jack Tramiel (former CEO of Commodore Business Machines), at his venerable age of nineties (90 years old!) will made a public appearance next 10 December 2007 at Computer History Museum in Mountain View (San Jose area), California
—[/In Topic]Commodore: Jack Tramiel—
Edited 2007-10-24 10:48
The video mentioned can be found on video.google.com, but I think the “History of the Amiga” video (search for that phrase) is far more interesting, with a roundtable discussion among the original developers. Wonderful and amusing anecdotes in that video!
Edited 2007-10-22 14:21
I still have my C64 in my closet, plus I reprogramed half a game once. I didn’t purposely do it, but god if I got a book I prob. could have taught myself to prog. Now you actualy need to take a class to program.