I would be interested in knowing how you get on with E.
I had considered E and studied the tutorials some years back but decided to focus my energies elsewhere.
Well, I'm not entirely new to programming since I have made quite a few Shell and Gui4Cli scripts over the years, so I guess this helps a bit (I recognize While/EndWhile loops whenever I see them for example). But this type of programming takes a while to get used to, where the case-sensitivity of everything, and the fact that contents of variables cannot be accessed by using a "$" in front of them, are just two examples of this.
Some years ago I installed the Amiga E package since I needed to create a very small and simple executable for a project I was working on. After this was done, I intended to learn more about E programming later, but other stuff got in the way.
But recently, the need for yet another new executable appeared, so I decided to finally have a go at it again. My first project is related to the fact that I use IDer as a MultiView substitute on my OS2.1 Amigas, where it uses a text viewer as the last default option in its prefs file.
The thing is that it may not be safe to open binary files in text viewers, so I created a simple program (ASCorBIN) that checks if the given file is either ASCII or Binary, Now the last line in IDer.prefs executes a script that uses ASCorBIN for checking the file, and if it seems to be ASCII, it gets opened by the viewer. Otherwise, an error message is given.
Then I decided to go a step further and create a program that accepts a text viewer and a file as arguments, where the viewer automatically gets launched if the file seems to be ASCII. And I actually got it to work! But the problem is just that Amiga E executables doesn't seem to like being started by using "Run >NIL:" since this corrupts the EStrings in some way.
The thing is that IDer uses "Run >NIL:", so although my program works fine otherwise, it doesn't work when used in the context it was created for.
I have tried everything I can think of to get this working, but to no avail. Everything goes fine in the program when an EString is initialized for the first time, but not when others are afterwards. It doesn't help to re-use the first EString either. I don't know if normal Strings are affected by this as well, but in case they are not, maybe something like the below can be used instead of constructing the command line as an EString:
Execute('viewer "tfile"',0,stdout)
But this of course depends upon if there is a way to make it use the contents of the viewer and tfile variables instead of just the names.
As for what I think about Amiga E so far, I will take the positive first:
1. I find it much easier to understand the concepts of this programming language when compared to other similar ones.
2. It comes with comprehensive documentation and lots of example sourcecode.
3. I really like the compiler because of the info it provides when there's something wrong in the sourcecode.
Now over to the negative:
1. I find the fact that Amiga E executables cannot safely be started by using "Run >NIL:" to be VERY limiting.
2. There doesn't seem to be a way of expressing a character by using its ASCII decimal value.
3. Although the included documention is comprehensive, certain functionality is only vaguely mentioned, or not mentioned at all.