Forth Philosophy 1998Glen B. Haydon, M.D.
Epsilon Lyra Corporation
Route 2 Box 429
La Honda, CA 94020-9726I would like to build my Forth Philosophy this year around the concept that there is strength in diversity. Over the years, Forth has evolved in many divers ways. Individuals have taken different directions and the vendors have gone their own ways. Trying to force all Forth into a single mold will distract from its potential.
Forth as an Operating System
First off, Forth was designed as an operating system. As such it improved the efficiency of the application. However, it restricted the system on which it could be used.
Even with that limitation, Chuck brought up most of his implementations on dedicated systems and directed them to specific applications including any necessary operating system.
It is interesting that again there is discussion of making Forth the operating system after having taken a turn as only one program available in other operating systems. Perhaps this idea needs closer examination.
Early Public Forth Implementations
Early on, The Forth Primer from the Kitt Peak National Observatory provided a tutorial to the implementations on a set of minicomputers.
But it was not until the fig Forth implementation was made available as the Forth Installation Manual, that the language began to spread.
Several groups were taken with the power of the language and the Forth Interest Group eventually published source code for the implementation of Forth on some 12 different platforms.
At this time the interest in Forth exploded. The monthly fig Forth meetings were well attended. Regularly 150 to 200 were present at these meetings. There were problems and individuals contributed to solutions. The openness of the source and the solutions was stimulating.
Vendor Forth Implementations
At about this time several vendors developed and marketed their Forth implementations. There were numerous discussions about the need for more implementations of the Forth kernels. Each company had a good one. It was time to forget about implementing Forth and get on with the work of Forth applications.
It is interesting that most of the Forth Vendors could not make a business on sale of their implementations alone. As far as I know they all provided custom services for specific applications. Vendors often tailor their kernels for each application.
The early conflicts in goals among Forth users stimulated a wide variety of directions. The differences were always well discussed at fig meetings and conferences. The discussions were lively and comments were at times a little on the sharp side.
The Forth Heyday
This was the time of the heyday of Forth interest. We had a Byte issue which featured Forth. We had nearly 5000 members of fig. The FORML meetings were attended by 100 or so interested Forth users. For a few years we had an annual Forth Day which ran on to two days and were attended by 1000-2000 interested people.
This review of history is designed to highlight some of the diverse events which led to a rapid growth of interest in Forth. There was something about the philosophy at the time which was positive and stimulating.
Since then, the size of the Forth Interest Group has gradually decreased. We hear less and less about Forth in the general literature. The Rochester Conferences have ended after 18 years.
It is not clear that these FORML Conferences will continue after 20 years. What happened? The Standards Team entered the picture. First with the 79 Standard, then the 83 Standard, and then over a period of years the ANS Standard was developed. At the same time, fig offered no implementations for the new Standards as they came out. This was left to the Vendors.
I see the problem to be that Forth, in contrast with other languages, was originated as a language closely related to the application and the system being used. Most programmers are not familiar with closely bound hardware and software.
A second problem was that most users wanted to use their computers for other programs too. These systems came with an operating system to manage the other programs.
Forth became just another program. True, by renaming the Forth program COMMAND.COM, the Forth program would become the operating system. However, it did not allow ready access to other programs on the same system.
Then there was demand for Forth Libraries and other tools to which programmers had become accustomed. Programmers new to Forth thought it had to look and work like other languages.
Over the years, the computer systems have become more and more complex. Memory managers have been added under the control of the existing operating system. The disk managers were needed to allocate space on the floppy and then the hard disks in ever increasing size and used for many different programs.
Forth, originating as an operating system closely linking the hardware to the program for optimal efficiency, lost out for many of the major systems on the market.
Windows Operating Systems
Next came the windows paradigm starting with the Star system at Xerox Palo Alto Park. Over years, programmers became accustomed to a windows presentation. The operating system exploded in size and complexity.
Forth became a smaller and smaller part of the common computer systems. At present, many people are working to find a niche for Forth in an ever larger and more complex world.
A Return to Diversity
In a review of the history of Forth, we see that it has been used in diverse ways. A major trend has been away from hardware and implementations. Other features have been added such as libraries. The problem with libraries is that they require a standard kernel. The advantage is that they provide the tools programmers have come to expect.
This is the direction that Forth seems to be taking as far as development is concerned. But there are many other uses of Forth being actively implemented in embedded processors. We need to be aware of these many embedded application where Forth can be a major contender for programmers.
A Development Platform
A Development Platform includes many tools. Not all of them are easily implemented in Forth. One of the major tools which most Forth Programmers ignore completely is version control. As applications get large with many programmers and changing requirements, it is necessary to maintain version control for maintaining programs in the future.
Then there is the problem of drivers for the many additions to hardware. Each controller seems to do things just a little differently. Separate modules for each new device can be used if the Development Platform allows linking in the various components.
In such an environment, Forth becomes yet another tool. In many cases Forth is an ideal tool. This seems to be a direction that some of Forth is moving.
There are a number of simple hardware systems under computer control. These systems are dedicated to the application. There is no need for all of the over head of a full Development Platform. The Forth kernel can be very small and the dialect used is of little importance. The program need not be portable.
With such Systems we are almost back to the origins of Forth.
There is a surprising number of such applications. A great diversity of Forth implementations continues to be developed.
Embedded Program Development
In many ways, it is convenient to develop the application on the system on which it is going to run. Often a simple I/O arrangement is sufficient. There is no need for anything more complicated.
On the other hand, a fully equipped Development Platform can be convenient. A simulator of the embedded system can be written. The application can be target compiled for the embedded process. The tools of program control can be invoked. The embedded system can be tethered to the Development Platform and tested.
It is a choice for the programmer of the embedded system. How much time does he want to spend to learn the power of a fully endowed Development Platform, and how much time is necessary to develop the embedded application.
The answer is in diversity. We need to get beyond the Forth "choir" to the many diverse users and encourage all of their diverse ways.
A Model Operating System
Linux is an open operating system with many participants world wide. It can be very large and is certainly complex.
Some months ago, I attended a Linux Day. Actually, it was only an evening. It was attended by about 1000 people. It reminded me of the Forth Days of years past. The enthusiasm of the participants was amazing. They must be doing something right.
In thinking about what is going on, I can see many parallels to what we went through with Forth. I can see where they may well end up with some of the same problems we have in Forth.
However, for those in need of a fully equipped Development System, Linux might just provide the framework. Forth could provide another tool on a Linux platform. But, a minimal Forth as the operating system and application may be all that is necessary. I think that Forth users are scattered over the entire spectrum.
A Forth Philosophy of Diversity
It is time to open Forth to all. There is no requirement that any program is necessarily standard.
As Steven Pepper said in World Hypothesis, "I am dogmatically undogmatic."