Index » General » Fragile ABI (page 5)

August 22, 2012
>> I think the only reason we still use COM today is that, sadly, there is no other OO standard interoperable with all languages. C++ vtables are the closest competitor; I guess their fatal flaw is that there is no standard for memory management across C++ DLLs.
>
> Even .NET with his goal of supporting multiple languages has the
> CLS as the common set of datatypes and OO concepts to support across .NET
> languages.
>
> Given that OO has so many types of possible implementations, it is hard to implement an ABI that works across multiple languages.

Sure, but .NET apps are not limited to CLS. Two different .NET languages can easily interoperate outside the rules of CLS (as long as it is still within the rules of .NET). Whereas operating beyond the limits of COM is much harder. Besides that, CLS itself is far more expansive than COM, allowing function overloading, inheritance, constructor arguments, etc.

It's unfortunate that .NET has limitations that make it hard for languages with novel features, like D, to fit in. (D could target .NET, of course, but there would be a significant cost, in terms of either performance, interoperability with other .NET code, and/or placing limitations on what D code can do.)

> Lets see how the improved COM (WinRT) turns out to be.

Sadly, WinRT is again intended to be Windows-only, so developers like me that hate lock-in will avoid it in preference for .NET (hi Mono!) and yucky old C.
August 22, 2012
On Wednesday, 22 August 2012 at 00:15:12 UTC, David Piepgrass wrote:
>> Lets see how the improved COM (WinRT) turns out to be.
>
> Sadly, WinRT is again intended to be Windows-only, so developers like me that hate lock-in will avoid it in preference for .NET (hi Mono!) and yucky old C.

Because UNIX systems are still in the stone age in terms of ABI, as they
barely changes since the 70's and no one seems to care enough to change things.

I like UNIX a lot, but got to know it, after knowing what is possible in more advanced languages, so it always dismays me that specially when dealing with most commercial UNIX it feels like being in the 70's computing age.

So that lives only Apple and Microsoft with room for real OS innovation in mainstream OS, and like any vendor they prefer to look for solutions that fit only their OS.

Mac OS x is also UNIX, but Apple has been changing it already quite a lot compared with the other vendors, hence my Apple remark.

--
Paulo


August 22, 2012
On Friday, 17 August 2012 at 13:49:22 UTC, Jacob Carlborg wrote:
> Someone has written a piece of code making it easy to use WinRT from D. I don't have the link but it should be possible to find in some of the newsgroups.

Are you referring to this:

http://lunesu.com/uploads/ModernCOMProgramminginD.pdf

?

August 22, 2012
On 2012-08-22 11:16, xenon325 wrote:
> On Friday, 17 August 2012 at 13:49:22 UTC, Jacob Carlborg wrote:
>> Someone has written a piece of code making it easy to use WinRT from
>> D. I don't have the link but it should be possible to find in some of
>> the newsgroups.
>
> Are you referring to this:
>
> http://lunesu.com/uploads/ModernCOMProgramminginD.pdf

Yes, exactly.

-- 
/Jacob Carlborg
August 22, 2012
On 2012-08-22 06:32:29 +0000, "Paulo Pinto" <pjmlp@progtools.org> said:

> On Wednesday, 22 August 2012 at 00:15:12 UTC, David Piepgrass wrote:
>>> Lets see how the improved COM (WinRT) turns out to be.
>> 
>> Sadly, WinRT is again intended to be Windows-only, so developers like me that hate lock-in will avoid it in preference for .NET (hi Mono!) and yucky old C.
> 
> Because UNIX systems are still in the stone age in terms of ABI, as they
> barely changes since the 70's and no one seems to care enough to change things.
> 
> I like UNIX a lot, but got to know it, after knowing what is possible in more advanced languages, so it always dismays me that specially when dealing with most commercial UNIX it feels like being in the 70's computing age.
> 
> So that lives only Apple and Microsoft with room for real OS innovation in mainstream OS, and like any vendor they prefer to look for solutions that fit only their OS.
> 
> Mac OS x is also UNIX, but Apple has been changing it already quite a lot compared with the other vendors, hence my Apple remark.

Actually, the difference is standardization. Microsoft's COM and Apple's Objective-C runtime are built on top of C APIs (and you can access them through C if you want, although it's a little awkward). COM implementations and Objective-C runtime implementations exist for other UNIXes too, as well as other similar things, but no one is pushing them enough for them to become a standard.

-- 
Michel Fortin
michel.fortin@michelf.ca
http://michelf.ca/

August 22, 2012
On Wednesday, 22 August 2012 at 12:56:12 UTC, Michel Fortin wrote:
> On 2012-08-22 06:32:29 +0000, "Paulo Pinto" <pjmlp@progtools.org> said:
>
>> On Wednesday, 22 August 2012 at 00:15:12 UTC, David Piepgrass wrote:
>>>> Lets see how the improved COM (WinRT) turns out to be.
>>> 
>>> Sadly, WinRT is again intended to be Windows-only, so developers like me that hate lock-in will avoid it in preference for .NET (hi Mono!) and yucky old C.
>> 
>> Because UNIX systems are still in the stone age in terms of ABI, as they
>> barely changes since the 70's and no one seems to care enough to change things.
>> 
>> I like UNIX a lot, but got to know it, after knowing what is possible in more advanced languages, so it always dismays me that specially when dealing with most commercial UNIX it feels like being in the 70's computing age.
>> 
>> So that lives only Apple and Microsoft with room for real OS innovation in mainstream OS, and like any vendor they prefer to look for solutions that fit only their OS.
>> 
>> Mac OS x is also UNIX, but Apple has been changing it already quite a lot compared with the other vendors, hence my Apple remark.
>
> Actually, the difference is standardization. Microsoft's COM and Apple's Objective-C runtime are built on top of C APIs (and you can access them through C if you want, although it's a little awkward). COM implementations and Objective-C runtime implementations exist for other UNIXes too, as well as other similar things, but no one is pushing them enough for them to become a standard.

Yes, I have to agree.

Wasn't Taligent something in that direction?

--
Paulo

August 23, 2012
On Tuesday, 21 August 2012 at 15:15:02 UTC, David Piepgrass wrote:
> Finally, it's Windows-only (although it has been reimplemented on Linux, e.g. for WINE) and modules must be registered in the Windows Registry.

Conceptually COM is just a set of ideas for interoperable component design, which happens to actually work across languages and frameworks: .net, C, C++, Delphi, D. Registry works only as a centralized repository of components which is needed if you want to plug arbitrary components into your system, it has nothing to do with the problem of fragile ABI.
Next ›   Last »
1 2 3 4 5
Top | Discussion index | About this forum | D home