5 ms·
This looks like a very organized project with well defined goals, both of which are points that will help it succeed. It seems there's a bit of a trend back to
by rpeden 10y ago
This looks like a very organized project with well defined goals, both of which are points that will help it succeed.
It seems there's a bit of a trend back toward compiled languages (Go, Rust, Swift) that don't rely on the JVM or .NET CLR to run. I think that these are all great languages, though I almost wish for something like a better, more modern, cross-platform COM to easily share libraries among the languages.
I've only had to work with COM very, very occasionally though. If I'd had to work with it for any extended period of time, I probably wouldn't be wishing for it, or anything like it. Perhaps sharing functionality between languages is better accomplished by separate services communicating via something like 0MQ.
- adamnemecek 10y ago> Perhaps sharing functionality between languages is better accomplished by separate services communicating via something like 0MQ. Yeah, I think that people don't want to get back from these. The setup is more complex (as in you have to write a bunch of code) but the coupling is a lot looser.
- michaelsbradley 10y agoOPC UA (IEC 62541) provides a robust platform-neutral information model, and multiple options for transport. Similarly, it specifies events, subscriptions, discovery and several higher-level abstractions (e.g. alarms and programs). In some sense, it's a cross-platform successor to COM/DCOM. Some open source implementations are incomplete, but work continues. https://en.wikipedia.org/wiki/OPC_Unified_Architecture https://en.wikipedia.org/wiki/OPC_Unified_Architecture https://github.com/open62541/open62541 https://github.com/open62541/open62541 https://github.com/OPCFoundation https://github.com/OPCFoundation You may also find Woopsa interesting, depending on your use cases. http://www.woopsa.org/ http://www.woopsa.org/
- nxc18 10y ago.NET is a modern, cross-platform com with excellent Multilanguage support. And if you really hate the idea of a VM, you can do dotnet native right now on Windows - there are strong indications that straight-to-c++ compilation will be here for .NET core (cross platform) very soon.
- rpeden 10y agoI don't hate the idea of a VM. :) Most of the work I do runs on the CLR or JVM. I just think that in some ways it would be helpful to be easily be able to write a library in Go, for example, and use it in Rust or Swift. Or FreePascal, or anything else. I suppose it wouldn't be insanely difficult to use the C interop facilities in each language plus a bit of C as glue code to share things between them. But it would be interesting to be able to say "here's my library, and here's the interface it exports. Import it and have fun!". Though I'm sure there are lots of fun details and edge cases I'm completely failing to consider. I'm looking forward to the .NET Core to C++ compilation! There are plenty of interesting things happening in the .NET world right now.
- pjmlp 10y agoWell, you could already AOT compile with NGEN, even though it isn't an optimizing compiler and requires dynamic linking. Or Mono. But I am with you, when Java and .NET came out, in both cases I thought it was a missing opportunity not having a full set AOT/JIT options similar to other languages. You could get them, but NGEN required the framework to be present anyway and on Java's case the only good AOT compilers have always been commercial. So I would remember Turbo Pascal, Delphi, Eiffel and many others with some envy.
- pjmlp 10y agoOS/2 had its own version of COM, called SOM. The best thing about it, was that it also supported metaclasses Smalltalk style. So one could go crazy with OO metaprogramming. Sadly it died with OS/2. Then there was the other multi-platform OO ABI project from Apple, Sun and IBM, Taligent. Also not that successful. COM is ok to work with, when done from .NET or now UWP point of view. C++/CX and the recently announced C++/WinRT are still ok, even if a bit more wordy. The real pain starts increasingly with C++ WTL, C++ ATL, C++ MFC or for the real masochists pure C with COM related macros and the COM IDL compiler. Then there was that other thing called CORBA, which makes the initial versions of Java EE feel like being in heaven.
- rpeden 10y agoI've mostly used COM from .NET, and as you said, it's fairly painless. At one point, we were having issues with a COM DLL we were using from .NET, so I thought it might be fun and useful to dive in and learn more about COM. I bought Don Box's COM book, and tackled COM in Plain C: http://www.codeproject.com/Articles/13601/COM-in-plain-C http://www.codeproject.com/Articles/13601/COM-in-plain-C It was somewhat less fun than I'd hoped it would be. XPCOM seems to be (somewhat) alive and kicking: https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM https://developer.mozilla.org/en-US/docs/Mozilla/Tech/XPCOM ; Firefox and VirtualBox are the only apps I've seen that use it, though I imagine at least a few others do as well.
- teh_klev 10y agoI still go back and dip into Essential COM now and again. I bought my copy because I was involved with a project to build a COM/CORBA bridge and needed to get my head around COM's infrastructure. Also back in the day I used to write a lot of code that ran under Microsoft Transaction Server (MTS) and COM+. Another interesting book by Mr Box and co-authored by Chris Sells, purely from a historical perspective now as it's fairly ancient, is Essential .NET Vol. 1[0]. Sadly they never got around to writing a second volume. As a humourous aside, who remembers Don's lecture he did from a bath tub?: https://blog.mattmags.com/2011/05/19/don-box-the-bathtub-lecture/ https://blog.mattmags.com/2011/05/19/don-box-the-bathtub-lec... [0]: https://www.amazon.co.uk/dp/0201734117 https://www.amazon.co.uk/dp/0201734117