amiga.org
     
iconAll times are GMT -6. The time now is 01:19 AM. | Welcome to Forum, please register to access all of our features.

» Amiga.org » Operating System Specific Discussions » Amiga OS » Amiga OS -- Development » Wouldn't it be nice if...

Amiga OS -- Development This particular forum deals with issues regarding development for all versions of AmigaOS.

Reply
 
Thread Tools Display Modes
Old 09-18-2003, 05:43 PM   #1
Karlos
Sockologist
Points: 48,752, Level: 100 Points: 48,752, Level: 100 Points: 48,752, Level: 100
Activity: 8% Activity: 8% Activity: 8%
 
Karlos's Avatar
 
Join Date: Nov 2002
Location: I solve practical problems...
Posts: 16,606
Blog Entries: 18
Default Wouldn't it be nice if...

I was thinking about something earlier today.

Imagine, if you will, a library compiled for OS4, MOS and AROS.

This library abstracts the common MUI and Reaction (ie those of comparable functionality) classes behind a common interface. In addition it abstracts the event handling and other mechanims involved behind a simple, consistent API.

A user of the libray can use its functions to open their windows, add gadgets, modify them, query them etc.

I realise this isn't going to appeal to hardcore fans on either side of the GUI divide, but think of the advantage to the common middle ground programmer who wants to write applications quickly, without having to choose one over the other (MUI in particular is not everybodies cup of tea).

So, what do you guys reckon? It's a worthwhile job for the open amiga team if you ask me :-)
__________________
OCA
This isn't SCSI... This is SATA!!!
I have CDO. It's like OCD except all the letters are in ascending order. The way they should be.
Core2 Quad Q9450 2.66GHz / X48T / 4GB DDR3 / nVidia GTX275 / Linux x64, AROS, Win64
A1XE 800MHz / 512MB / Radeon 9200 / OS4.1
A1200T BPPC 240MHz / 256MB / Permedia 2 / OS 3.1 - OS3.9, OS4
A1200T Apollo 1240 28MHz / 32MB / Mediator1200 / Voodoo 3000 / OS3.9
A1200D Apollo 1240 25MHz (ejector seat ROM edition) / 32MB
Karlos is offline   Reply With Quote
Old 09-18-2003, 06:31 PM   #2
Lo
Cult Member
Points: 7,146, Level: 55 Points: 7,146, Level: 55 Points: 7,146, Level: 55
Activity: 0% Activity: 0% Activity: 0%
 
Join Date: Mar 2002
Posts: 713
Send a message via AIM to Lo
Default Re: Wouldn't it be nice if...

Nice Avatar!
But it conflicts with your question? MOS?
Yes, It would be nice! :-)
-edit-

doesn't look like that blue butterfly is giving up soon!
:-P
__________________
[size=xx-small]GVP 060 @50 Pwr Twr [/size][size=xx-small]AMD_Amithlon_UAE[/size]
Lo is offline   Reply With Quote
Old 09-18-2003, 06:50 PM   #3
Karlos
Sockologist
Points: 48,752, Level: 100 Points: 48,752, Level: 100 Points: 48,752, Level: 100
Activity: 8% Activity: 8% Activity: 8%
 
Karlos's Avatar
 
Join Date: Nov 2002
Location: I solve practical problems...
Posts: 16,606
Blog Entries: 18
Default Re: Wouldn't it be nice if...

Quote:
Lo wrote:
Nice Avatar!
But it conflicts with your question? MOS?
Yes, It would be nice! :-)
-edit-

doesn't look like that blue butterfly is giving up soon!
:-P
Well, it's only a wee joke and supposed to represent the 'conflict' between the two camps, which is why neither side is winning or losing. Anybody who's known me for long can verify I'm not anti MorphOS or its userbase.

Back on topic, I think the above idea has merit. I am aware of technical differences between MUI and Reaction in terms of threads etc (MUI does its gadget work in the context of the applications thread, whereas Reaction does so on the input.device thread), but a good abstraction layer should be able to cope with this.
__________________
OCA
This isn't SCSI... This is SATA!!!
I have CDO. It's like OCD except all the letters are in ascending order. The way they should be.
Core2 Quad Q9450 2.66GHz / X48T / 4GB DDR3 / nVidia GTX275 / Linux x64, AROS, Win64
A1XE 800MHz / 512MB / Radeon 9200 / OS4.1
A1200T BPPC 240MHz / 256MB / Permedia 2 / OS 3.1 - OS3.9, OS4
A1200T Apollo 1240 28MHz / 32MB / Mediator1200 / Voodoo 3000 / OS3.9
A1200D Apollo 1240 25MHz (ejector seat ROM edition) / 32MB
Karlos is offline   Reply With Quote
Old 09-21-2003, 03:00 PM   #4
bloodline
Master Sock Abuser
Points: 37,161, Level: 100 Points: 37,161, Level: 100 Points: 37,161, Level: 100
Activity: 8% Activity: 8% Activity: 8%
 
