Influences

It’s a pleasure to acknowledge at least some of the amazing languages and systems that have influenced us in the creation of Ginger.

Pop11 & Poplog

The way Ginger deals with multiple values is, we think, is what most programmers will find striking about the language. This is a refinement of Pop11s ‘open stack’. This AI programming language had a huge influence on the design of Ginger - coroutines, updaters and the design of the flash compiler and autoloading all derive from Pop-11. The topic-based help is also strongly influenced by its IDE ‘Poplog’.

Java

For us, Java was a breakthrough programming language, bringing automatic storage management and all its benefits into the mainstream. Attractive features are the elegant design of classes, abstract-classes and interfaces and how they map into a file-structure that eliminates the need for an explicit build script; the fully robust run-time with no “faster but risky” features; the failed-but-worthy experiment with checked exception; and the brilliantly conceived javadoc that was instrumental to the language’s success.

Python3

The best and most extraordinary aspect of Python is its community driven evolution, which has transformed Python from an idiosyncratic scripting tool to a modern and powerful language. We share many of the values of the Python community and so, for us, Python is the benchmark against which we measure Ginger - run-time documentation, superb design of basic libraries, clever syntax, and decorators all stand-out as special.

Prolog

Prolog is a highly approachable logic programming language that we have all used extensively in our day jobs. If you haven’t tried it, I strongly recommend learning it - it’s time well spent. Ginger queries are directly based on Prolog queries. Strangely, queries were a late addition to Ginger but are now a principal feature of the language. We haven’t finished absorbing the impact of that shift and we’re likely to have to undo some of our earlier design decisions to make them more approachable.

And Many More …

Hopefully time will allow us to extend our appreciation to the many other systems, like Lisp (esp Common Lisp/CLOS and Scheme), Smalltalk, FORTH and Standard ML, that have changed the way we think about programming. But for hte moment, all we can say is a big thank you!