Should IBM's SOM/DSOM Be Open Sourced? 157
Esther Schindler sends a note about two journalists for very different publications (herself one of them) urging IBM to open-source, not all of OS/2 — they've consistently refused to do that — but instead one of its most powerful features: SOM, the System Object Model. Steven J. Vaughan-Nichols writes at desktoplinux.com, "IBM, I'm told by developers who should know, still has all of SOM's source code and it all belongs to IBM. It's because IBM doesn't have all the code for OS/2 and some of it belongs to Microsoft that IBM open-sourcing OS/2 has proven to be a futile hope." And Esther Schindler takes the developer angle in a blog post at CIO.com: "Could the open-source community use a library packaging technology that enables languages to share class libraries regardless of the language an application was written in? I dare say it could, especially since the code to accomplish that goal was written (and shelved) more than ten years ago. All it takes to make that code available is to ask IBM to release SOM and DSOM as open-source." What are the business issues that would convince IBM to assent?
To late? (Score:2)
Re: (Score:3, Informative)
Set itself apart from what exactly?... Unix (variations) has used/had/does have SOM...
You must mean AIX - or you are predicting the future when IBM open sources SOM so your statement comes true...
and so has Apple, however Steve Jobs ended that "idea" when he returned to Apple...
You mean Taligent? Which was an IBM & Apple co-project?
Microsoft has a very similar concept COM+
You mean MS markets something they pretend is very similar, but any programmer who has used both will tell you they are light years apart, and that no matter how many ++++++++ MS adds to the end of COM, or how many times they change the name of OLE, it still will be light years behind SOM/DSOM.
You ARE on the right track with all o
Re: (Score:2)
No he was referring to OpenDoc [wikipedia.org] another IBM/Apple co-project which was all based on SOM/DSOM.
Re: (Score:2)
Oooops! Long night for me... yes I mean OpenDoc. :-) Thanks for correcting that for me.
-Rob
Re: (Score:2)
This sort of response is typical of those that don't really understand the Microsoft stack.
COM is not OLE renamed. COM is the basic transport structure that OLE, and other MS technologies, are based on. OLE is the name of a specific set of COM interfaces involving such things as Compound Documents, Automation, In-place activation, etc.. OLE also describes a lot of things that don't technically involve COM.
Other examples include ActiveX, DirectX, COM+ (despite
Re: (Score:2)
or how many times they change the name of OLE
This sort of response is typical of those that don't really understand the Microsoft stack.
You mean, like you?
COM is not OLE renamed. COM is the basic transport structure that OLE, and other MS technologies, are based on. OLE is the name of a specific set of COM interfaces involving such things as Compound Documents, Automation, In-place activation, etc.. OLE also describes a lot of things that don't technically involve COM.
Actually, it kind of is... OLE was released in 1990, while COM was released in 1992... so COM started as a subset of OLE that OLE relies on. Revisionist history aside, or current dependencies aside, COM was based off the components of OLE that were "bundled" into what MS later called (and released as) COM.
Other examples include ActiveX, DirectX, COM+ (despite it's name, it's not a new version of COM, it's just a specific set of interfaces like the others I mention), OLEDB, etc..
Which are all based off OLE/COM - I fail to see your point.
"With Windows 2000, that significant extension to COM was incorporated into the operating system (as opposed to the
Re: (Score:2)
That's correct, but it's irrelevant. COM existed before that, they just didn't commercialize it outside of OLE yet.
The point is that while OLE includes COM, COM does not include OLE, therefore COM is not OLE renamed, though you could say it's a subset of OLE renamed.
And no, ActiveX, DirectX, and COM+, nor OLEDB (despite it's name) have nothing to do with OLE, other than they use COM. OLE refers specifically to those bits surrounding Automation, Linki
Re: (Score:2)
Well, the poster to which you are responding apparently knows, as do many other folks who have actually used both SOM and COM for development. Remember that OS/2 was a very popular operating system once (albeit a long time ago).
Yes, we all know that it's the number of people USING a
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
So, in the sense that both COM and SOM are the transport layers of the technology, they are roughly equal, even if their implementations are very different.
Please read this... it'll explain a lot about how unequal they are both in capabilities and in design...
http://en.wikipedia.org/wiki/IBM_System_Object_Model
Unfortunately, many of the key points require an understanding of how they can be used... but I think some of the "Related Links" explain it if you are interested...
Re: (Score:2)
You're confusing features, with purpose. They have the same purpose, they just go about it with different feature sets.
Re: (Score:2)
As I said, their implementations are very different, but they accomplish mostly the same goals. Sure, SOM has inheritance and runtime dispatch, but COM can simulate inheritance with aggregation. The only limitaiton is that you can't superclass in COM (as I said, subclassing can be simulated with aggregation).
You're confusing features, with purpose. They have the same purpose, they just go about it with different feature sets.
Ah... I see what you are trying to say. I guess I am just looking at it differently.
(As an example) If I wanted to replace any part of the (OS/2 or eComStation) GUI, I could... if I wanted to "replace" the whole thing, while still leaving every other method in place for programs that relied on it, I could, by simply superclassing the classes I needed - while everything lower in the class tree would inherit the features, and my classes could pass anything "standard" to the original classes to handle. To
Re: (Score:2)
Oops... sorry, I misread the intent of your post... my apologies.
And I dont know why the Linux community hasnt put more effort into this either... though I can speculate (and my speculation would make the release of SOM/DSOM somewhat useless)... it could be because to use it in such things as the GUI - or applications - would require rewriting all or parts of said components.
That's probably the same reason why MS didnt do something of that nature as well... easier to simply continue with a few more add-on
Re: (Score:3, Informative)
The following quote supports the parent's point
The most notable difference between SOM and COM is support for inheritance -- COM does not have any. It might seem odd that Microsoft produced an object library system that could not support one of the most fundamental concepts of OO programming, but they did have their reasons. The main issue is that it is difficult to know where a base class exists in a system where libraries are loaded in potentially random order. COM demands that the programmer specify the exact base class at compile time, making it impossible to insert other derived classes in the middle (at least in other COM libraries).
SOM instead uses a simple algorithm, looking for potential base classes by following the inheritance tree and stopping at the first one that matches; this is the basic idea behind inheritance in most cases. The downside to this approach is that it is possible that new versions of this base class may no longer work even if the API remains the same. This possibility exists in any program, not only those using a shared library, but problem can become very difficult to track down if it exists in someone else's code. In SOM only solution is extensive testing of new versions of libraries, which is not always easy.
Re: (Score:2)
Anonymous coward: SHUT UP!
Who needs the code? (Score:3, Interesting)
Re:Who needs the code? (Score:5, Interesting)
Sadly no - on all counts. In over a decade and a half, no one (but maybe Apple) came close. DSOM/SOM hasn't been worked on in many years, and still, with kludge after kludge, MS cant come close. (some of) The Linux community wanted the WPS open sourced just because of how powerful it was - even though I dont think they even realized that it meant also open sourcing SOM/DSOM. With many attempts at numerous windowing environments, though the Linux community has made both some pretty and some pretty useful windowing environments, they still haven't come close...
And of course, SOM/DSOM is far more than the WPS... (just a requirement for the WPS to work).
Also, saying SOM/DSOM is just "the idea of how something is done" is like looking at cars, bicycles, sneakers and skateboards and calling the car engine "an idea of how something moves" - it is far more than that. It is a technology that allows anyone on almost any language, to interact with and integrate with any other device, network resource, app, GUI or OS that is SOM/DSOM enabled. Almost 8? 10? years of little to no development on SOM/DSOM and there is still nothing half as powerful for any PC based operating system. Yeah, MS can keep writing inelegant, bloated (which is a massive understatement when compared to SOMObjects of better capabilities) kludges to achieve some of the functionality on a limited scale...
SOM/DSOM is truly what most OO programmers truly want - even if they dont know it (which would simply be because they dont understand it, or love VB that much).
Linux doesn't need it. It has D-BUS (Score:5, Interesting)
It's MUCH MUCH easier to use than COM or SOM. And I still remember working with OpenDoc, so I don't really share good feelings toward SOM.
Re: (Score:3, Informative)
Anyway, COM isn't hard to learn - it's actually incredibly simple. It's all the OLE2 related stuff that makes a mess of programming visual components. Steer clear of automation, OLE and it's pretty easy to knock up stuff in COM.
Re: (Score:3, Interesting)
Re: (Score:2)
SOM is more comparable with KParts and Bonobo. KParts have already evolved quite a bit ahead of SOM and Bonobo is slowly evolving too.
Re: (Score:2)
It's much easier to use GObjects or KParts or your favorite component tool. And then use D-BUS to connect all of them together (for drag&drop, for example).
Re: (Score:2)
COM/SOM/CORBA are just plain too hard to use, so they are becoming obsolete very fast.
Objective-C bridging? (Score:2)
Not ever having used SOM I can't compare it directly but it seems to me that the basic idea is to have an object model with a hard to break ABI (i.e. you can add methods without breaking it) and interoperability with other languages.
Apple has distilled various Objective-C bridging efforts into a common bridge library that is now used by PyObjC (which predates the Apple/NeXT merger) and RubyCocoa and is slated for use with .NET. By virtue of being able to mix Objective-C into a C or C++ file (more or less
object models... (Score:2)
There's various incarnations of CORBA on linux, COM on windows, XPCOM which is used for firefox components, DBUS on Gnome and now KDE.
Component software is a Good Thing(tm), but all the various implementations essentially do the same thing, which is to allow a cross language interface to be specified in a way that doesn't require wrapper libraries to be written. Also, it is common to include some kind of remote procedure call specification.
>>In over a
Re: (Score:2)
>why start over everytime and set yourself years back?
The Linux community has a strong case of Not Invented Here
http://en.wikipedia.org/wiki/Not_Invented_Here [wikipedia.org]
which is why you see every library being redesigned over and over again, instead of just fixing the existing standards. In my opinion, the inability to use existing standards developed for other operating systems, and the insistence on reinventing the wheel is probably the bigges
Re: (Score:2, Informative)
Smalltalk / Squeak has been doing something similar for years. Anything in the system can message anything else. System components / GUI elements can be freely inspected, subclassed, modified - and a
Re: (Score:2)
Smalltalk / Squeak has been doing something similar for years. Anything in the system can message anything else. System components / GUI elements can be freely inspected, subclassed, modified - and all on the fly while the system is running. Of course, this means that all source is very literally open (other than virtual machine primitives).
That's very interesting... can you superclass the stuff as well? And does it work with a GUI, thus making everything on the GUI an object (that can be both subclassed and superclassed)? And are objects created using it interoperable with other objects? And are you limited to using SmallTalk, or can you use any almost language with the relevant code to do all the above? Does it support full inheritance? Are the resulting DLLs as small - and as fast?
Not picking on your statement... I have a copy of SmallT
Re: (Score:2)
Re:Who needs the code? (Score:4, Insightful)
Re: (Score:2)
Lately, there it seems to be a bunch of people here on
It's good to have someone remembering from time to time that our problem with microsoft has to do with their illegal and anti-ethical behaviors, behaviors who had the intent to monopolize the market, at the cost of destroying innovation.
Linux is good not because it's a l33t thing, but because Linux was instrumental on keeping innovat
Re: (Score:2)
It's good to have someone remembering from time to time that our problem with microsoft has to do with their illegal and anti-ethical behaviors, behaviors who had the intent to monopolize the market, at the cost of destroying innovation.
You may praise him for that, but still both of you don't see that such behaviour is in fact quite mandatory; nothing else can be expected from a company which has become so successful that there is a chance to build a monopoly with one or more of their products. Everything else would be strictly against shareholders' interests and thereby out of question. That's how capitalism works, and this is the more true the more globalized it gets.
Cheers,
d. d.
Re: (Score:2)
nobody has really tried (Score:3, Interesting)
Re: (Score:2)
I can't help but feel that that's just stupid. At least they have tried to do something, even if their solution has shortcomings.
People should stop with this whole MS = evil, Linux = good crap. Software platforms should be rated on merit and unless the Linux community comes up with a good solution in this particular case the should probably turn it down a notch or two with their criticisms already..
I never implied any such thing. SOM/DSOM is still superior to COM/COM+ or any related technology that MS has planned (that isnt vaporware). The merits (or lack thereof, depending on your point of view) of MS's business practices has nothing to do with that comparison.
COM and all it's later incarnations, quite simply, are kludges in comparison - that has nothing to do with whether MS is evil or not. And, if you actually bothered to read my post instead of taking snippets of it and misconstruing them, you
Re: (Score:2)
Re: (Score:2)
You are probably very correct!!! :-)
Robert
Re: (Score:2)
Re: (Score:3, Insightful)
Re: (Score:2)
IBM Open-sourcing Experience (Score:3, Insightful)
That said, SOM & DSOM are old tech from the dinosaur mainframe days. With so many distributed apps using more flexible interoperating technologies (SOAP, XMP-RPC etc) I don't really think open sourcing D/SOM will make that big of a difference to most new application developers.
Re: (Score:2)
I used to work within IBM, and here is the story I got from a senior developer...
Eclipse was a rogue project within IBM whose purpose was to take down MS Visual Studio 97. When it became obvious that there was absolutely no way that Windows developers who were used to the speed, ease of use, and rather decent integration with Windows of VS97 would shell out money for a Java-based IDE with its own oddball help system, poor integration with the Win32 toolchain, and most importantly was slow as m
Re: (Score:2)
Re: (Score:2)
There's not a smidgen of VisualAge in Eclipse; the former was a Smalltalk-based IDE family as you point out, the latter is written from scratch in Java with a custom native GUI toolkit (SWT) to mess things up.
I have used both. If Eclipse had any of the horrid mess from VisualAge in it it would have been dead, and Borland's IDE codebase (used for JBuilder and Oracle's JDeveloper) would have won even though it was closed-source. VisualAge is an IDE from the first generat
Re: (Score:2)
It's been a while but Eclipse reminds me of VA of old but with a different skin and some of the things removed. Even VA C++ had method based compiling instead of full project compilation.
Maybe
Re: (Score:2)
I can't remember the name of the organization that did Eclipse anymore, but it started with O, like "Orion" or something. I remember the dev talking about how they weren't "really" IBM: they had funding and access to everyone else's code, but they didn't allowed anyone else to see theirs. They were apparently the brain child of a DE or two (Distinguished Engineers). The dev th
Re: (Score:2)
why would you then not consider Eclipse was based on VAJ lineage since it came before it?
It sounds like maybe VAJ/VAC++/VASmalltalk might not have been too modular and the Eclipse people may have built it from the guts of the VA platform. From what I've seen, there's a common feel to it having used VAC++ and VAJ in the 90s.
LoB
Re: (Score:2)
Yeah, I wasn't very clear there. I meant that if Eclipse really was the future of VAJava I would have expected to see or hear something like "the next release of VAJava will be called Eclipse" or "Eclipse is the new product from the VAJava / VAC++ line". Instead Eclipse seemed to spring suddenly out of the blue after years of semi-secret development, only shortly after the last official VAJava release, and with a pret
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Licensing and open source (Score:5, Insightful)
Unluckily with GPL you can get into issues of whether closed source or just incompatible licensed libraries can be added. One of the ideas behind SOM/DSOM was that anyone could write a DLL and extend the WPS. Now it seems that in free software land you often have to worry about incompatible licenses.
If IBM ever does open source SOM/DSOM I hope it is with something liberal like the LGPL. Don't have to think about issues with linking and the important source stays open.
Re: (Score:3, Informative)
Re: (Score:2)
I don't know a lot about windows coding, but I'd expect that if it were possible, there'd be a lot of replacement File->Open boxes out there.
IE 6 supported PNGs, but not transparent PNGs, and DirectX supported display of transparency, so you had to make up some horrendous CSS hack to get windows to pipe the PNG through DirectX before displaying on scre
Re: (Score:2)
Re: (Score:2)
Its already there (Score:3, Funny)
Its called .NET or Mono
Re: (Score:2, Insightful)
Re: (Score:2)
No, SOM and
Re: (Score:2)
Re: (Score:3, Informative)
this is a bit different. for one, it allows you to redefine how an API is implemented. imagine a generic database API. instead of programming to a client library, all software can be written to a single standard API that then has its guts replaced with a simple call to be database specific. need to move from mysql to postgres and have 30-40 different maintenance programs and scripts that are
Re: (Score:2)
It's the best outcome (Score:4, Interesting)
Open Source should be the default "archive" choice (Score:4, Insightful)
A Big Computer Giant (BCG) purports to be very Open Source friendly. They defend OSS products and licenses, even using their own lawyers, and make a lot of money using/supporting OSS, in their own hardware, and in huge consulting contracts. It turns out they have this collection of source code that they aren't really using anymore, and they have complete rights to at least part of it. Let's just say they only have 2 real options when archiving the source code they own the rights to:
1. Keep it locked in some internal media or shelf, never to see the light of day, unless an internal developer finds it interesting and digs it up for an internal-only project. The internal project may never see the light of day either.
2. Put it on the Internet, and Open Source License it, preferably with an existing OSI license. Not only could the online repository be considered the source "archive", but it also leaves the possibility of growing a redundant, living archive. The source could then be provided by various OSS repositories and mirror hosts.
I know I'm preaching to the choir here, but shouldn't #2 always be the default, or at least the first option considered? Even if you're not an OSS nut (like me), you have to admit the hypothetical company looks pretty darn hypocritical if they don't choose #2, when given the choice, early and often.
So am I using a hypothetical situation to say that IBM (BCG) is a big hypocrite if they DON'T release and apply an OSI License to SOM/DSOM source, ASAP? Why yes I am! How could you tell?...
Re:Open Source should be the default "archive" cho (Score:3, Insightful)
1. it takes time to look over something to make it ready to see the light of day. You have a reputation to uphold.
2. you might want to make money off the software, now or in the future. as much as i love and support an
Re:Open Source should be the default "archive" cho (Score:3, Insightful)
Re: (Score:2)
As another poster in this sub-thread said, open sourcing any code isn't free at all.
Re:Open Source should be the default "archive" cho (Score:2)
Re:Open Source should be the default "archive" cho (Score:2)
And that's when Netscape was the most popular browser, not some 12 year old abandonware desktop middleware that nobody used in the first place.
I don't think anyone active in the OSS desktop community wants a bunch of old unpopular OS2 crap. If anything, they have too many duplicate component models and they need to start standardizing, not add a new one.
Maybe because it would cost them money? (Score:2)
Re: (Score:2)
Of Course! (Score:4, Funny)
Re: (Score:2, Funny)
Re: (Score:2, Insightful)
Re: (Score:2)
Not unless you're using Firmament Beta 12. The latest stable release only supports Skies with 4 bits per pixel.
Re: (Score:2)
Re: (Score:2)
LoB
Re: (Score:2)
Absolute cleanliness is Godliness! Balanced food for mind-body-soul-spirit is our medicine! Full-truth our God, half-truth our enemy, hard work our salvation, unity our goal, free speech our weapon!
Re: (Score:2)
Business issues for open-sourcing SOM/DSOM (Score:4, Funny)
Re: (Score:2)
If I had that kind of control over the chair industry, I could hurt Microsoft a lot more than that.
CORBA? (Score:2)
The only thing I can point to is GUI components, but those were either tied to a specific implementation (OS/2) or to an additional frameword (OpenDoc) and I am not sure they would be of much value.
SOM = CORBA 1.0 (Score:3, Interesting)
And for the person who mentioned Apple... Apple implemented a subset of SOM specifically for OpenDoc. Though highly cool at the time, it was too castrated to be useful and has been surpased by other technologies for robustness (like J2SE/J2EE). Don't forget cool stuff like Spring... Lots has changed in 10 years.
Re: (Score:2)
Is it useful? (Score:2)
Some of the ideas may survive in new solutions, but it can be a really bad idea to take this out of concept and trying to graft it upon a different platform. The amount of work involved for that operation may exceed the amount of work to re-create the functionality without source.
Why is SOM / DSOM needed? (Score:2)
If Linux really wants language neutral interface bindings, it already has it. There are numerous CORBA implementations, idl compilers and so on. For example GNOME offers ORBit (a Corba implementation) for embedding UI components via Bonobo. Bonbo appears deprecated and is bei
Not much worth without the WPS (Score:2)
What was realy cool was the only real application build with the SOM: The Workplace Shell. Neither KDE nor GNOME can to what the WPS could do.
Frankly... (Score:2)
If SOM is the best method to do this, then bring it on. It seems to me that, in 2008, there could at least be something which deve
You Don't Want It (Score:5, Informative)
If you like SOM & Workplace Shell features you'll find it far easier to implement on top of Qt/KDE or wxWidgets or a smart functional integration of some Boost library features & a GUI than you'd ever have hopes of getting that code to work with anything modern or useful today. I loved OS/2. Borland had a Beautiful C++ compiler for it and CSet/2 was one of the better standards compliant compilers at the time as well. They're all bit rot by now though. Appreciate the memories but let this one die.
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
Pure API Linking (Score:2)
Sure, there could be some differences, like argument or
petition (Score:2, Informative)
Re: (Score:3, Informative)
No, Bonobo failed and is being phased out: http://live.gnome.org/Bonobo [gnome.org]
Re: (Score:2)
It's easy to learn, if you're familiar with the C syntax
Adding all the other garbage to it is an Epic Fial.
Re: (Score:2)
There is a trade-off. This ease of assimilation drags PHP's expressive power and level of abstraction closer to what you see in C. This is a very low standard.
Re: (Score:2)
But then, I look at most everyone else's PHP code, and it makes absolutely no sense whatsoever, so I guess we'er all in the same boat there.