bloodline's Avatar
 
Join Date: Mar 2002
Location: London, UK
Posts: 11,657
Blog Entries: 3
Default Re: Wouldn't it be nice if...

Quote:
Well, it's only a wee joke and supposed to represent the 'conflict' between the two camps, which is why neither side is winning or losing. Anybody who's known me for long can verify I'm not anti MorphOS or its userbase.
Yes your Avitar *here* is an amusing joke...

This is less so...
__________________
My iPhone Game: Puny Humans -
http://itunes.apple.com/gb/app/puny-...362230281?mt=8
bloodline is offline   Reply With Quote
Old 09-21-2003, 03:11 PM   #5
Karlos
Sockologist
Points: 48,752, Level: 100 Points: 48,752, Level: 100 Points: 48,752, Level: 100
Activity: 8% Activity: 8% Activity: 8%
 
Karlos's Avatar
 
Join Date: Nov 2002
Location: I solve practical problems...
Posts: 16,606
Blog Entries: 18
Default Re: Wouldn't it be nice if...

Are you serious?

The avatar I made here wouldn't fit. It's still just a joke dude, check the tag line there. Big deal the dude with the chaincannon won the animation allowing me to squeeze it into 5k. So am I an anti-MOS troll now then?
__________________
OCA
This isn't SCSI... This is SATA!!!
I have CDO. It's like OCD except all the letters are in ascending order. The way they should be.
Core2 Quad Q9450 2.66GHz / X48T / 4GB DDR3 / nVidia GTX275 / Linux x64, AROS, Win64
A1XE 800MHz / 512MB / Radeon 9200 / OS4.1
A1200T BPPC 240MHz / 256MB / Permedia 2 / OS 3.1 - OS3.9, OS4
A1200T Apollo 1240 28MHz / 32MB / Mediator1200 / Voodoo 3000 / OS3.9
A1200D Apollo 1240 25MHz (ejector seat ROM edition) / 32MB
Karlos is offline   Reply With Quote
Old 09-21-2003, 03:12 PM   #6
bloodline
Master Sock Abuser
Points: 37,161, Level: 100 Points: 37,161, Level: 100 Points: 37,161, Level: 100
Activity: 8% Activity: 8% Activity: 8%
 
bloodline's Avatar
 
Join Date: Mar 2002
Location: London, UK
Posts: 11,657
Blog Entries: 3
Default Re: Wouldn't it be nice if...

Quote:
Karlos wrote:
Are you serious?

The avatar I made here wouldn't fit. It's still just a joke dude, check the tag line there. Big deal the dude with the chaincannon won the animation allowing me to squeeze it into 5k. So am I an anti-MOS troll now then?
Fair point, carry on.
__________________
My iPhone Game: Puny Humans -
http://itunes.apple.com/gb/app/puny-...362230281?mt=8
bloodline is offline   Reply With Quote
Old 09-18-2003, 07:23 PM   #7
iamaboringperson
Guru Meditator
Points: 14,413, Level: 77 Points: 14,413, Level: 77 Points: 14,413, Level: 77
Activity: 0% Activity: 0% Activity: 0%
 
Join Date: Jun 2002
Posts: 5,744
Default Re: Wouldn't it be nice if...

That's what I've been talking/thinking about for a long time.

I think it's a great idea, and I honestly believe it can be done.


It would be nice to have a kind of C++ touch to it, if you know what I mean! ;-)
iamaboringperson is offline   Reply With Quote
Old 09-19-2003, 03:47 AM   #8
Karlos
Sockologist
Points: 48,752, Level: 100 Points: 48,752, Level: 100 Points: 48,752, Level: 100
Activity: 8% Activity: 8% Activity: 8%
 
Karlos's Avatar
 
Join Date: Nov 2002
Location: I solve practical problems...
Posts: 16,606
Blog Entries: 18
Default Re: Wouldn't it be nice if...

Quote:
iamaboringperson wrote:
That's what I've been talking/thinking about for a long time.

I think it's a great idea, and I honestly believe it can be done.


It would be nice to have a kind of C++ touch to it, if you know what I mean! ;-)
I getcha :-) As it goes, however, the existing amigaOS shared library thing is not an ideal candidate for a C++ system.

My take is to go for a normal shared library approach (OS4 version could use an Interface instead) and provide two headers.

Specifically there could be a opengui.h for C abd opengui.hpp for C++.

The latter could use some class wrappers and factory methods and such for people who prefer the paragdim.

More than likely, a small stub link library might be required - ideally what we need to do is to prevent the opengui header (that is the user header) from having to include any mui or reaction stuff. Only the library source should do that.

