google-code-export / bwapi

Automatically exported from code.google.com/p/bwapi
0 stars 0 forks source link

COM #174

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
By going through all the trouble described in issue 142 #19, the 
resulting "virtual interface" is in fact a COM interface. So instead of 
calling it "virtual interface" I will now call it COM.

Issue 142 #19 describes why replacing BWAPI2 with COM is a bad idea (too 
many changes and limits for C++ users). But we could make a COM wrapper 
around BWAPI2, call it like... BWCOM. A COM has great portability, it 
would make all the wrappers like jbridge or bwapi-mono-bridge redundant 
(and the 6 other linked to on our home page). All languages I know either 
directly work with COM or have libraries for that.

Making a COM wrapper would take quite some effort. I'd like some feedback 
first from both sides to poll and see if this'll be worth the trouble.

1. People who have used COM from non-C++ languages, please post here 
whether you'd like to use BWCOM. Or if you don't like the idea, please 
post arguments agains BWCOM.

2. Are there developers who have any experience with C++ COM development?

Original issue reported on code.google.com by goo...@teabix.com on 26 Dec 2009 at 2:29

GoogleCodeExporter commented 9 years ago
I personally only worked with DOM XML. Used it from PHP, Javascript. I see no 
problems in those 2 languages.

Original comment by goo...@teabix.com on 26 Dec 2009 at 2:35

GoogleCodeExporter commented 9 years ago
One drawback of COM is that you must have a message loop running (on both? 
sides) for
the calls to work. I used it from .net ant it had some problems because of this
issue, but nothing non-solvable.

Original comment by igalve...@gmail.com on 29 Dec 2009 at 2:46

GoogleCodeExporter commented 9 years ago
igalvelis: you mean you can't just make blocking calls?

Original comment by goo...@teabix.com on 29 Dec 2009 at 3:30

GoogleCodeExporter commented 9 years ago
Exactly

Original comment by igalve...@gmail.com on 29 Dec 2009 at 4:25

GoogleCodeExporter commented 9 years ago
To clarify you cant block calls from message loop thread, and you must have 
message
loop thread.

Original comment by igalve...@gmail.com on 29 Dec 2009 at 4:26

GoogleCodeExporter commented 9 years ago
I didn't like the "from scratch" idea anyway. I hope the .net guys know what 
they're 
doing
http://starcraftai.rabbitx86.net/index.php?topic=112.msg288

Original comment by goo...@teabix.com on 29 Dec 2009 at 4:45

GoogleCodeExporter commented 9 years ago
I don't understand how COM works and why it can't be so simple like DLL
imports/exports. I had a bad experience looking for a way to create a COM 
project,
the Express versions of Visual Studio don't have that, and I could never find 
any
project samples.

Original comment by AHeinerm on 30 Dec 2009 at 1:52

GoogleCodeExporter commented 9 years ago
It can't be so simple because it has to ensure things like 
language-portability, 
backwards compatibility and world-wide GUID unique-ty. The concepts are neat 
but in 
C++ you have to write quite some redundant code, and tools do not undo stuff 
properly (backwards compability, once you compiled you're screwed)... it 
becomes 
frustrating fast.

Original comment by goo...@teabix.com on 30 Dec 2009 at 2:25

GoogleCodeExporter commented 9 years ago

Original comment by lowerlo...@gmail.com on 20 Jun 2010 at 12:51

GoogleCodeExporter commented 9 years ago
nah, I think by now it's obvious noone has enough intention and knoledge to do 
this, at least not as part of this project.

PS.: From other forums it's clear that a .NET port (instead of COM) would solve 
more problems, but being part of this particular google-code project means it 
would have to be up-to-date with the C++ part which would be a drag on the 
already existing developments.

Original comment by goo...@teabix.com on 20 Jun 2010 at 1:11