Templates were cool, but I never really used them. In fact, I never really used the Workplace Shell. I only programmed for the shell. It was a shame, I tell you.
It was weird, as in W-E-I-R-D, thinking about it now. I had the baddest O-O program on the planet, and I had to use a command line. Why? Because in order to "debug" or compile/edit/test, I had to constantly tear down my shell in order to allow my WPS dlls to be copied over the ones the shell was using. So, I had written all this test harness code which would launch PMSHELL, allow me to use it for a little while, make some changes to my code, stage them for use in the SHELL, and then *bam*! bust a move and tear the whole shootin' match apart and start over.
It wasn't pretty. And that was not even using a source-level debugger! Which was a total PITA to use because of the *gasp* SIQ (since the C++ debugger was a PM program....IPMD....it couldn't reliably debug without hanging the shell, which 4 out of 5 times would hang OS/2). Because IBM wouldn't fix the stooopidest of limitations in OS/2: namely, one could not *attach* a debugger to a running process. The process had to be running by the debugger in order to debug it. Gee....let's see, Unix could do this 20 years ago. Windows did it early '90s, but IBM's advanced OS/2? Nope. The result? I'll get to that below.
Reboot city, man.
The biggest PITA was the freaking skinning stuff I wrote for the OS/2 Task Manager. Woohoo! That *always* required a reboot between compile/edit/test.
You know what the IBMers used to debug WPS code? The OS/2 kernel debugger. So, they were supposedly writing high-level OO code, right? Beautiful OO code generating pretty OO UIs, and they were debugging in assembler.
No thanks.
Something tells me that the KDE and Gnome guys have it better, I tell you, and the result? Better code, more reliability, and better ability to turn on a dime and write code that does things like templates, and drag with that mouse line you like.
> However, a WorkPlace Shell quasi-workalike without the resource leakage issues and with > a more robust method for handling desktop startup/shutdown issues might be an > interesting project.
What are the things missing in KDE that you miss? Not that I'm about to rectify them, but I'm just learning Linux this month, having put it off after being burned using the "alternative" OS for so long.
Frankly, my original motivations for creating Object Desktop were to rectify massive shortcomings in the WPS, and because of that, I could only be likewise motivated again if 1) I was *really* enamored with an OS again and 2) that OS had massive UI shortcomings.
That being said, what in KDE and/or Gnome are "missing" WRT Object Desktop combined with the Workplace Shell?
....btw, so funny, I twitch so much thinking about Workplace Shell I write WSP instead. Not freudian, unless you can come up with an acronym that is a proper analog.
Oh, and while I'm bitter about the rude IBM exit from the OS/2 landscape, I did get a nice house out of the deal. It's just....shoulda been a mansion!
Yes, this is Kurt Westerfeld. I have my OS/2 battle scars to prove it....see here?
To your point, for the cost of some of that flexibility, we have:
- massive leakage of object handle mappings to non-existent files
- leading to massive OS2.INI bloat
- leading to massive support costs by ISVs that deal with the WPS
- leading to "lose my number" responses from IBM to those ISVs
Just one instance, of course, of the many flaws the of *implementation* of their flawed design (which was OOP in the most naive of definitions).
But, point taken, the end user wins. I just crack up at those end users claiming that the WPS should be emulated; they forget the stability costs associated with such flexibility. While certainly *more* flexibility could be attained with a different design and implementation, the original, flawed, WSP *should not be emulated.*
There. I should explain myself better on my first rant!
I'm cracking up hearing all the talk about how the WPS was the nicest piece of software ever written, how it was "object oriented" before its time, etc., and how KDE and Gnome should go read history.
Please.
I wrote Object Desktop for OS/2. Yes, *that* Object Desktop. And let me tell you that the Workplace Shell programming interface was the biggest piece of shit I've ever dealt with, before, during, after.....you-name-it.
Since then, so-called object-oriented programming practices have been studied, documented, have been brought to universities all around the world. And during this time, if they had the WPS sources to look at, (which I didn't, but could pretty much write verbatim because of all the reverse engineering that was necessary to build Object Desktop), they could have used that as their "programming interface hall-of-shame". In other words, what *not* to do.
So, let's applaud KDE and Gnome for what they are doing, and while I am not informed on the programming interfaces *they* have expounded, I do know it couldn't be worse than what IBM foisted on the world in the early nineties in the form of "object technology."
Feh.
Leave it alone guys, this one has been dead for years, for good reason.
OK, there are a lot of people here that don't like Microsoft (myself included), but I am overjoyed to see at least a few posts here from people who have read the C# language references posted.
I can happily say that C# seems like a nice language. It has a lot of the syntactic underpinnings from Java and C++, but with all the "bend the language to suit our needs" flavor of Delphi. I am sure that Anders Hielberg (Delphi architect) had some influence on this language.
Here's a few points: 1. Property declerations are nice and easy, and are an improvement over Delphi's and VC++ #pragma mechanisms. 2. I actually laughed out loud at the elegance of adding event handlers. +=, -=, very Java bean like, without the "addSuchAndSuchListener" gorp you see all over Java code. Of course, it is very Delphi like using the delegate closures, and is beautifully typesafe and compact. Kudos. 3. The attribute stuff is neato. I like shortcuts, and I hate post-compilers. Another step forward.
Overall, at first blush it seems like a lot of good things were taken from Delphi, Java and C++ (my favorites in that order). I can recommend that when an open-source-compiles-to-java-bytecode-version appears that people check it out.
Seriously, though, one major criticism I have with C#'s competition (and let's not kid ourselves, kiddies, it's Java), is that the Java language is not changing to suit demand. Sure, Sun puts out new versions as fast as they can, and they do a good job of adjusting to developers screaming (AWT.....NOOOOOOO), but they are not changing the language to help out.
Notice that I am not saying that they should be changing the bytecode...you can do just about everything cool about C# in Java bytecode, and yet Sun, and sure Microsoft, won't.
The VCL actually has the tightest integration of native windowing handles to objects I've ever seen (which is a requirement for a fast GUI framework). This is the part of any GUI framework that associates a native window handle with the framework's object handler. Various techniques can be used: a map, private window data, windows getprop/setprop, etc.
In the VCL, the association is done actually in the windowing class callback itself. Each window class gets its own snippet of assembler that is manufactured on the fly, and contains the VCL class pointer for dispatching. Thus, there is absolutely NO overhead for the lookup to dispatch any windowing message. Hence, the GUI part of Delphi blows the doors off of MFC and VB for performance. This technique is a key facet of the VCL that allows them to blend the numeric messaging identifiers into the Object Pascal language. I'm hoping they torque the language in the direction that pays off for ease-of-use under Linux as well.
Alas, this is the part that is going to make it tricky for tricks on Linux to relink with a Linux-based Win32 implementation. This technique will of course tie the implementation to Intel.
There are other parts of the VCL written in native assembler, most notably the native ref-counted string class. Those won't be hard to replace with pascal, but I'm hoping for performance they use conditional compilation for Linux/Intel.
An aside: here's one example where a proprietary language is a blessing: Borland owes nobody any explanations why they move the language forward to implement nice tie-ins with the deployment platform. VCL has the easiest COM integration, and window message syntax in method declerations. I'm betting they do a bang-up job making it just as easy to do Linux development.
I turn 35 if four years. My wife and I have one kid now, and hopefully two by then. I will truly be set apart from the young guns with no life, and refuse to put in more than 10 hours a day regularly.
But in the 8 productive hours I work a day, I can kick the tail off of anybody I work with, so where's that put me? Will I be wondering about a job then?
I doubt it. In my area (DC), there's a drastic talent shortage. Companies are downright obnoxious with their recruiting practices, and there's no shortage of jobs.
If people are having trouble finding work, maybe they should just move here!
Templates were cool, but I never really used them. In fact, I never really used the Workplace Shell. I only programmed for the shell. It was a shame, I tell you.
It was weird, as in W-E-I-R-D, thinking about it now. I had the baddest O-O program on the planet, and I had to use a command line. Why? Because in order to "debug" or compile/edit/test, I had to constantly tear down my shell in order to allow my WPS dlls to be copied over the ones the shell was using. So, I had written all this test harness code which would launch PMSHELL, allow me to use it for a little while, make some changes to my code, stage them for use in the SHELL, and then *bam*! bust a move and tear the whole shootin' match apart and start over.
It wasn't pretty. And that was not even using a source-level debugger! Which was a total PITA to use because of the *gasp* SIQ (since the C++ debugger was a PM program....IPMD....it couldn't reliably debug without hanging the shell, which 4 out of 5 times would hang OS/2). Because IBM wouldn't fix the stooopidest of limitations in OS/2: namely, one could not *attach* a debugger to a running process. The process had to be running by the debugger in order to debug it. Gee....let's see, Unix could do this 20 years ago. Windows did it early '90s, but IBM's advanced OS/2? Nope. The result? I'll get to that below.
Reboot city, man.
The biggest PITA was the freaking skinning stuff I wrote for the OS/2 Task Manager. Woohoo! That *always* required a reboot between compile/edit/test.
You know what the IBMers used to debug WPS code? The OS/2 kernel debugger. So, they were supposedly writing high-level OO code, right? Beautiful OO code generating pretty OO UIs, and they were debugging in assembler.
No thanks.
Something tells me that the KDE and Gnome guys have it better, I tell you, and the result? Better code, more reliability, and better ability to turn on a dime and write code that does things like templates, and drag with that mouse line you like.
> However, a WorkPlace Shell quasi-workalike without the resource leakage issues and with
> a more robust method for handling desktop startup/shutdown issues might be an
> interesting project.
What are the things missing in KDE that you miss? Not that I'm about to rectify them, but I'm just learning Linux this month, having put it off after being burned using the "alternative" OS for so long.
Frankly, my original motivations for creating Object Desktop were to rectify massive shortcomings in the WPS, and because of that, I could only be likewise motivated again if 1) I was *really* enamored with an OS again and 2) that OS had massive UI shortcomings.
That being said, what in KDE and/or Gnome are "missing" WRT Object Desktop combined with the Workplace Shell?
Heh.
So, where do you hide your comp.os.os2.advocacy scars?
....btw, so funny, I twitch so much thinking about Workplace Shell I write WSP instead. Not freudian, unless you can come up with an acronym that is a proper analog.
Oh, and while I'm bitter about the rude IBM exit from the OS/2 landscape, I did get a nice house out of the deal. It's just....shoulda been a mansion!
Yes, this is Kurt Westerfeld. I have my OS/2 battle scars to prove it....see here?
To your point, for the cost of some of that flexibility, we have:
- massive leakage of object handle mappings to non-existent files
- leading to massive OS2.INI bloat
- leading to massive support costs by ISVs that deal with the WPS
- leading to "lose my number" responses from IBM to those ISVs
Just one instance, of course, of the many flaws the of *implementation* of their flawed design (which was OOP in the most naive of definitions).
But, point taken, the end user wins. I just crack up at those end users claiming that the WPS should be emulated; they forget the stability costs associated with such flexibility. While certainly *more* flexibility could be attained with a different design and implementation, the original, flawed, WSP *should not be emulated.*
There. I should explain myself better on my first rant!
I'm cracking up hearing all the talk about how the WPS was the nicest piece of software ever written, how it was "object oriented" before its time, etc., and how KDE and Gnome should go read history.
Please.
I wrote Object Desktop for OS/2. Yes, *that* Object Desktop. And let me tell you that the Workplace Shell programming interface was the biggest piece of shit I've ever dealt with, before, during, after.....you-name-it.
Since then, so-called object-oriented programming practices have been studied, documented, have been brought to universities all around the world. And during this time, if they had the WPS sources to look at, (which I didn't, but could pretty much write verbatim because of all the reverse engineering that was necessary to build Object Desktop), they could have used that as their "programming interface hall-of-shame". In other words, what *not* to do.
So, let's applaud KDE and Gnome for what they are doing, and while I am not informed on the programming interfaces *they* have expounded, I do know it couldn't be worse than what IBM foisted on the world in the early nineties in the form of "object technology."
Feh.
Leave it alone guys, this one has been dead for years, for good reason.
It's funny, I was just thinking that if Sun had just announced a brand new syntax for a bunch of stuff in Java, the whole world would love it!
But, because it's from evil Microsoft, it can't have anything good.
A shame to be among such sheep (oooh, the irony).
OK, there are a lot of people here that don't like Microsoft (myself included), but I am overjoyed to see at least a few posts here from people who have read the C# language references posted.
I can happily say that C# seems like a nice language. It has a lot of the syntactic underpinnings from Java and C++, but with all the "bend the language to suit our needs" flavor of Delphi. I am sure that Anders Hielberg (Delphi architect) had some influence on this language.
Here's a few points:
1. Property declerations are nice and easy, and are an improvement over Delphi's and VC++ #pragma mechanisms.
2. I actually laughed out loud at the elegance of adding event handlers. +=, -=, very Java bean like, without the "addSuchAndSuchListener" gorp you see all over Java code. Of course, it is very Delphi like using the delegate closures, and is beautifully typesafe and compact. Kudos.
3. The attribute stuff is neato. I like shortcuts, and I hate post-compilers. Another step forward.
Overall, at first blush it seems like a lot of good things were taken from Delphi, Java and C++ (my favorites in that order). I can recommend that when an open-source-compiles-to-java-bytecode-version appears that people check it out.
Seriously, though, one major criticism I have with C#'s competition (and let's not kid ourselves, kiddies, it's Java), is that the Java language is not changing to suit demand. Sure, Sun puts out new versions as fast as they can, and they do a good job of adjusting to developers screaming (AWT.....NOOOOOOO), but they are not changing the language to help out.
Notice that I am not saying that they should be changing the bytecode...you can do just about everything cool about C# in Java bytecode, and yet Sun, and sure Microsoft, won't.
The VCL actually has the tightest integration of native windowing handles to objects I've ever seen (which is a requirement for a fast GUI framework). This is the part of any GUI framework that associates a native window handle with the framework's object handler. Various techniques can be used: a map, private window data, windows getprop/setprop, etc.
In the VCL, the association is done actually in the windowing class callback itself. Each window class gets its own snippet of assembler that is manufactured on the fly, and contains the VCL class pointer for dispatching. Thus, there is absolutely NO overhead for the lookup to dispatch any windowing message. Hence, the GUI part of Delphi blows the doors off of MFC and VB for performance. This technique is a key facet of the VCL that allows them to blend the numeric messaging identifiers into the Object Pascal language. I'm hoping they torque the language in the direction that pays off for ease-of-use under Linux as well.
Alas, this is the part that is going to make it tricky for tricks on Linux to relink with a Linux-based Win32 implementation. This technique will of course tie the implementation to Intel.
There are other parts of the VCL written in native assembler, most notably the native ref-counted string class. Those won't be hard to replace with pascal, but I'm hoping for performance they use conditional compilation for Linux/Intel.
An aside: here's one example where a proprietary language is a blessing: Borland owes nobody any explanations why they move the language forward to implement nice tie-ins with the deployment platform. VCL has the easiest COM integration, and window message syntax in method declerations. I'm betting they do a bang-up job making it just as easy to do Linux development.
I turn 35 if four years. My wife and I have one kid now, and hopefully two by then. I will truly be set apart from the young guns with no life, and refuse to put in more than 10 hours a day regularly.
But in the 8 productive hours I work a day, I can kick the tail off of anybody I work with, so where's that put me? Will I be wondering about a job then?
I doubt it. In my area (DC), there's a drastic talent shortage. Companies are downright obnoxious with their recruiting practices, and there's no shortage of jobs.
If people are having trouble finding work, maybe they should just move here!
Gotta love it: Joe Barr alienates a world of OS/2 users, and now he's in the Linux camp.
This guy will really make Linux seem professional, courteous, and his net presence will reenforce the notion that the best Linux support is online.
(Find some new friends guys, this nut won't go away)
I'd probably spend too much time watching football anyway.