In other words, the abstraction would be total.

Abstraction techniques are kind of my thing but unfortunately MUI and Reaction are not.
__________________
OCA
This isn't SCSI... This is SATA!!!
I have CDO. It's like OCD except all the letters are in ascending order. The way they should be.
Core2 Quad Q9450 2.66GHz / X48T / 4GB DDR3 / nVidia GTX275 / Linux x64, AROS, Win64
A1XE 800MHz / 512MB / Radeon 9200 / OS4.1
A1200T BPPC 240MHz / 256MB / Permedia 2 / OS 3.1 - OS3.9, OS4
A1200T Apollo 1240 28MHz / 32MB / Mediator1200 / Voodoo 3000 / OS3.9
A1200D Apollo 1240 25MHz (ejector seat ROM edition) / 32MB
Karlos is offline   Reply With Quote
Old 09-19-2003, 03:58 AM   #9
iamaboringperson
Guru Meditator
Points: 14,413, Level: 77 Points: 14,413, Level: 77 Points: 14,413, Level: 77
Activity: 0% Activity: 0% Activity: 0%
 
Join Date: Jun 2002
Posts: 5,744
Default Re: Wouldn't it be nice if...

I'm okay with BOOPSI and Intuition(and GadTools I suppose), but I'm not so great with MUI.

I would absolutly love to see an abstraction library. It might be a set of files with one that includes them all(one ring to bind them all). :-)

I think if we were to look at the similarities between the different systems we could map out which functions can be used in common between them.

Data structures might need to be unique to this new gui thing.

I imagine compareing two string gadget(as an example) classes, and looking for similar methods etc. and then writing new functions that will in turn call either of the MUI or ReAction functions.
It might be a bit inefficient to begin with, but with faster machines in the futre it shouldn't matter too much.
iamaboringperson is offline   Reply With Quote
Old 09-19-2003, 04:18 AM   #10
Karlos
Sockologist
Points: 48,752, Level: 100 Points: 48,752, Level: 100 Points: 48,752, Level: 100
Activity: 8% Activity: 8% Activity: 8%
 
Karlos's Avatar
 
Join Date: Nov 2002
Location: I solve practical problems...
Posts: 16,606
Blog Entries: 18
Default Re: Wouldn't it be nice if...

Quote:
iamaboringperson wrote:
...
I think if we were to look at the similarities between the different systems we could map out which functions can be used in common between them.
That's the basic idea, yes. However, by designing an API 'from scratch', we can get away with matching up slightly less compatible classes from each system since we define what access level the end user has. Additionally, in each specific implementation, we can fill in the gaps to make the overall behaviour consistent.

Realistically we need to get the common buttons, menus, lists, scrollers, choosers and other gui elements under our umbrella. Support for more exotic classes (and for MUI this is quite a lot, I guess) is of lesser importance to the target audience.

Quote:
Data structures might need to be unique to this new gui thing.
Well that's an implentation detail and is probably inevitable as most abstraction layers need to track data not belonging to the layer beneath.

Such things should, wherever possible, be hidden from the end user. What most people want are simple methods for opening windows, creating gadgets, binding them and suchlike. Our handles to said gadgets can be abstract (a pointer or whatever) that is given as an argument to our functions.
A C++ version would simply use a wrapper class for this instead.

Eg C interface

OGWindow* guiWindow;

guiWindow = OGWindow_Create( ... );

if (guiWindow!=NULL && OGWindow_Open(guiWindow) == TRUE)
{
/* stuff here */
}

A C++ version could look a little different, depending on how OOP you want it to be...

OGWindow* guiWindow;

guiWindow = OGWindow::Create(..); // factory method

if (guiWindow!=0 && guiWindow->Open() == TRUE)
{
// ...
}

Both versions would offer the same abilites, just differ in how they are presented to the programmer.

Quote:
I imagine compareing two string gadget(as an example) classes, and looking for similar methods etc. and then writing new functions that will in turn call either of the MUI or ReAction functions.
It might be a bit inefficient to begin with, but with faster machines in the futre it shouldn't matter too much.
Well, the overhead is far smaller than you might think and it's usually not time critical either. How many people would notice a delay of an additional hundred clock cycles after clicking something for a forwarding function that does a little interim work?
__________________
OCA
This isn't SCSI... This is SATA!!!
I have CDO. It's like OCD except all the letters are in ascending order. The way they should be.
Core2 Quad Q9450 2.66GHz / X48T / 4GB DDR3 / nVidia GTX275 / Linux x64, AROS, Win64
A1XE 800MHz / 512MB / Radeon 9200 / OS4.1
A1200T BPPC 240MHz / 256MB / Permedia 2 / OS 3.1 - OS3.9, OS4
A1200T Apollo 1240 28MHz / 32MB / Mediator1200 / Voodoo 3000 / OS3.9
A1200D Apollo 1240 25MHz (ejector seat ROM edition) / 32MB
Karlos is offline   Reply With Quote
Old 09-19-2003, 04:27 AM   #11
bloodline
Master Sock Abuser
Points: 37,161, Level: 100 Points: 37,161, Level: 100 Points: 37,161, Level: 100
Activity: 8% Activity: 8% Activity: 8%
 
