Re: UI/IDE committee
- Posted by _tom (admin) Dec 10, 2015
- 7584 views
Tom's rambling on choosing a GUI for Euphoria.
We need a GUI today, so IUP is the supported GUI toolkit for OpenEuphoria. If someone makes a convincing argument for a better toolkit we will adapt. What remains is documentation and examples, a slick installation method, and ultimately bundling with the Euphoria distribution. A lot of practical details remain before you get a "click and run" download of IUP; it is a bit early for a grand announcement about IUP. You can preview Iup for Euphoria at: https://bitbucket.org/ghaberek/editor/overview IUP will be a great addition to Euphoria.
GUI of the day is IUP (Interface User Portable)
- multi-platform
- wrapper by G. Haberek
- interface by Tecgraf
- looks like it has a maintainable future
- lacks documentation, examples, tutorial
- first impression: a practical way to add a GUI to a small program
- could use: more Euphoric feel
- Progress report: 70,000 words of documentation grabbed from IUP and 30 examples working.
- Iup is used with: Euphoria, Bacon, Chicken, Lua, Python, and others
Multi-platform GUI options
GTK
- great on Linux
- works on Windows, but install requires a large set of dependencies
wxWidgets
- multi-platform
- has documentation, examples, editor, designer
- should be the dominant GUI
- I am not clear about who is maintaining the wrapper
- I am not clear about an effortless installation
- could use: more Euphoric feel
- debatable: is IUP or wxWidgets "easier" to use?
Note: Can't define "Euphoric feel" but we do have opinions about it.
Survey of languages and GUI options
Class | Promoter | Language | GUI | Notes |
---|---|---|---|---|
Corporate | ||||
Microsoft | Net | Windows | all integrated | |
Apple | Swift | OS X | all integrated | |
Go | ||||
Mozilla | Rust | |||
Oracle | Java | AWT | ||
Tekgraf | Lua | IUP | ||
Academic | ||||
Python | ||||
Pascal | ||||
Lisp | ||||
Unix | ||||
C | ||||
Perl | ||||
Tk/Tcl | ||||
Independent | ||||
OpenEuphoria |
Other than Microsoft and Apple, everyone is scrambling to get a GUI working. No obvious winners here. The ideal GUI package remains elusive for everyone.
Language success needs:
- corporation or benefactor
- money
- open-source
- a nice name
- hoola-hoop factor
The Euphoria family--OpenEuphoria, Phix, Euphoria--is the only Friendly, Flexible, and Fast programming available. It's just too good to ignore.
How to get a GUI working
(1) Program OS directly.
Euphoria --> GUI
Suitable only for the determined.
(2) Use a toolkit.
Euphoria --> toolkit --> GUI
Suitable for one operating system: win32lib, tinEWG, euGTK
(3) Add an interface for multi-platform use
Euphoria --> toolkit --> interface --> GUI
Suitable for many uses: wxWidgets, IUP, euGTK
(4) Piggyback another language.
Euphoria --> toolkit --> ( language + interface ) --> GUI
Workable with a large install: AWT from Java, Net from Mono (example is JAPI wrapper Euphoria to Java)
Installations increase in size as you go from (1) to (4). Ease of distributing programs goes down as you go from (1) to (4).
Some creative thinking:
REDY
- works only on Windows so far
wxBasic
- D. Cuny integrated wxWidgets into his own language
Bach
- K. Boechert integrated IUP into a custom build of RDS2.4 Euphoria
Agar
- multi-platform and opensource
- feature is that modern graphics cards are exploited
The UI/IDE committee?
- We have failed to produce the ultimate GUI solution that other programming languages will copy from us.
- We have a supported GUI that will be useful to many Euphoria programmers.
- The committee idea resulted in a burst of progress.
- Euphoria is better than when we started.
Thanks to Greg and xecronix
_tom