XWorkplace Consolidation

If you check under the hood of the Workplace Shell on ArcaOS 5.0.1 you will notice some thing that are not complete organised.

Problem 1: The WPS Classes
Workplace Shell is based on objects created from WPS Classes. IBM's Workplace Shell has a well defined naming convention for that WPS Classes that starts with WP*, and xWorkplace (The open source desktop enhancement) also tries to have a naming convention with XWP*.

But when you check inside the WPS Classes you can find that there are a lot more.



The Awesome thing is that this is complete transparent for the user. The system may have 4 different WPDesktop children and it works without the users to know about it. You may disagree with me and say this it is exactly what WPS should do, you can have a lot of children of different classes to enhance them, but as a consolidated OS it should try to reduce the complexity and not split the full functionality of an object in different classes.

The problem begin from the development side if you want to extend WPS objects, it starts to look bad. Also as a whole OS, ArcaOS should try to integrate the WPS classes to reduce the complexity for a developer that want to extend any of this objects.

Possible Solution for Problem #1
It would be interesting to try to merge the functionality of the children into the xWorkplace classes.

Santa's Wish list will be to try to consolidate the classes and only have the "WP*" (IBM's one) with the "XWP*" (xWorkplace ones) like:
 * Rename XFldObject to XWPObject
 * Merge WPPngObject (Close source) to XWPObject if a deal can be made with the developer.


 * Rename XFldDisk to XWPDisk
 * Merge CMMMDisk (open souce) and WPPngDisk (close source) to XWPDisk


 * Merge AMouse (open source) to XWPMouse and check if WPStickMouse is still relevant.


 * Merge WPPngProgram and DTProgram (both close source) to XWPProgram.


 * Rename XFldSystem to XWPSystem.
 * Merge WPPngSystem (close source) and WPFOCSystem (Close source) to XWPSystem


 * Rename XFldWPS to XWPWPS


 * Merge WPPngFileSystem (Close source) to XWPFileSystem


 * Rename XFldDataFile to XWPDataFile.
 * Merge WPPngDataFile (Close Source) and CWMMDataFile (Open source) to XWPDataFile.


 * Open source WPPngProgramFile and turn it into XWPProgramFile.


 * Rename XFolder to XWPFolder
 * Merge CWProgFolder (Open source) and WPPngFolder (Close source) to XWPFolder.


 * CWMediaFolder (open source) and it child's should be renamed to XWPMediaFolder, XWPCDFolder and XWPM3UFolder


 * Rename XFldDesktop to XWPDesktop
 * Merge WPSSDesktop (open source) to XWPDesktop


 * Merge WPPngDrives (close source) and WPDrive2 (??) to XWPDrives.


 * Rename XFldShutdown and XFldStartup to XWPShutdown and XWPStartup

Some issues with this solution: In general terms idea can be interesting to consolidate the goal of xWorkplace to be a complete/extendable enhancement of the WPS desktop, but the downside will be that there will no feature improvement from the user perspective.
 * 1) Not all developers will like to give their source code to be merged to xWorkplace
 * 2) Users want more features, and this will be like organizing the home, but no new stuff will be saw by the users.
 * 3) This requires efforts from a developer that understand WPS and xWorkplace.

Problem 2: The xWorkplace Project is getting to big and hard to manage
There are complains that not everything can be merged into the xWorkplace project and repository since the complexity of that project is growing up.

Possible Solution for Problem #2
Instead of looking to xWorkplace as a single project, maybe it can be interesting to see XWorkplace as a brand that shares the same notations. With that you will start creating "XWorkplace Friendly Projects".

For example if we grab Lar's Hardware Manager WPS extension (HWman) and start using the same notation of XWP like naming the class "WPHwManagerEx" to "XWPHwManager" and also start using the method names like "xwp*" it may fit the goals of the XWP project. It will be part of the "xWorkplace Friendly Projects" without increasing the size of the xWorkplace repository but sharing a same vision for WPS enhancement.



People that want to make open source WPS classes will be welcome to join the XWP naming standard. Also the WPS classes will look fine together when it is consolidated on ArcaOS.

An Extreme Future for XWorkplace
This may be a crazy idea for today, XWorkplace is known as a Worplace Shell enhancement and it depends on IBM's WPS Classes. What if the XWP classes can grow to a level of replacing completely the functionality of its direct parent and start taking over it's original WPS Class?

It can be interesting to see the evolution of XWorkplace (if we can find resources to support this) as the thing that will eventually replace IBM WPS, and running in parallel with it in the same SOM implementation.

So you will have a SOM hierarchical classes structure like: - SOMObject --WPObject --- (IBM's WPS Classes) --XWPObject --- (XWorkplace open source classes).

With that proposed scheme a future OS/2 desktop shell can be run with XWorkplace classes and objects, IBM's WPS Classes will be installed but no objects will be registered with those, and any application that still requires some IBM's WPS class to run will able to also run.

Links

 * Workplace Shell based Applications