bloodline's Avatar
 
Join Date: Mar 2002
Location: London, UK
Posts: 11,657
Blog Entries: 3
Default Re: Wouldn't it be nice if...

One idea bouncing around the AROS Team right now is to build a reaction wrapper for Zune (MUI)...

Thus, one would be able to run Reaction apps in Zune (MUI) :-)

__________________
My iPhone Game: Puny Humans -
http://itunes.apple.com/gb/app/puny-...362230281?mt=8
bloodline is offline   Reply With Quote
Old 09-19-2003, 04:38 AM   #12
Kronos
Resident blue troll
Points: 13,368, Level: 75 Points: 13,368, Level: 75 Points: 13,368, Level: 75
Activity: 2% Activity: 2% Activity: 2%
 
Kronos's Avatar
 
Join Date: Feb 2002
Posts: 3,871
Default Re: Wouldn't it be nice if...

Quote:

Realistically we need to get the common buttons, menus, lists, scrollers, choosers and other gui elements under our umbrella. Support for more exotic classes (and for MUI this is quite a lot, I guess) is of lesser importance to the target audience.
Sorry, but I have to disagree here ;-)
The 3rd-party-classes are one of the biggest arguments for MUI (and sometimes the
biggest against it :-o ).

Coding a "real" MUI-app without useing those, is next to impossible, unless
you create your own classes inside your project, which would most
likely break the compabilty with your ReAction-layer.

MUI and ReAction are just to far apart for your idea to turn into reality(without
adding lots of bloat).

Better solutions:
a) use MUI/Zune which is (will be) available for all 3 plattforms.

b) write some headers that make porting between MUI and ReAction easier (but
would still result in different exes).

c) create a new GUI-lib useing only the 3.1 API (like that NewGUI,Triton, StormWizard,
BGUI .....), and make it open-source.
__________________
1. Make an announcment.
2. Wait a while.
3. Check if it can actually be done.
4. Wait for someone else to do it.
5. Start working on it while giving out hillarious progress-reports.
6. Deny that you have ever announced it
7. Blame someone else
Kronos is offline   Reply With Quote
Old 09-18-2003, 10:27 PM   #13
Matt_H
VIP / Donor
Points: 22,284, Level: 92 Points: 22,284, Level: 92 Points: 22,284, Level: 92
Activity: 36% Activity: 36% Activity: 36%
 
Matt_H's Avatar
 
Join Date: Mar 2003
Location: Boston, MA, United States
Posts: 4,989
Default Re: Wouldn't it be nice if...

I think this would be spectacular in building a bridge between the two camps.

Now if I only knew how to program...
Matt_H is offline   Reply With Quote
Old 09-18-2003, 10:29 PM   #14
iamaboringperson
Guru Meditator
Points: 14,413, Level: 77 Points: 14,413, Level: 77 Points: 14,413, Level: 77
Activity: 0% Activity: 0% Activity: 0%
 
Join Date: Jun 2002
Posts: 5,744
Default Re: Wouldn't it be nice if...

Quote:
Matt_H wrote:
I think this would be spectacular in building a bridge between the two camps.

Now if I only knew how to program...
Three camps!

And would you like me to recommend a good programming book? ;-)
iamaboringperson is offline   Reply With Quote
Old 09-18-2003, 10:40 PM   #15
Matt_H
VIP / Donor
Points: 22,284, Level: 92 Points: 22,284, Level: 92 Points: 22,284, Level: 92
Activity: 36% Activity: 36% Activity: 36%
 
Matt_H's Avatar
 
Join Date: Mar 2003
Location: Boston, MA, United States
Posts: 4,989
Default Re: Wouldn't it be nice if...

Doh! Yes, three.

*Kicks self*
Matt_H is offline   Reply With Quote
Reply

Bookmarks

Tags
nice

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Nice to see one of my.. Vlabguy1 General chat about Amiga topics 0 02-02-2007 09:31 PM
Nice car. What's it worth? Oliver CH / General 5 12-19-2006 01:32 PM
This looks nice Gav Amiga Marketplace 2 01-12-2006 12:04 PM
Nice OS4 site HopperJF General chat about Amiga topics 6 11-23-2004 11:05 AM
a nice draco paulvm Amiga Marketplace 4 07-14-2004 08:06 AM