Advertisement
Blogs
Advertisement

Go Forth!

Tue, 12/29/2009 - 12:01pm
M. Simon

M-Simon-webLevis (the jeans people) have been suggesting that people Go Forth.

http://goforth.levi.com/fortune

I'd like to make a similar suggestion. Not about jeans, but about software. Go Forth.

A dead language? Not exactly. If you know where to look. But before we do some looking let me tell you a story. I once worked for a military radio company that wanted to compete with the big boys in producing a programmable High Frequency (2MHz to 30MHz) Radio. I had a team of 6. A system architect, hardware designer, integration manager (me), two coders, a hardware technician/lab keeper/purchasing guy. And two designers/draftsmen. The people we were competing against had a team of 30. Our customer would ask for various design changes. Typically we could get everything done from hardware changes to new boards and display types (from LED to liquid crystal then back) in about a month or six weeks while the competition was still struggling with software six months later. That is an advantage of twenty to one in productivity. My secret? I was using FORTH and my competition was stuck with C.

I had a government inspector look at our code and he said it was the easiest to read of any code in any language that he had seen for several years. My secret for readable code? Ride herd on the programmers and make sure they understand the discipline required and how the naming of the functional units of the program influences the design. Get the programmers to think of how they will factor the problem.

One of the best books I have ever read on naming and factoring questions is "Thinking Forth" by Brodie. It is a good book for studying how style affects quality in all programming not just Forth.

http://www.amazon.com/gp/product/0976458705?ie=UTF8&tag=poweandcont-20&linkCode=as2&camp=1789&creative=390957&creativeASIN=0976458705

No look at Forth of FORTH would be complete without a mention of its inventor Charles Moore. You can read a recent interview here:

http://www.simple-talk.com/content/article.aspx?article=775

The interviewer makes this interesting statement:

"Space-related applications of Forth include an amazing array of applications which include use in: the Shuttle, Rosetta and Deep Impact missions as, spacecraft flight system controllers, on-board payload experiment controllers, ground support systems and hardware or software used to build or test either flight or ground systems."

You can find out how that all came about by seeing what Mr. Moore says in the interview.

Stephen Pelc has a nice introduction to Forth with links to other resources in his Dr. Dobbs article "Modern Forth":

http://www.ddj.com/embedded/210600604

Jeff Fox has this to say about Forth:

"The fact that Forth is not the most popular of languages is seen as a weakness by many, but as a strength by some. Many companies consider their use of Forth to be a trade secret, they don't want their competitors to reap the benefits of reduced development time and cost."

He has more to say here:

http://www.ultratechnology.com/4thlego.htm

and here:

http://www.ultratechnology.com/rdindex.htm

FORTHinc has a list of projects done in Forth:

http://www.forth.com/resources/appNotes/index.html

Here is what FedEX had to say about using Forth:

"The upgrade team initially was inclined to use C, but a more careful review and prototyping cycle showed that chipFORTH was a superior choice. Although the new 32-bit hardware offered much larger memory resources, FedEx realized how quickly popular real-time executives consume memory resources and restrict the functionality of the device."

So where else is Forth used? It is used in Open Firmware which is sometimes called Open Boot. What is Open Firmware?

http://en.wikipedia.org/wiki/Open_Firmware

And what does the wiki have to say about the advantages of using Forth/Open Firmware?

"Being based upon an interactive programming language, Open Firmware can be used to efficiently test and bring up new hardware. It allows drivers to be written and tested interactively. Operational video and mouse drivers are the only prerequisite for a graphical interface suitable for end-user diagnostics. Indeed, Apple shipped such a diagnostic "operating system" in many Power Macintoshes."

Mitch Bradley who had a lot to do with Open Firmware's beginnings at Sun Microsystems is now working with the One Laptop Per Child program. You can read more about it at:

http://laptop.org/en/laptop/index.shtml

This page explains where Open Firmware fits into the One Laptop Per Child Program:

http://wiki.laptop.org/go/Firmware

If you want to learn Forth the place to start is Brodie's "Starting Forth". Unfortunately it is no longer in print but it is available used at:

http://www.amazon.com/gp/product/0138430799?ie=UTF8&tag=poweandcont-20&linkCode=as2&camp=1789&creative=390957&creativeASIN=0138430799

And don't forget to have a look at the Forth Interest Group:

http://www.forth.org/

That should be more than enough to get you started.


If you need help Going Forth you can contact M. Simon by getting his e-mail address from the side bar of "IEC Fusion Technology".

http://iecfusiontech.blogspot.com/ 

Advertisement

Share this Story

X
You may login with either your assigned username or your e-mail address.
The password field is case sensitive.
Loading