Action! Programming Language

Website Developer
Seattle Programmer
Published in
7 min readJan 15, 2021

History of Action!

Action! was a programming language designed in August 1983 by a man named Clinton Parker. Action’s primary function was to create very high performing programs for the Atari gaming console. Action! Ultimately never gained a lot of popularity, only garnishing two major commercial products and some other smaller projects. One of these commercial products was a word processor by the name of HomePak. HomePak was an application for the Atari 8-bit family created by the company, “Batteries Included.” HomePak wasn’t very popular among gaming critics at the time. HomePak would get critiques such as, “Don’t expect more than you pay for… Anyone who needs to use the database for even a mildly sophisticated operation will be frustrated and confused, a total mess.” (HomePak Wikipedia) The bad reviews for HomePak didn’t stop there. Another gaming company had this to say about HomePak, “The author had technical problems when using HomePak.

https://www.worthpoint.com/

The second program that utilized the ‘Action!’ programming language was the online service, ‘Games Computers Play’ in the 1980s. The software allowed users to play amongst each other, making Games Computers Play one of the first multiplayer games to grant users a GUI (graphical user interface). This software, contrary to its counterpart, actually did well. Games Computers Play amassed roughly 1,000 concurrent subscribers at the peak of its popularity.

Atari 8-bit Family Platform

Action! was run on the Atari 8-bit family, which was released in 1979. It was most commonly known as the Atari 400 and the Atari 800, respectively. During 1983, when Action! was released, there were only two other main competitors to Action. The other programming languages were BASIC and Assembler. Around this time, reviewers would say that the Action programming language was about as fast as Assembler. Another factor that made the Atari 8-bit family so good was the existence of a coprocessor chip, which was actually a custom coprocessor chip. This coprocessor chip allowed the Atari 8-bit family to have more lavish graphics and more vivid sounds than similar consoles. This platform was discontinued on January 1, 1992. The Atari 8-bit family, however, did not die in vain. This platform sold roughly 4 million units before being discontinued.

Procedural Programming versus Object-Oriented Programming

Action! is based on a procedural programming model, which is different from object-based programming. Procedural programming follows a top-down approach while coding. Procedural programming is more structured compared to object-oriented programming. This is because procedural programming utilized steps to carry out a task. Popular procedural programming languages include; BASIC, ALGOL, COBOL, and C.

On the other side of the coin, object-oriented programming is a programming model that utilizes objects instead of procedural programming steps. Typically in object-oriented programming languages, the program is split into smaller parts, also known as objects. These object-oriented programming languages generally follow a bottom-up approach. Unlike procedural programming, adding new data and new functions are much more manageable. Some famous examples of object-oriented programming languages include; C++, Java, Python, and C#.

Behind the Speed of Action!

To Atari programmers, the speed of a programming language is very crucial. This is because most software, coded by Atari programming languages, heavily depended on its graphics. To really find out how fast Action! was, Byte Magazine released an invention called the Sieve of Eratosthenes. This invention calculated all of the 1.899 prime numbers between 3 and 16.384. Since the release, the Sieve of Eratosthenes had become the leading way of testing speed.

So, let’s compare Action! to its competitors. When running Sieve of Eratosthenes, Atari BASIC took around five in one-half minutes to accomplish the task. For this time, five in one-half minutes was considered pretty good back then, but doesn’t compare to Action!. Action!, when running Sieve of Eratosthenes took an astounding one and one-half seconds to entirely execute the process. Remarkably, Action! Runs Sieve of Eratosthenes two hundred and nineteen times faster than the Atari BASIC could ever dream of.

Breaking Down Action!

Action! programming language contained four different modules. Those four modules were; the editor, run-time library, a monitor, and a compiler. For example, the run-time library supports the compiled code. You may be asking yourself, as a reader, what do some of these other modules do? Please allow me to explain.

