Dienstag, 17. September 2013

Beyond Beta with VF-Wizard

Tempus fugit, they say: time is flying away, hopefully not leaving us behind.
Three years are gone since my last blog post on visualFORTH, three years full of successful work.

What happened meanwhile?
I had other work to do. A battery operated audio project with TI's MSP430 microcontroller. I had chosen the only then available part with dual inline contacts, the MSP430F2012, and I had to program with C. I am glad I could copy paste from TI's application program examples, and I am glad that I got it working. But my desire was to use Forth again.

TI's offering of the LaunchPad boards opened a new horizon for low prized Forth controller boards.
Several things happened: there was the FRAM LaunchPad available, to make a Forth dream machine. My friend Michael ported CamelForth onto it, was quite nice, but somehow expensive. Having this porting experience, Michael ported CamelForth onto the MSP430G2553, which I meanwhile had selected for the next audio project generation. There have been dreams since a while about a small nice affordable board with a modern microcontroller unit and a compact Forth inside, and these dreams came true now.

Just before 4E4th was first promoted at the annual German Forth Chapter meeting March 2012 in Noord–Brabant, Netherlands, TI had changed the LaunchPad design to accommodate the MSP430G2553 which I had chosen for my audio project, meanwhile with 4E4th on chip. With the arrival of the second LaunchPad generation being equipped with the MSP430G2553 the door was open for our Education Initiative:

Forth for Education. This Forth we named 4E4th - Forth for Education - this was the ignition spark.

Next step: we needed a simple Terminal to correspond with 4E4th, and ended up with a complete IDE, an Integrated Development Environment. It started by developing this simple Terminal, and at the end we got everything together: Terminal, Editor, Flasher, and a lot of little helpers. To be able to do so, I was glad to have VisualFORTH, with which the 4E4th-IDE was developed in tandem - several steps of the development needed upgrading of VisualFORTH. That's why there is a gap between take 14 three years ago and take 19 today. Last year at the annual European Forth Conference, the EuroForth in Oxford, Great Britain, was a first presentation of the 4E4th-IDE.

The development of the 4E4th-IDE was under severe pressure to get it ready for the conference. The presentation showed that the 4E4th-IDE was working properly with all it's features, but it wasn't bug free, because to save time I barely had tested something. The result was that there was work for another half a year to get the 4E4th-IDE totally stable and hopefully totally bug free. Of course several other improvements have been made over this time, too.

Having just finished the 4E4th-IDE, another challenge started: traveling to an Indian Reservation to teach Programming to Native Indian kids. Logo is the first programming language taught at schools in this area here, and so my idea was to teach Logo. Logo is a good start to learn programming, because there is an immediate result shown to a typed command. Ideally to implement in Forth. And so I did. Looking at the time restriction - we had only one week and only four hours of Computing for each class that week, the idea was to use push buttons for commands to save the time needed to learn typing commands. This was a full success, the kids liked it, and the time before traveling was just enough to get the basic Logo commands done using VisualFORTH, of course. The last finishing work I could do while driving with all our equipment the two days to the camp - thanks to our chauffeur.

Then I started working on colors and other new features for 4E4th-Logo - now called IconLogo, learning more and more - until I got this short interruption of a few days to publish an upgraded VisualFORTH, to enable you to program graphics, too. Logo is a helpful tool for this, and my final goal is to get a real Integrated Development Environment - starting with Logo for beginners, microcontroller programming for the Maker Movement, and professional programming at the high end. A long way to go, but a feasible way.

This interruption came by surprise: a friend in Germany told me that he gets virus messages when downloading visualFORTH 1.14.14, but downloading Win32Forth 6.14.03 worked fine. Trying to help him to get VisualFORTH, I checked Win32Forth 6.14.04 (which is the newer version meanwhile) with my VisualFORTH files from version 1.14.14, and it worked properly for him. I had written some lines of instructions for him, and because he is an experienced microcontroller specialist he got VisualFORTH working without any batch tool or Wizard. Sure, I could have made an installation wizard with VisualFORTH long ago, but I didn't have the idea and nobody asked for it. But now it was a good choice, and I hope you like this choice.

Next steps will be: working on the partial completion of IconLogo, and then there is a real important work waiting: writing a Forth tutorial for beginners.

Montag, 14. Juni 2010

Beta Version

There have been hassles with Anti-Virus software since a while, detecting Win32Forth as virus infected. Seems to be that these companies do not like a really sophisticated programming language implementation, or what else, I don't know.

It has been reported that this is not the case with the new Win32Forth version 6.14.

