# RETRO FORTH — Forth Programming Language

> A structured, imperative, stack-based programming language with modern features. (iPhone/iPad app by Charles Childers.)

- Source: https://appshunter.io/ios/app/retro-forth/id1170943580 (this page in markdown: same URL + `.md`)
- Developer: [Charles Childers](https://appshunter.io/developer/900749636)
- Category: Developer Tools, Utilities
- Price: Free
- Rating: 4.40/5 from 5 App Store ratings · 3 written reviews indexed
- Age rating: 4+
- Requires: iOS 12.4 · 4 MB
- Languages: American English
- Released: 2016-11-08
- Data updated: 2026-09-06
- Monetization: free
- User reviews in markdown: https://appshunter.io/ios/app/retro-forth/id1170943580/reviews.md

## What is RETRO FORTH?

RETRO FORTH is a concatenative programming language with roots in Forth. Designed to be compact, learnable, and easy to adapt to specific needs, it has been developed and refined through continual use by a small community over more than a decade.

Forth is a stack based programming language created in the late 1960's by Chuck Moore. Over the intervening decades it has evolved through use, with many dialects along the way.

The Retro dialect was created in the late 1990's, and has been continually developed and supported for over 15 years. It is a structured, imperative stack-based language with modern facilities including quotations and reflection.

It features:

- latest version of the RETRO language
- a code editor using Markdown subset
- literate programming style
- code is extracted from fenced blocks in Markdown source allowing easy mixing of code and commentary
- allows use of unicode & emoji in source & commentary
- interactive listener interface for quick interactions
- simple console output and text input
- editor provides quick access to numbers and symbols
- support for fetching textual data from Gopher servers
- file manager
- documentation browser

It also includes documentation and several optional examples.

## Key features

- Concatenative programming language
- Code editor with Markdown subset
- Literate programming style
- Interactive listener interface
- Gopher server data fetching
- File manager
- Documentation browser

## Recent user reviews (3 of 3)

All indexed reviews: https://appshunter.io/ios/app/retro-forth/id1170943580/reviews.md

### 3/5 — Precipitous learning curve

*2020-12-01*

Hi Charles,
There are a few things that would help someone new to Retro, but not to FORTH, and I would like to suggest them, in the hopes that they could make Retro Forth a little more attractive to, say, Fathers who are beginning to teach their 9-year-olds about programming, and who themselves have lots of experience.

First and foremost is the documentation. 
If the Documentation reader were to retain where the user was when they switch to the split to try the given examples, it would reduce frustration immensely.
Because we’re new to Retro, if not to Forth, an early (very early) Link to a list of the differences between, say, an ANSI Forth (and yes, I know that no ANSI standard has been released) and Retro would be a tremendous help.
A quick description of the tabs, what they do and how you use them is in order, extremely early in the documentation. 
I will admit that, having spent decades with the Forth83 interface, having an immediate mode that operates like a terminal is very helpful. The split allows one to see documentation and output at the same time, which is cool, but each entry disappears at the first space, and frankly, with no view of any part of the stack, it’s hard to tell that anything is happening at all. 
While the prefixing idea certainly has merit (and your community have adopted it without great insurrections) there should be some means of discerning which prefixes have been added to which words. While it is pretty easy to decide that a function you are creating belongs among the ones that fetch a value or store it, some of the others aren’t so obvious from the other side. Should eq? Be system, math, text, comparisons, or yet some other subset of the dictionary? What did the programmer who assigned it think like... except we don’t know the programmer personally, and apparently we don’t know all the prefixes used in the basic Retro system. 
Any of these conveniences can be given a visibility/actuation button to turn them on and off, so that, with all turned off, the program looks exactly as it does now, which is no doubt pleasing to the community of Retro users. 

Words tab: 
Pursuant to the problem of figuring out what the system-creator prefixed words with, or just finding the little buggers in the first place, there needs to be some kind of lookup. If it recognized subsets of words and made a list, it would become useful. Like the documentation, it _ought_ to be able to keep your place, and it might keep your last search, but currently, switching tabs returns the Words tab to the beginning.

Vocabulary words:
I spent some considerable time, back in the early 90s, arguing for inclusion of decompiling words and documentation words in the Standard: View, See, etc. You can limit those that decompile from the living code to keep them from decompiling _your_ code, pretty easily, but being able to see the code _we_ write is a must. Even Words, as much of a spew as it is, can be invaluable in the first contact with a new Forth, and frankly, as age settles in, is pretty valuable thereafter. 

Those are my reflections on my first hour of experience. I have no doubt that, with enough weeks of reading the documentation and drawing charts and writing code on paper so I can test them immediate, that I will be up to speed with the rest of the community, but those necessities are counter to the principles that Charles Moore established as his reasons for creating FORTH in the first place. Not to mention that no 9-year-old is going to read the documentation for longer than about 2 minutes.

### 3/5 — Needs portrait orientation

*2019-06-03*

This isn't the developer's fault, but the iPhone keyboard is effectively unusable in landscape orientation—and that means an app that requires significant typing, but doesn't support portrait orientation, is unusable too. It's a shame because the language seems attractive, but I just can't cope with it like this.

### 4/5 — Looks good

*2018-02-16*

Be nice if pressing return did an ‘eval’ instead of having to press that button everytime.

## Frequently asked questions about RETRO FORTH

### What is RETRO FORTH?

RETRO FORTH is a concatenative programming language based on the Forth language. It is designed to be compact, learnable, and adaptable, with modern features like quotations and reflection.

### What are the key features of RETRO FORTH?

Key features include a code editor supporting a Markdown subset, a literate programming style, an interactive listener, support for fetching data from Gopher servers, a file manager, and a documentation browser.

### Is RETRO FORTH free to use?

Yes, RETRO FORTH is available for free. It does not have any in-app purchases or advertisements.

### What devices does RETRO FORTH support?

RETRO FORTH is supported on iPhone, iPad, and iPod devices.

### How often is RETRO FORTH updated?

The latest version, 2021.1, was released on February 7, 2021. The app was initially released on November 8, 2016.

### What is the age rating for RETRO FORTH?

RETRO FORTH has an age rating of 4+, making it suitable for a wide range of users.

### Can I use Unicode and emoji in RETRO FORTH?

Yes, RETRO FORTH allows the use of Unicode characters and emoji in both source code and commentary.

### What is the user sentiment for RETRO FORTH?

RETRO FORTH has a positive user sentiment, with an average rating of 4.4 stars from 5 ratings.

## Version history (last 5 releases)

### 2021.1 — 2021-02-07

Updated to the latest image and documentation. This also brings some small bug fixes and corrections need removes deprecated functions from the language.

### 2020.1 — 2020-02-10

Updated to the latest RETRO system and documentation. I've also made some more updates to the UI, adding a light mode and fixed numerous bugs.

### 2019.8 — 2019-08-11

It's been a long time coming, but a new update is here.

This update brings a new interface that improves usability on iPhone and overall readability. It also brings in a new settings screen, allowing selection of the icon to better fit your preferences.

Beyond this, nearly every aspect of the underlying system has been updated. Of note, the runtime is now completely rewritten and is faster and more stable than before. Optimizations have been made to the gopher support. The system is also now running the latest image which adds numerous improvements to the language, removes deprecated functions, and has a number of performance enhancements.

The documentation is improved as well. The manual is now nicely formatted, and is significantly expanded, with more examples and deeper explanations of the functions and their usage. The glossary browser is also updated with the latest words.

### 2018.8 — 2018-08-01

This release brings many changes and improvements to the language and editor.

Interface:

- darker colors, better text contrast
- file manager improvements:
   - files now sorted alphabetically
   - support for renaming files
- now uses only ~~~ for code blocks

Core Language Improvements

- renamed functions for better consistency with the namespaces
   - puts  =>  s:put
   - putc  =>  c:put
   - putn  =>  n:put
   - putf  =>  f:put
   - words  =>  d:words
   - s:with-format  =>  s:format
- removed tors as it was unused
- new words:
   - d:words-with
   - set:make
   - { and }

Other Improvements

- file:slurp now matches the documentation
- removed ui:get-input (proved too buggy)
- new floating point words
   - f:NAN
   - f:INF
   - f:-INF
   - f:nan?
   - f:inf?
   - f:-inf?
   - f:sqrt
   - f:round
   - f:square
- new file words:
   - file:open[for-reading]
   - file:open[for-append]
   - file:open[for-writing]

### 2018.4.23 — 2018-04-23

A minor update to followup on 2018.4:

- Replace the `editor` namespace with `config`
- Add new options to control font, sizing in the editor, output, and toolbars separately

See the "User Interface" document for some notes & examples on using these.

This also contains an updated Glossary, fixing a couple of small typos and adding the new words.

I've also removed the buggy "highlight code blocks" option as it was causing some instability.

Previously:

It's been a while... so here's what's new:

- rewrote `s:eq?`, leading to significant performance improvements
- added `times[with-index]` and `I`, `J`, `K` for loop indexes
- faster code generation
- reduced size of the standard library by about 1/2KiB by some clever reordering of code
- updated the documentation
- added some words in the new `editor` namespace to allow changing fonts, sizing. See the "User Interface" documentation for more details and some examples.
- updated the examples
- some general stability improvements thanks to expanded error checks

## Apps similar to RETRO FORTH

| App | Rating | Price | Category |
| --- | --- | --- | --- |
| [Terminal & SSH](https://appshunter.io/ios/app/terminal-and-ssh/id1558156247) | 4.3 (105) | Free | Developer Tools |
| [Chikii - SSH Server Toolbox](https://appshunter.io/ios/app/chikii-ssh-server-toolbox/id1609781496) | 3.1 (256) | Free | Developer Tools |
| [Adaptivity (A)](https://appshunter.io/ios/app/adaptivity-a/id1054670022) | 5.0 (92) | $7.99 | Developer Tools |
| [MySQL Client by SQLPro](https://appshunter.io/ios/app/mysql-client-by-sqlpro/id1270754173) | 3.9 (96) | Free | Developer Tools |
| [Smart NFC](https://appshunter.io/ios/app/smart-nfc/id1470146079) | 4.5 (92) | $1.99 | Developer Tools |
| [Store Redirect](https://appshunter.io/ios/app/store-redirect/id1601434613) | 4.3 (196) | Free | Developer Tools |

## More apps by Charles Childers

- [Bedside Clock - Digital/Analog](https://appshunter.io/ios/app/bedside-clock-digitalanalog/id900749633)
- [Tip Tabulator & Bill Splitter](https://appshunter.io/ios/app/tip-tabulator-and-bill-splitter/id914270184)
- [Paipera - Bible Reader (KJV)](https://appshunter.io/ios/app/paipera-bible-reader-kjv/id951477152)
- [Gopher Client](https://appshunter.io/ios/app/gopher-client/id1235310088)

All apps by Charles Childers: https://appshunter.io/developer/900749636

## Related topics

[forth](https://appshunter.io/ios/topics/forth)

---

*Data collected daily from the US App Store and indexed by [AppsHunter](https://appshunter.io/). User reviews are verbatim App Store reviews. Ratings, prices and chart positions refresh continuously; this snapshot is from 2026-09-06.*
