Poster | Thread |
Nonefornow
|  |
Re: Cloanto acquire Amiga Inc Trademark Posted on 11-Feb-2019 18:55:10
| | [ #801 ] |
|
|
 |
Regular Member  |
Joined: 29-Jul-2013 Posts: 339
From: Greater Los Angeles Area | | |
|
| @Dave73
The meetings between those parties have continued, and that's a fact.
Do we know for sure that the meetings are to discuss any potential Amiga related development?
The blog only makes reference to the development of the TheC64.
|
|
Status: Offline |
|
|
broadblues
 |  |
Re: Cloanto acquire Amiga Inc Trademark Posted on 12-Feb-2019 13:30:36
| | [ #802 ] |
|
|
 |
Amiga Developer Team  |
Joined: 20-Jul-2004 Posts: 4449
From: Portsmouth England | | |
|
| @Hypex
Quote:
The main problem with BOOPSI, from a programming point of view, the way I see it, is that BOOPSI is a hack.
|
No i really isn't
Quote:
Like Dayatypes. It forces OOP concepts into a procedural programming language style, and it looks like a mess.
|
Datatypes *are* BOOPSI (so is MUI just not decended from gadgetclass) . C is just a general programming language it's quite reasonable to do object orientated prgramming in it. But BOOPSI does not depend on C at all and can be used from any program language from assembler to python, it's a message based object orientated system.
Quote:
Before I learnt about OOP I didn't know why it had this weird non sensical API. It's putting C++ ideas into a C API.
|
No it's not.
Quote:
Some macros would have helped here or using C objects with a set of function pointers embedded as the API.
|
That would have bound it to one pgramming langugae.
Quote:
But if Commodore really wanted to introduce C++ concepts they should have provided a C++ API.
|
There are many more object orientated languges than C++. C++ was in it's relative infancy when BOOPSI was invented.
Quote:
They had a chance to fix this in OS4 since they introduced OOP with interfaces,
|
Interfaces are not object orientated in any way. There is nothing object orientated about an array of function pointers. You have the sysntax of an implmentation confused with the overall paradigm.
Function pointers are neither required for OO nor do they make something OO. _________________ BroadBlues On Blues BroadBlues On Amiga Walker Broad |
|
Status: Offline |
|
|
rzookol
|  |
Re: Cloanto acquire Amiga Inc Trademark Posted on 12-Feb-2019 15:10:08
| | [ #803 ] |
|
|
 |
Regular Member  |
Joined: 4-Oct-2005 Posts: 318
From: Poland, Lublin | | |
|
| |
Status: Offline |
|
|
kolla
|  |
Re: Cloanto acquire Amiga Inc Trademark Posted on 13-Feb-2019 3:23:40
| | [ #804 ] |
|
|
 |
Elite Member  |
Joined: 20-Aug-2003 Posts: 3359
From: Trondheim, Norway | | |
|
| @rzookol
If only MorphOS was ported to 68k... ;) _________________ B5D6A1D019D5D45BCC56F4782AC220D8B3E2A6CC |
|
Status: Offline |
|
|
Hypex
 |  |
Re: Cloanto acquire Amiga Inc Trademark Posted on 13-Feb-2019 15:20:48
| | [ #805 ] |
|
|
 |
Elite Member  |
Joined: 6-May-2007 Posts: 11351
From: Greensborough, Australia | | |
|
| @broadblues
Quote:
I knew I'd get your attention. 
Quote:
Datatypes *are* BOOPSI (so is MUI just not decended from gadgetclass) . C is just a general programming language it's quite reasonable to do object orientated prgramming in it. But BOOPSI does not depend on C at all and can be used from any program language from assembler to python, it's a message based object orientated system. |
It can be used from anything if the support is there, but for a procedural language like C that AmigaOS was built on, it's unsuitable. It's taking modern concepts and putting it into an old design.
Frankly, I find what was done with BOOPSI to AmigaOS, to be rather anachronistic.
Quote:
Explain this?
Object *o = NewDTObjectA (name, attrs);
Why is it called NewDTObjectA()? I read that and I think it is creating a new datatype system object for internal use. In standard Amiga parlance such an allocation would usually be called like AllocDTObjectA(). But it is used to open a datatype file. So being called OpenDTObjectA() would make more sense. With some knowledge what it really is trying to do is something like this:
Object *DTObject;
new DTObject(name, attrs);
Quote:
That would have bound it to one pgramming langugae. |
Macros can be ported across languages. AmigaOS has lots of macros for things. And structures as well with whatever content they desire. But an embedded function still needs the structure passed to it so wouldn't be worth it.
Quote:
There are many more object orientated languges than C++. C++ was in it's relative infancy when BOOPSI was invented. |
I suppose it was. Not considered the best example of OOP. But a logical next step from C.
Quote:
Interfaces are not object orientated in any way. There is nothing object orientated about an array of function pointers. You have the sysntax of an implmentation confused with the overall paradigm. |
In ExecSG they called functions as methods. The APICALL compiler magic is in every function call in an interface. Is passes the interface as the first parameter. The interface functions as an object, with the library calls as methods. Each call is automatically passed the interface to act as the self object it came from. That is basic OOP there. And also why the call above then becomes on OS4:
Object *o = IDatatypes>NewDTObjectA (name, attrs);
Quote:
Function pointers are neither required for OO nor do they make something OO. |
No but on OS4 they are implemented as methods. Last edited by Hypex on 14-Feb-2019 at 01:26 AM. Last edited by Hypex on 14-Feb-2019 at 01:22 AM. Last edited by Hypex on 13-Feb-2019 at 03:46 PM. Last edited by Hypex on 13-Feb-2019 at 03:45 PM.
|
|
Status: Offline |
|
|
NutsAboutAmiga
|  |
Re: Cloanto acquire Amiga Inc Trademark Posted on 13-Feb-2019 16:28:50
| | [ #806 ] |
|
|
 |
Elite Member  |
Joined: 9-Jun-2004 Posts: 12960
From: Norway | | |
|
| |
Status: Offline |
|
|
Snorg
|  |
Re: Cloanto acquire Amiga Inc Trademark Posted on 14-Feb-2019 6:47:51
| | [ #807 ] |
|
|
 |
Regular Member  |
Joined: 1-Feb-2018 Posts: 117
From: Unknown | | |
|
| @NutsAboutAmiga
struct and class are identical *except* for the default member visibility: public and private, respectively.
However, having strictly a C heritage, struct connotes something different than does class, something more like a record or descriptor. On my part, I use class if I want to use data hiding and/or strictly *internal* control over the state of any instances (which is almost always more verbose but also more disciplined), otherwise I use struct. C++ 'interfaces' are structs because, as specifications, every constituent type, method, or constant is (typically) meant to be visible.
Back to regularly scheduled programming ... |
|
Status: Offline |
|
|
Snorg
|  |
Re: Cloanto acquire Amiga Inc Trademark Posted on 14-Feb-2019 7:25:43
| | [ #808 ] |
|
|
 |
Regular Member  |
Joined: 1-Feb-2018 Posts: 117
From: Unknown | | |
|
| @Hypex
While I'm here ...
When the interface paradigm of OS4 was being designed, something was lost in translation. Now, this is largely a matter of terminology, not technicality, but one does not instantiate an interface. Rather, one implements an interface with a class then instantiates a class into an object.
BOOPSI employs a runtime metadata scheme whereby a number of C macros in conjunction with the intuition library (I'm forgetting so much now) provide the functionality required to use / interpret this metadata in order to access instance data and dispatchers. Inheritance is simply the chaining of these instances together - conceptually, it is somewhat reminiscent of COM aggregation (though utterly different in implementation).
For my money, interface descriptors should be embedded into libraries (.interface) (not separate FD/SFD files) (i.e. like type libraries from which you can generate includes, etc.) Version them, sure, but they should always be backward compatible (i.e. extend them, don't break binary compatibility between versions). Implementing classes (.class) should (just-in-time) load them as dependencies in order to provide requisite run-time metadata (list of methods and method signatures). Implement / code the classes in whatever language you like. Personally, I do like C++, but I'm for choice and competition.
Something I don't like about the OS4 "IDL" library interface scheme is that is assumes you use C. The designers could have used 'pure' CORBA IDL and simply established a mapping from IDL types to language-specific constructs. I understand, however, they were trying to get things done.
Lastly, introducing compiler changes to accommodate a hidden interface ('this') pointer in C was unnecessary and has (I presume) complicated the work of those maintaining the toolchains.
Anyway, this is all reminiscing on my part now. The OS has many nice aspects, but the core is so outdated ... Last edited by Snorg on 14-Feb-2019 at 07:42 AM. Last edited by Snorg on 14-Feb-2019 at 07:38 AM.
|
|
Status: Offline |
|
|
broadblues
 |  |
Re: Cloanto acquire Amiga Inc Trademark Posted on 14-Feb-2019 12:28:10
| | [ #809 ] |
|
|
 |
Amiga Developer Team  |
Joined: 20-Jul-2004 Posts: 4449
From: Portsmouth England | | |
|
| @Hypex
Quote:
Explain this?
Object *o = NewDTObjectA (name, attrs);
Why is it called NewDTObjectA()?
|
Because it's the exact analog of Intuitions NewObject() in facr it's wrapper for that function, the wrappser does some "magic" to determine which class of object is needed from the tags provided either from the the file, (DTST_FILE) data in memory (DTST_MEM) of a specificly requested empty object of a given type (DTST_RAM).
Quote:
Frankly, I find what was done with BOOPSI to AmigaOS, to be rather anachronistic.
|
Anything that was invented 30 years ago might seam anachronistic today I suppose.
Quote:
In ExecSG they called functions as methods. The APICALL compiler magic is in every function call in an interface. Is passes the interface as the first parameter. The interface functions as an object, with the library calls as methods. Each call is automatically passed the interface to act as the self object it came from. That is basic OOP there. And also why the call above then becomes on OS4:
|
Not really no, are you trying to say that pre amigaos4 libararies are object orientated too? The functions in the jump table all get passed the library base in just such a hidden way.
There is some superficial similarity to the syntax of C++ objects so I see where you might be confused, but there is no other aspects the OO pardigm. No objects, class inheritance polymorphism etc etc. A house might have stained glass in it's windows, doesn't make it a cathedral! _________________ BroadBlues On Blues BroadBlues On Amiga Walker Broad |
|
Status: Offline |
|
|
kolla
|  |
Re: Cloanto acquire Amiga Inc Trademark Posted on 14-Feb-2019 13:00:08
| | [ #810 ] |
|
|
 |
Elite Member  |
Joined: 20-Aug-2003 Posts: 3359
From: Trondheim, Norway | | |
|
| A cathedral is any building that a bishop has defined as such.
Back to the bazaar... :) _________________ B5D6A1D019D5D45BCC56F4782AC220D8B3E2A6CC |
|
Status: Offline |
|
|
Hypex
 |  |
Re: Cloanto acquire Amiga Inc Trademark Posted on 14-Feb-2019 14:51:00
| | [ #811 ] |
|
|
 |
Elite Member  |
Joined: 6-May-2007 Posts: 11351
From: Greensborough, Australia | | |
|
| @NutsAboutAmiga
It almost sounds funny using a struct over a class. But struct was a well established classic object in C. Will take a lot before a class is considered as classic.  Last edited by Hypex on 14-Feb-2019 at 02:51 PM.
|
|
Status: Offline |
|
|
Hypex
 |  |
Re: Cloanto acquire Amiga Inc Trademark Posted on 14-Feb-2019 15:35:51
| | [ #812 ] |
|
|
 |
Elite Member  |
Joined: 6-May-2007 Posts: 11351
From: Greensborough, Australia | | |
|
| @Snorg
Quote:
When the interface paradigm of OS4 was being designed, something was lost in translation. Now, this is largely a matter of terminology, not technicality, but one does not instantiate an interface. Rather, one implements an interface with a class then instantiates a class into an object. |

Sorry couldn't resist that one. 
And in the OS4 case of an interface, one is called to get the interface, then later drop it. 
However, being it is from a library, I thought they might have called it a book. So instead of interfaces there would be libraries of functions, with libraries of books containing functions. 
OpenBook() CloseBook()
Quote:
Something I don't like about the OS4 "IDL" library interface scheme is that is assumes you use C. The designers could have used 'pure' CORBA IDL and simply established a mapping from IDL types to language-specific constructs. I understand, however, they were trying to get things done. |
Well, yes, there is a focus on C. Since there was a move from 68K/C to just C. It's possible a struct could be converted to ASM for PPC or any other language. C just has the best support. Working from the SDK.
Quote:
Lastly, introducing compiler changes to accommodate a hidden interface ('this') pointer in C was unnecessary and has (I presume) complicated the work of those maintaining the toolchains. |
It does make it more complicated to deal with since an extra resource must be opened and freed. Even when using actual resources which were always persistent. But they needed someway to replace the backwards jump table with a more portable version. |
|
Status: Offline |
|
|
Hypex
 |  |
Re: Cloanto acquire Amiga Inc Trademark Posted on 14-Feb-2019 16:20:55
| | [ #813 ] |
|
|
 |
Elite Member  |
Joined: 6-May-2007 Posts: 11351
From: Greensborough, Australia | | |
|
| @broadblues
Quote:
Because it's the exact analog of Intuitions NewObject() in facr it's wrapper for that function, the wrappser does some "magic" to determine which class of object is needed from the tags provided either from the the file, (DTST_FILE) data in memory (DTST_MEM) of a specificly requested empty object of a given type (DTST_RAM). |
That may be so, but it's still called NewObject(), so still has that fusion of a new operator and object formed into a function. In the API, any function with a "New" in the name tended to be a new replacement function over an old function. Reading the autodoc, it talks about creating an object, so it would seem more consistent and understandable to call it CreateObject().
Quote:
Anything that was invented 30 years ago might seam anachronistic today I suppose. |
Well yes it would seem. Though my focus would be on what they were doing 30 years ago, by putting modern conceps into a traditional design. They can build OOP into it however they want, but there was a language barrier. The OS outgrew the language it was built on.
Quote:
Not really no, are you trying to say that pre amigaos4 libararies are object orientated too? The functions in the jump table all get passed the library base in just such a hidden way. |
No, I'm just concentrating on OS4. In OS3 the library base was usually in A6 and not passed as usual parameter. Nor did it appear in the library call.
But "Not really no" to what in particular? The terms I've used are how the SDK describes OS4 libraries and also from include files.
Quote:
There is some superficial similarity to the syntax of C++ objects so I see where you might be confused, but there is no other aspects the OO pardigm. No objects, class inheritance polymorphism etc etc. A house might have stained glass in it's windows, doesn't make it a cathedral! |
LOL. My "confusion" comes from the fact that the interface contains what they call methods which are passed the interface as the self. Like I said, this is basic OOP, not any full or advanced OOP. A class generally has private data and public methods. Here they have an interface that keeps private data elsewhere in the library and public methods. When called they know from where, the interface acting as a basic object. They could have called them functions, for all I care. But the fact is they make references to a self and methods, thus they invoke an OOP paradigm. If there is less OOP in the interfaces than BOOPSI itself, then they shouldn't have used OOP terms to describe non OOP parts. But the evidence tells me otherwise. |
|
Status: Offline |
|
|
matthey
|  |
Re: Cloanto acquire Amiga Inc Trademark Posted on 14-Feb-2019 18:21:21
| | [ #814 ] |
|
|
 |
Elite Member  |
Joined: 14-Mar-2007 Posts: 2458
From: Kansas | | |
|
| With all this off topic Smalltalk about adding new OOP concepts to an old AmigaOS, the developer section of this forum is practically dead. Maybe a little activity over there would make it look like someone else other than Hyperion is doing Amiga development. Do the mods ever split threads which have drifted off topic around here?
|
|
Status: Offline |
|
|
number6
|  |
Re: Cloanto acquire Amiga Inc Trademark Posted on 14-Feb-2019 18:41:07
| | [ #815 ] |
|
|
 |
Elite Member  |
Joined: 25-Mar-2005 Posts: 11662
From: In the village | | |
|
| @matthey
Quote:
Do the mods ever split threads which have drifted off topic around here? |
As I have sadly had to report for years when any request for mod involvement is made, there are no mods.
There is a site admin and a sys admin. That's it.
Frankly I gave up trying to update what -was- a one topic devoted thread after seeing the off-topic thrust for so many pages. At this point anythng on-topic will merely get lost.
#6_________________ This posting, in its entirety, represents solely the perspective of the author. *Secrecy has served us so well* |
|
Status: Offline |
|
|
Lou
|  |
Re: Cloanto acquire Amiga Inc Trademark Posted on 14-Feb-2019 19:37:32
| | [ #816 ] |
|
|
 |
Elite Member  |
Joined: 2-Nov-2004 Posts: 4229
From: Rhode Island | | |
|
| @number6
Did you happen to catch the score of the game last night? |
|
Status: Offline |
|
|
broadblues
 |  |
Re: Cloanto acquire Amiga Inc Trademark Posted on 14-Feb-2019 23:14:39
| | [ #817 ] |
|
|
 |
Amiga Developer Team  |
Joined: 20-Jul-2004 Posts: 4449
From: Portsmouth England | | |
|
| @Hypex
Quote:
in the API, any function with a "New" in the name tended to be a new replacement function over an old function.
|
In which API exactly? there is excactly one function in intuition that starts with New and that is NewObject() which is a wrapper arround OM_NEW
Actually I tell a lie on second glance there is NewModifyProp() pssobly the only function in the my entire autodocs that confirms to your idea of a replacement function.
Feel free to correct me with examples...
@thread
Yeah sorry OT,
/me sticks tongue out and points at Hypex ---> he started it!
_________________ BroadBlues On Blues BroadBlues On Amiga Walker Broad |
|
Status: Offline |
|
|
mkopack73
|  |
Re: Cloanto acquire Amiga Inc Trademark Posted on 16-Feb-2019 2:57:00
| | [ #818 ] |
|
|
 |
New Member |
Joined: 15-Feb-2019 Posts: 1
From: Unknown | | |
|
| You guys do realize that the very first C++ compilers were really Preprocessors that took your C++ source and output C source and then compiled that, right?
|
|
Status: Offline |
|
|
Snorg
|  |
Re: Cloanto acquire Amiga Inc Trademark Posted on 16-Feb-2019 8:11:01
| | [ #819 ] |
|
|
 |
Regular Member  |
Joined: 1-Feb-2018 Posts: 117
From: Unknown | | |
|
| Again, since we're here,
@mkopack73
Sure, an example of which is/was SAS/C++, well known to many Amiga programmers.
Clearly, a particular syntax/grammar alone doesn't make software object-oriented, but it can support the use of OOP patterns. Heck, use assembly, for that matter. The topic has been more than exhaustively dealt with for years and years - OOP doesn't imply code quality, but it is a useful paradigm.
One does not pontificate in the forum. Rather, one points out the incongruities and runs the other way ...
;) |
|
Status: Offline |
|
|
Hypex
 |  |
Re: Cloanto acquire Amiga Inc Trademark Posted on 17-Feb-2019 16:10:35
| | [ #820 ] |
|
|
 |
Elite Member  |
Joined: 6-May-2007 Posts: 11351
From: Greensborough, Australia | | |
|
| @matthey
Quote:
With all this off topic Smalltalk about adding new OOP concepts to an old AmigaOS, the developer section of this forum is practically dead. |
I actually realised on thee page before I had gone off topic... |
|
Status: Offline |
|
|