Therefore I decided to recompile visualFORTH with Win32Forth version 6.14, to give more people the possibility to use visualFORTH. Another reason for this step was to overcome the restriction that visualFORTH can only be used with Windows XP.

A lot of internal functions of Win32Forth have been changed or renewed to make version 6.14 now Win32Forth: a 32 Bit Forth for Windows 95/98/ME/NT4/W2K/XP/VISTA and WIN7 - and there is hope that visualFORTH version 1.14.14, released today, will not only run on Windows XP, but on VISTA and WIN7, too.

Up to now the visualFORTH Beta is only tested on Windows XP, and there it does very well. All previously developed programs using visualFORTH are still running under the new version. As soon as I get the message that somebody has checked visualFORTH version 1.14.14 on VISTA or WIN7, I will forward this message.

As mentioned before, a lot of internals are different between Win32Forth version 6.12 and Win32Forth version 6.14, but porting visualFORTH to the new Win32Forth version 6.14 needed less than a day, using all my experience I gained meanwhile. But I can tell you, before I started, I thought I never will get this done, it was complicated. I am writing this because I am pretty sure that this porting was really fast. And I know it could be this fast because the programming language is Forth.

I call the new visualFORTH a Beta version, because it is doing well since a long time, and to show that there is a difference between visualFORTH version 0.01.14 and visualFORTH version 1.14.14 - it is the underlying Win32Forth version, which is not compatible for everything. I had to change a lot when doing the porting. I guess I can call this "Rapid Prototyping", because it was really fast.

The new version number consists of 3 parts:

1. - Beta (before this version it was zero for the Alpha version)
14. - based on Win32Forth 6.14 (omitting the 6)
14 - fourteenth version of visualFORTH

These 14 versions are the steps I have done by adding features to visualFORTH, but visualFORTH could be used to easily develop GUI's from the start of the first version, and all programs are still running on the newest version. There was only one change long ago, when a lot of features had been added at the same time and therefore records for storing data had to be changed, but this is a long time ago now. There will be features added in the future, especially on demand - feel free to ask for a feature - but updates with new features only will be patches which shall work on both versions of visualFORTH. That means, if you have visualFORTH Alpha running on your computer, you do not have to install the Beta version now. At this time today the features on both versions are the same. If there are problems, please let me know.

One remarkable milestone was the OneClickTurnkeyEXE.

My goal is that programs developed with an earlier version of visualFORTH always shall run with the newest version, too. I do thoroughly check, but I need feedback when you find a problem.

Enjoy using visualFORTH!

Freitag, 29. Mai 2009


There are some Programming Languages available named "visual", but not all are showing the same visual appearance. My look at a "visualFORTH" is a graphic one - the ability to select and arrange visual parts of the Module to be made in the realm of graphic, by clicking and moving parts and points onto and on the screen area provided for the final Module, doing it this way, the graphic way, instead of providing written text with numbers to set these parts onto selected places.

Both ways are visual, as everybody can see, but I am sure that public opinion will tell us working in the realm of graphics, or let's say drawings, instead of texts, is what is seen as visual.
It looks confusing, because both doings are visual - aren't they? I will tell you the real reason why it is called visual: it is the visual Part of the program which you will see on the screen when it is started. The written - and/or may bee graphically defined, also - functions behind the form you see are invisible, working under the surface.

All the effort is done to make work easier. The visual appearance of the Program shall be designed that it is easy to work with, psychologically correct, so to speak, and the kind of programming done to build the Program should be made as easy as possible, too.

That is the reason why there are more and more programming environments to make the drawing of the Form, the visual surface of the program, as easy as possible, using the visual, the graphic, the way of drawing with clicks and moves of points and parts, and to give functions to buttons - you name it - functions, which still have to have a written form, connected to the point of usage as nearly as possible. It should be clearly seen by the programmer, if he writes a function, it should be directly connected to the area, which is used to click upon to execute this function. This is kind of a must. The nearer, the better, and every time you check this designed area, this button, you should be able to check the function belonging to it, at least as long as the Form you are working on is under construction.

And making this part easy, the written instructions should as well be as easy to be done as possible. That's the reason why we use Forth as programming language. As you might know, Forth is the only programming language developed by a computer user, and is made to get the computer to work as easy as possible, with a minimum of effort, which results in high productivity.

Forth is an unusual computer language that has probably been applied to more varied projects than any other. It is the obvious choice when the project is exceptionally demanding in terms of completion schedule, speed of execution, compactness of code, or any combination of the above.

