A lot of questions! Quote:
I wonder why not C is used.
Mainly because E supports OOP & exceptions, but C does not (and C++ does). IIRC PortablE generates pure C code apart from those two features missing from C... and I do still hope to eventually 'emulate' those in C so that I can scrap C++ in favour of pure C. (Would result in smaller executables, and be even more 'portable'.)Quote:
How well is E made for making "full" programs?
Fine I would say. You can choose to directly access OS functions, as well as to use it's portable & easy-to-use "std" modules that I've added.
By "E" I shall assume you mean "PortablE" (rather than the old "AmigaE" or similar), but note that "PortablE" adds a *lot* of modules (includes) that the original "AmigaE" doesn't have, in the name of ease-of-use & better portability. Those modules are mostly under the "std" path, and can be found in the Standard Functionality document (also available online). You can also access OS functions directly.Quote:
And which "large" programs are made with E?
I have personally used PortablE to write the following programs:
* RunInUAE (patches OS4 to achieve some nice functionality, but beware patching OS functions on other Amiga-like OSes might be much more difficult due to subtle differences in how they handle parameters).
* AmiSystemRestore (also OS4 only due to patching the OS, gives similar functionality to Window's System Restore).
* eGame (shareware program available for MOS & AROS, as well as OS4).
* RunInDOSBox (free little utility, available for MOS & AROS too IIRC, and works well with eGame).
* Stacker (a simple but pretty nice example included with PortablE, monitor tasks, works on MOS, AROS & OS4).
* Picture Album (not quite finished but works nicely on AROS & OS4, but a tricky bug prevents working properly on MOS at the moment).
* FolderSync2 (a powerful Shell-only "syncing" utility, runs on all supported targets including Windows).
* and more!
MrDarek has used it to write a lot of games (mostly only compiled & tested for OS4, but a few for AROS too, and source code was released for many of them):
Apart from that, in the past AmigaE was used to write quite a few big applications for the Amiga. Andreas_Wolf mentioned some. I *believe* ImageStudio & DrawStudio were written in E. I *think* that at least some of Onyxsoft's programs have been written in some version of E. And probably quite a few more by other people! (AmigaE was *very* popular up until the original author stopped developing it around 1994 or so.)Quote:
Is it a lot slower than a C program?
The compiled executables should be similar speed, in general. Compilation itself will obviously take a bit longer, since it translates from E to C++ before compiling the C++ code.Quote:
And can every function of the OS be used or is E limited to some things?
By "OS" I shall assume you mean MorphOS... Not everything is available, but most of the OS3 functions. I've not added MorphOS-specific functions, except for Cybergraphx. (AROS is more complete, OS4 mostly has full access, and Windows has almost no access.)
I'm sure I could add missing stuff, if there was interest. Mainly I have focused on what I needed to get my portable graphics & sound modules to work.
Probably the biggest omission is networking, mainly because I hadn't done any networking programs up till 1 year ago. Currently I've only ported the common networking stuff for OS4, but now that's been tested as working well (and I've build a useful module & a big-ish working program on top of that), I hope to find the time to add similar networking support for MOS/AROS/OS3 (probably they can all share the same module code). Beware that it's not a simple task, as networking has a LOT of modules, so I cannot promise when this might be done.Quote:
The demo sources of the programs on the website are shorter than C programs, I think. But not so well structured and readable.
I'm not sure how they could be better structured & readable. I tried to make them as good as possible, and personally I find E more readable than C Quote:
So the main purpose is to have a modern version of E still under development?
I suppose so: My original purpose was to have a version of AmigaE that wasn't full of bug & horrible limitations (OOP was especially limiting), and also to add all the 'missing' features that I wanted. Due to my earlier experiences, I wanted to ensure I wasn't tied to any particular OS, so the aim was to make it as portable & 'future proof' as possible. More recently I've written lots of portable "std" modules that provide quite a bit of power, while being (IMHO) easy to use & potentially portable to Windows/etc.
Author of the PortablE
It is pitch black. You are likely to be eaten by a grue...