<- ^ ->
How Gont compares to...?

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.

<- ^ ->
How Gont compares to...?