2 How Gont compares to...?
2.1 ML
How is Gont different from Caml or SML? (Caml and SML are functional
languages, with imperative features from ML family) Hm... generally
all languages are interchangeable, what can be written in one, can be
written in all other. However in real life it is rather important how
easy can you get the code to work, how much bugs will compiler detect
(vs bugs left for the programmer) and how fast will it run. Gont places
accents on these things somewhere between Caml and C. Generally it does
not provide as much support for functional programming as Caml does,
similar can be told about Gont's module system (which is a toy, compared
to functors and other ML machinery) and restricted polimorphism. On the
other hand, linking Gont code with C is very easy, the only thing you need
to remember, is not to put pointers from Gont, in malloc()
'ed area
-- save it on stack, or in GC_malloc()
'ed area. Interfacing OCaml
is... ghm... nightmare, mainly because of its precise garbage collector.
2.2 Popcorn
How is Gont different from Popcorn? (Popcorn is safe C subset, compiler is
available to TALx86 (Typed Assembly Language)). Popcorn was inspiration
for Gont :) However, it is somewhat limited (especially to x86) and
not currently under development (AFAIK).
2.3 Cyclone
Cyclone (http://www.cs.cornell.edu/projects/cyclone/) is language
similar to Gont in the same sense as C++ is similar to Java. It's a
dialect of C designed to be safe: free of crashes, buffer overflows,
format string attacks, and so on. Cyclone has more powerful typesystem
-- it includes regions, that allow not to use garbage collection all
the time. It also has pointers in C's sense. OTOH Gont is not dialect
of C. It does not try to be backward compatible. This results in much
smaller language, probably easier to understand at first.
2.4 C++
Gont is not compatible with C. C++ tries to be. Popcorn, Cyclone and
Java are all far more C-like then Gont is.
Gont currently does not have even the very limited amount of objective
features C++ has. This should change in future. OTOH Gont polimorphic
typesystem, with functions as first class citizens, is far more powerful
then the one that can be found in C++.
2.5 Java
Gont in intention should be equally easy/hard to understand at first,
as Java is, but be able to provide nice machinery, like patterns and
polimorphism, later.