It has also been called “...one of the best-kept secrets in the computing world.”
This is no exaggeration: large corporations have purchased professional Forth development systems from vendors such as Laboratory Microsystems, Inc., Forth, Inc. or MicroProcessor Engineering, Ltd. and sworn them to secrecy. Some speculate (unkindly) that corporate giants prefer to hide their shame at using Forth; but I believe they are actually concealing a secret weapon from their rivals. Whenever Forth has competed directly with a more conventional language like C it has won hands down, producing smaller, faster, more reliable code in far less time. I have searched for examples with the opposite outcome but have been unable to find a single instance.

The above last two paragraphs are a quotation of Julian van Noble's (Professor Emeritus of Physics, University of Virginia) "Beginner's Guide to Forth".

Donnerstag, 28. Mai 2009

There we go!

The Conference is two month behind us now, and meanwhile some improvements have been done. We decided to stay put with an Alpha-Version, at this time now it is Version 0.01.07, and a publication will soon follow. Some time after this publication we will switch over to a Beta-Version, when we are sure visualFORTH works at several places.

Working with visualFORTH is amazing. It is a pleasure to build the forms, put in the function-code, run the form for test and get an EXE with a click on a Button within seconds. I do not like to exaggerate, but for me as a software developer it is really amazing. Other people may not see it this way, but the thing is, with visualFORTH the power of Forth is unleashed. Gives a totally new dimension to it.

There is a lot of high quality software written in Forth all over the Internet, and the plan is to adopt this software peace by peace to make it usable for a "normal" consumer. Forth is an easy to learn Programming Language, Kids are able to learn it within hours, and up to now it is a top secret at a lot of high end companies.

Forth has an immense power of productivity, and with visualFORTH it is possible to extend this productivity even further.

So far for today, picking up the thread again and reporting on visualFORTH's progress over time.

As soon as the Manual is ready, it will be posted on http://www.visualFORTH.com - look there for opportunities to test visualFORTH by yourself!

Freitag, 27. März 2009


Today was the Conference I mentioned earlier. Today I got a new webcam and some more light to get a better picture. I was just at the High-Speed-Internet place when Skype started to ring and they asked for me. I got my webcam connected and we could see each other, much better than yesterday. The people on the other side of the world used a faster computer today. Everything was fine, the Workshop was scheduled to start a quarter of an hour later, and so we decided to hang up and call again.

The time in between I used to adjust my webcam, to have the right angle and direction, adjusted all the color parameters, and at the end I thought I make a joke and put my picture inside a TV frame as I found on specials.

Then we tried to get a connection again, it was not possible to convince Skype to get a picture from my webcam. The possibility to do a video setup was gone, instead of the setup there was a link to the skype shop to buy a camera. I was happy that the audio channel worked, so we had an audio conference, for which I would not have needed all the effort to get skype installed (needs more than an hour on dial-in) and got a webcam ordered. No help, no hints, nobody did know. All video stuff had disappeared. Tomorrow I will deinstall Skype.

In my opinion Skype has a great technology, it is fabulous what they did to make audio- and video-connection work over the Internet. The audio quality is much, much better then normal telephone landline connections are, sometimes it sounds like HIFI even, and the video is good, too, much better than I expected - as long as it did work. Does not work any more. Niente.

Nevertheless, the work shop was some kind of a success. I was asked how I did it, so I had to praise the team of programmers who wrote Win32FORTH and the special person who wrote ForthForm, they really did a great job. In a few weeks, I heard, they will release version 6.13 which will work fine with Windows-Vista.

Yes, praise to these guys, they wrote beautiful readable code, remember, Forth-Code is readable and understandable, even with a minimum of commenting, if it is done properly. This is part of the Forth Programming Language, contrary to other programming languages, where the same commands are written again and again and again, and you need a lot of comments, to find out what the program was intended to do. Of course you can see there are inputs, outputs, loops and subroutines, as you can see in Forth, too, but what these constructs are really doing, to know this you need a lot of comments.

Using Forth, you can write it in a way that it comments itself. Per example, if you need a program, which opens a door, in Forth you can write: Open door, and it will work, if Door and open are defined properly. Where else can you find such an easy and convincing style?

Yes, here my answer to the question how I did it. I wrote a lot about it in this blog, but the main thing (I was newbee to the Forth Source) was using the IDE, which is part of the Win32Forth environment, searching for the text on a button or a menu, and then searching down to the modules which did the special work I looked for (This kind of search is much harder to do in any other programming language).