Action! ‘s editor module utilizes someone’s television to freely use it as a code and text processor. An extra perk of using Action! in your television was that Action! let the user have free reign over how long the line of text would go on. This meant Action! would create a pseudo window that allowed a string of text to go much further than the television would allow. For example, using Action!, you could type up to 240 characters on a single line without a new line’s automatic start. Other Action! capabilities included being able to have two text windows open at the same time. Action! also comes embedded with a global ‘search and replace’ feature. In short, Action! Aimed to make programmers’ lives easier with quality of life features.

Next to be reviewed is the monitor module. The monitor module was a function (that was initiated with CTRL/SHIFT/” M”) that brought up a bar at the top of the screen. The monitor allowed users to test their code.

The compiler and the monitor work hand in hand when having to compile a particular line of code. In Action!, a user is required that their program is deliberately translated into machine code before the execution can commence. But this is where the monitor helps. In the monitor, when pressing the letter “C,” it automatically translates your program text to machine code. Most programming languages have ways to directly translate code into machine code so that the computer can execute them. Fun fact; machine code is most often written in binary.

Benefits and Downsides of Action!

The Action! Programming language came with both benefits and downsides. Action! lead the race in terms of speed among other programming languages during its prime. It was fast because of its memory management model. Their memory management model included “activation records.” Memory management models recorded the values of variables when a specific task had to be executed. Because of this, it allowed the job, when needed to be performed, to be brought forth faster.

Additionally, this programming language had three main data types, which were BYTE, INT, and CARD. While coding, a developer could put one of the three data types before the code to instantly bring it from memory (ex. BYTE RTCLOK=20). One downside for Action! was that it did not include support for floating-point types. This really was not a big deal because the Atari-8 bit family had universal support.

Trends

Action! programming has been replaced with more improved options over the years. Today, there is a following of programmers who basically use Action! programming for fun and for nostalgia reasons. Not many people use this language for large scale business or commercial reasons anymore. People use internet forums to develop their own scripts for fun. Current programming languages such as Python, JAVA, and C++ are more commonly used today.

Is Action! For You?

For starters, if you were alive during the Atari days, using Action! would now fill you with nostalgia. Even though I can’t say that I was around during the Atari days, doing this extensive research shed light on what was an adequate programming language. Another reason Action! might have been for you is the intense speed when computing. However, using Action! in today’s world would set you pretty far back. There is nothing wrong with Action!. Just in comparison with other programming languages, Action! does not compare in every way. Don’t get me wrong, you can still do things with Action! but newer programming languages get the job done with ease. In all fairness, as I have stated before, Action! was one of the fastest of its time.

How Action Compares with Other Programming Languages

Let’s break down some of Action! ‘s code. I’ll be sure to adequately explain in case you’re not familiar with coding. One main factor that all programming languages must possess is reserved words. Reserved words can be defined as words that are reserved for a specific task. Think of it like they have unique properties. The programming language simply makes it so these properties cannot be infringed. In this regard, Action! has a lot in common with other coding languages such as Python. Python uses a significant amount of reserved words such as exit, Elif, def, or, for, if, while, etc.…

Reserved words are extremely crucial when it comes to code, and differentiating them is crucial. When it comes to older programming languages, things got tricky. The words ‘Keyword’ and ‘Reserved Word’ are interchangeable, but they acted differently in older programming languages. In older programming languages, keywords were identified by other means. For example, in ALGOL 68, if you wanted to clarify that a word is a keyword, you needed to make it bold. (if = 1) vs (if = 1) (List of Action! keywords)

Takeaway

Action! was a pioneer of its time. Breaking limits and outclassing any of its competitors with its intense speed. Though slightly unpopular, Action! still has some popularity in some remote parts of the internet. That’s the lasting impression of the Action! the programming language was left behind as it slowly drifted into a virtual subconscious, like most things on the internet. After doing research on the topic, Action! has risen to be one of my personal top twenty programming languages. Being able to execute code at lightning speed, have multiple windows on a television, able to type well beyond the length of the television- Action! was before its time. I believe Action! could have really flourished if it got the recognition it deserved. The fame it did receive wasn’t due to dumb luck or by chance, it was crafted by teamwork, hard work, and dedication to the craft. I commend the developers of Action! for designing a gem in the programming language universe.

--

--