I dont care about GUIs, whether one is present or absent
makes no difference to me, what matters is what the
actual prog does.
I have 3 very useful progs:
1. gcc
No GUI, probably *the* most useful prog in the universe,
I dont like it but its very useful, without it there would
be no OS4 for instance.
because it has no GUI it is very very portable,
in fact it is the most portable prog in the universe,
so portable it can even port itself!
Name me one other prog that can do that?
You can port unix, Linux, OS4 with it, not bad for a GUI free prog.
2. make,
this is a unix prog, vital for ports, no GUI, good!
without it its a p.i.t.a to port things though some people
have managed without it.
3. Memacs:
very good text editor, the unix version of this is even better
gnu-emacs: even has a built in language emacs-lisp, so you can
write customised clever functions.
The Amiga version has a menu, but I find keyboard short cuts
much faster:
search and replace? ESC-q
search ? control-s
insert file ? control-x control-i
and so on. By the time you have located the menu command I could have done
5 keyboard commands.
The only GUI thing I miss on Memacs is an input-file-requester, I've heard
there is an Amiga port of gnu-emacs that has this and that it was done
with asl.library.
What I really cant stand are progs that have wonderful GUI's and
do sod all.
nice GUI shame about the features!
I would rather have nice features but shame about the GUI.
If I were to use GUIs myself I think I would write my own one,
that way I would ensure portability. If you use an external one
then the problem is that 5 years down the line everyone will
have abandoned that path, and you will be stuck with complicated
+ interesting + unusable source code.
People complain about progs that use their own GUI,
I say smart move! Your prog will port everywhere.
People keep sobbing for standardisation of interface,
I have no sympathy for you!:
the "standardised approach" of today is in a rubbish dump tomorrow.
I remember once writing some shareware prog, and someone
criticised my docs saying they should be more standardised,
they should be in amigaguide. Well amigaguide wonderful though it is
never took off.
OS2.0 with its gray wb was someones bright idea of standardisation,
standardisation is so mind numbingly boring. Please dont ask for this,
who is going to standardise, what qualifies them to do it,
please dont even think about it. Standardise the OS by all means
but not the interface.
One cross platform portable GUI mechanism that exists is HTML,
eg this website, perhaps people who want a portable GUI should
use that? not sure how you would incorporate it into a prog,
maybe create a browser-compiler: input html output binary code??
:do this by customising an existing browser.
Regarding 8 bit planes, bit planes in general were a bad concept
they are slow to read, slow to write and probably slow from a
h/w POV: the video hardware has to read from eg 8 different
locations (1 for each bitplane) so its inefficient eg from a
memory caching POV. So all round bitplanes were stupid.
However if you have an AGA only machine like mine then thats the
only option.
Its a good idea though to try to create your own
abstraction layer and work through that.
Byte per pixel, or byte per component is a much better approach
in every way. Byte per pixel eg for grayscale has the advantage
of tripling the data rate eg frame rate. Its also 3 times as fast
to render + read, problem is its in gray.
:I think using any OS directly is a dangerous move.
One day even Windows will be in a glass case in a museum:
Bill Gates must one day retire, without him MS will disintegrate!
Windows==Bill Gates, its like Virgin==Richard Branson.
When these bosses retire their companies will disintegrate.
Alongside Windows in the museum will be Linux in another case,
the caption will read "early man OS's".
Windows is also based on deliberate impermanence, they deliberately
keep moving the goalposts to force everyone to keep buying.
Its best to put a private abstraction layer between your prog and the
external OS:
prog ---- OS-abstraction ----- actual OS
That way to port your progs reduces to porting the abstraction layer.
So regarding GUI's you just need your own private GUI abstraction.
You dont actually need to abstract the GUI, but just abstract the
function of the GUI.
eg the abstraction of an input-string-gadget in C might even be
char *input_string(void) ;
or something.
Remember the GUI should be 1% of your prog, 99% of a prog should be
actually doing things: non visible, lots of data movement + processing.
For many progs a GUI is purely there to input data:
this data may be boolean (click on gadget),
string (eg file name), or number (eg no. of iterations),
its not a big deal.
Obviously GUIs are more central for graphics progs where the prog has to
track the mouse, but there are so many progs other than art progs.
BTW what exactly is the prog you want the GUI for?
then we can have some "context" for discussing the GUI problem.
whoosh777