←back to thread

90 points rbanffy | 1 comments | | HN request time: 0s | source
Show context
SeenNotHeard ◴[] No.45133316[source]
One limitation not mentioned is that Action! didn't support recursion. This had to do with how local variables were stored.

Whether it was the best language for 8-bit programming, it certainly was a great fit for the 6502, as the language targeted the peculiarities of that chip. Accessing hardware-specific features of the 8-bit Atari's was a snap, which was necessary in order to do anything more interesting than sieves or print loops.

Action! probably could've been ported to the Apple line, but 8-bits were winding down by the time it was released. Porting to 16-bit machines like the IBM PC or Mac (or even the Atari ST) would have been a tougher sell, since Pascal and C were better established by that point, and worked well on those machines.

Two bad things about Action!: Charging a license fee to distribute the runtime, and that dumb bang in the name.

replies(2): >>45135475 #>>45136874 #
keyle ◴[] No.45135475[source]
Wasn't recursion a problem for early C and Pascal in those days anyway? They didn't have tail call optimisations.

As in after X recursion, you'd get in trouble as the memory kept allocating new stack frames for every recurse...

replies(3): >>45136010 #>>45136862 #>>45145984 #
1. stevefan1999 ◴[] No.45136862[source]
You still don't have TCO anyway unless you use [[must_tail]] (or the upcoming become keyword in Rust)