...
My company, MicroProcessor Engineering Ltd. (MPE), is a vendor of Forth tools. We've been in business since 1981. Other Forth vendors include Forth Inc, Triangle Digital, and New Micros. MPE's clients make mobile phones, plan the construction of airports, make mass spectrometers, access control systems and telephone PABXs. Like all of the smaller compiler vendors, we do a great deal of consultancy work. The bulk of our sales is to professional programmers, but we do have 8051 tools including hardware at around the GBP 64 (USD 100) price point.
Commercially, C is the equivalent of English among spoken languages: it may not be the best, but it is the common language. One day English may give way to another language.
In the programming world, all languages other than C/C++ have declined in popularity with the exception of Java. Among the minority languages, Forth is doing surprisingly well. I only got into Forth because I was looking for a portable Pascal compiler. Where are Eiffel and Modula 2 now? I really liked Modula 2.
As I see it, there are three major areas for tool chains: PCs; PDAs; and deep embedded. Traditionally Forth's strength has been in deep embedded. These days, Forth compilers produce optimised native code. The older threaded implementations are obsolete except where code density is the overriding objective. Forth can be classified as an interactive and extensible language.
Where Forth scores is when you take advantage of interactive development on the target. At the end of 2002, MPE was involved in a bomb disposal machine project. The real problems were in the mechanics and drives. Interactive experiments wth the system gave us numbers about the world we were controlling. Yes, those experiments could have been obtained using C, but it would have taken very much longer.
For similar reasons, I find it much easier to explore the Windows API from Forth than from C.
During the Europay Open Terminal Architecture project, an OTA payment terminal program written in Forth was rewritten in C. The target was an 8051. The Forth system occupied
32k bytes total including all O/S and hardware drivers. The Keil 8051 C compiler exceeded 64k before all files were linked. The C programmer was an excellent programmer and had access to the Forth sources.Our PowerNet TCP/IP stack with multi-threaded Telnet and web servers (with CGI and ASP) on most CPUs fits into 112kb including all the hardware drivers.
When you take advantage of Forth's interaction and extensibility, you have a system that produces compact and fast code. The proliferation of scripting languages for desktop PCs shows that there are things that C does not do well. Forth is one of those languages that is much better than C in some areas. One size does not fit all.
Stephen
-- Stephen Pelc, snipped-for-privacy@INVALID.mpeltd.demon.co.uk MicroProcessor Engineering Ltd - More Real, Less Time
133 Hill Lane, Southampton SO15 5AF, England tel: +44 (0)23 8063 1441, fax: +44 (0)23 8033 9691 web: