After using ATS in teaching for a few years, I noted that it could be
really difficult for a programmer (especially a beginner) to try to do
everything in ATS safely. The learning curve for doing so would be too
steep for most programmers.
In my book on introduction to programming in ATS, there is a greatly
expanded chapter on interaction with C in ATS:
http://www.ats-lang.org/DOCUMENT/INT2PROGINATS/HTML/c1966.html
(The name of the link may be updated)
Once a programmer is able to do unsafe C-style programming in ATS, he or
she can start using ATS for real (instead of getting stopped by the
typechecker all the time). This will probably make the learning curve for
ATS not so steep anymore as one gets a chance to gradually replace unsafe
features with safe ones.
I have very high respect for the C programming language. However, the
problem with C is that it is very difficult to write correct C programs. To
a large extent, the development of ATS is driven by my own desire to become
a strong C programmer.
Cheers!
–Hongwei