4 ms·
An interesting alternative approach to Unix pipes are systems where everything is an object and where objects can be composed, similar to the idea of function c
by linguae 5y ago
An interesting alternative approach to Unix pipes are systems where everything is an object and where objects can be composed, similar to the idea of function composition in mathematics (e.g., f(g(x)). This can not only be used for command-line applications (for example, PowerShell), but this approach can be taken in graphical-user interfaces. The Smalltalk-80 environment is the ideal substrate for creating such an ecosystem, and Windows has support for implementing such component-based technology, namely (1) Microsoft's OLE (https://docs.microsoft.com/en-us/cpp/mfc/ole-background?view=msvc-170 https://docs.microsoft.com/en-us/cpp/mfc/ole-background?view...), (2) the Component Object Model (https://docs.microsoft.com/en-us/windows/win32/com/the-component-object-model https://docs.microsoft.com/en-us/windows/win32/com/the-compo...), and (3) the .NET Common Language Infrastructure (https://en.wikipedia.org/wiki/Common_Language_Infrastructure https://en.wikipedia.org/wiki/Common_Language_Infrastructure).
Back in the mid-1990's Apple once promoted OpenDoc (https://en.wikipedia.org/wiki/OpenDoc https://en.wikipedia.org/wiki/OpenDoc), a standard that was envisioned to support an ecosystem of component-based software, where users could mix and match components to create modular solutions instead of depending on large, monolithic software applications. Here is a nice short video promo from roughly 1994 describing OpenDoc: https://www.youtube.com/watch?v=oFJdjk2rq4E https://www.youtube.com/watch?v=oFJdjk2rq4E.
OpenDoc was nixed when Steve Jobs returned to Apple; my opinion for this nixing is because (1) Apple at the time needed to focus on one technical direction (OpenDoc was one of many competing software visions at Apple before Steve Jobs united Apple toward a software vision built on top of OpenStep/Cocoa), and (2) it's hard to promote a component-based software ecosystem when the Mac was on life support and needed support from popular vendors of large, monolithic applications (I'm talking mainly about Adobe and Microsoft) in order for Mac users of these applications to stay on the Mac. I believe this is the same reason why we haven't seen much of a component-based software ecosystem on Windows outside of Microsoft Office's interoperability among its applications: it's easier for software vendors to sell integrated solutions than to sell components that users will have to integrate themselves.
I wish the FOSS desktop ecosystem, which doesn't have the same commercial concerns as the world of proprietary software, embraced component-based software beyond Unix pipes. However, the FOSS desktop ecosystem rallied behind KDE and GNOME in the latter half of the 1990's, and thus many of us still rely on large applications like LibreOffice, Firefox, and the GIMP instead of component-based alternatives.
- LargoLasskhyfv 5y agoOld KDE(3) had DCOP (which worked well within KDE3 in my experience), which is now superseeded by DBUS, which is (mostly) desktop agnostic. [0] https://en.wikipedia.org/wiki/Desktop_communication_protocol https://en.wikipedia.org/wiki/Desktop_communication_protocol There is also Vala from Gnome: [1] https://wiki.gnome.org/Projects/Vala/About https://wiki.gnome.org/Projects/Vala/About [2] https://gitlab.gnome.org/GNOME/vala https://gitlab.gnome.org/GNOME/vala
- pjmlp 5y agoComponents are used quite a lot on Windows, specially on devtooling, have a look at DevExpress, Telerik and so on. The biggest pain with COM is that Microsoft (except for C++/CX) never put much effort like Borland did, or VB 6, on making it a pleasant experience. .NET was supposed to replace it, but WinDev rebeled against it, so now we have both, with COM still having the tooling stuck in 2000 (C++/WinRT is a regression to those days). On UNIX side, there are a couple of possibilities gRPC, D-BUS, DCOP, KParts, Android Binder/Intents,... macOS builds on the NeXT Tooling and also offers XPC in addition to them. However where BSD and Linux clones fail is having a full stack approach to the platform, thus turning such approaches in mini-silos, e.g. you can enjoy D-BUS alongside KParts as long as you stay with KDE and KDE specific apps.