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!