Then I inserted my additional code for the features I liked to have, and in most cases it worked immediately, because I really carefully looked how things worked, you can say I cloned existing modules and gave some other functionality to them.

This can be done in Forth very well. I know very well with other programming languages you need a real highly skilled programmer to achieve this. I am not a really high skilled programmer. I know what a loop is and what if else then means, and meanwhile I am patient, and I am very careful. Which other programming language allows you to insert code without side-effects? As long as I upgraded the Forth only part, everything did run on first try, only if there have been direct connections to Windows involved, I had to do some debugging, because I am not a Windows programmer (remember, this is not an application program, it is programming a tool, like part of the operating system), and as long as it was inside Forth only, I did fine with the build in Forth debugger which has a lot of features.

I could not debug Windows routines, of course, because the Windows code is top secret and undisclosed to me.

Last year December we did communicate to present the visualFORTH Alpha-Version at this conference today, it gave me the drive to do my best to have a good result, and I delivered just in time - you can read this in my recent blog pages. I did not work through nights as I did in former times (more than ten years ago), I had my decent daily routine, and still, I made it to meet our schedule.

Now I will take a rest.
There are things to do: write the Installation Manual, write the Instruction Manual, and some kind of a Tutorial. There are more than 250 links for "Forth Tutorial" on Yahoo and 350 on Google. I will look for some really good ones and will have recommendations. And the next step: The visualFORTH Beta-Version.

Take care and have a good weekend!

Donnerstag, 26. März 2009


Today we prepared the Conference, which is planned to have a workshop about visualFORTH, the organizers on the other side of the Atlantic, and me myself here.

The idea was to have a Conference-Call-Video-Connection tomorrow, using Skype.
This would it make possible for me to attend the Conference, and it would be possible for the attending listeners to ask questions directly.

There have been a lot of obstacles, the hardest one was to find a place in this rural area here with High Speed Internet-Connection. I was lucky to find a friend in the Computer Business who granted me to use his equipment. I ordered some Web-Cams, today the parcel arrived, and the first test could be made. After some normal problems to find out how works what we got a connection, first by audio, then by video.

It was amazing. I do not know if it was because I did see friends again after fifteen years and whom I now am sure I missed, even if it did not come to my consciousness, or because it was because of suddenly adapting a new technology I did not believe it really works.

I guess it was the first - or the second, partly, too? May be it was both. I am an Engineer used to look at things from a scientific emotionless point of view, but remember the time when the first affordable wireless phones came up, I was responsible for a project and had to be accessible all the time. I did not buy one of theses sneaky little cell phones * with everything inside to put it on the ear, but I bought a box with a real handset and a shoulder-strap, because I did not like to put the microwave onto my head to microwave my brain.
This was the first time I had this kind of emotional experience. Somehow I was proud to carry around this box so that everybody could see it (later I hided it in a briefcase, because meanwhile I was ashamed of myself), see how important I am (nowadays the bluetooth ear clips have this function).

It was great, it was fun, it was emotion to test this teleconferencing thing. I exceptional enjoyed it! I nearly could not let it go. But I had to. Midnight was approaching at the other end of the world, people got tired, and suddenly I remembered I had another appointment tonight I promised to be back for early enough.

A little, but important work I did before this test, waiting for the UPS-delivery. I made screenshots for a documentation which shall help to use the Installation-Batch I did yesterday.
Tomorrow I will put it together into a PDF, and next week, I hope, I have time to write the text documentation. I am really anxiously looking forward to our Workshop-Video-Conference on Friday.

*) By the way, seven years later in Luxembourg I worked for the son of the inventor of the cell phone!

Mittwoch, 25. März 2009


I am very happy about having finished the visualFORTH-Alpha-Version.

It took a lot of pressure from me, because I met the "shipping date", even some days earlier.
And I got an application done to demonstrate some special features of my visualFORTH.

Today's goal was the packaging. For ease of distribution everything has to be packed together - I hate installation procedures which tell you to put different things on different places.
I do not have the sources to manufacture an self-unpacking EXE, but I like to make it as easy as possible.

Since a lot of users already have their Win32Forth loaded from Sourceforge.net only a feature-patch is needed, and the simplest way to do this is to build a patch.bat and put it together with all feature folders into a zip-file named "program files".

This is the trick:
Downloading this zip-file into the root-directory C will with unzipping copy the batch-file and the feature-folders into the folder "Program Files", then select "Program Files, click on the batch file, and the "patchwork" is done by itself. I was really proud finding this out today. Microsoft did a great job making this possible.