--- PROPOSAL --- * Subject Line: DotGNUstep: The next-generation CLI library * This Proposal is For a New: [X] DotGNU software development project Project name: DotGNUstep Packages in this project: DotGNUstep-base DotGNUstep-gui gsAPIswitch * Essential Resources: [X] Mailing lists Mailing list names: dotgnustep Mailing list descriptions: Development and use. [X] Website resources [X] Savannah location and space Savannah username: UNDEFINED Savannah Project Name: dotgnustep [X] Other We need people who hate BCL, like C#, and love the OpenStep API. We also need good inter-project communicators to help "hook up" with the GNUstep developer and user community. We want these to be cooperating projects, not just (or at all) competing projects. There are valid uses for both: want native? use GNUstep. want web/interpreted? use DotGNUstep. * Are you willing to lead this project?: [ ] Yes [X] No * Description: DotGNUstep is an implementation of NeXT's OpenStep FoundationKit and ApplicationKit libraries (though not the Objective-C language, though this may be a future extension to the project), as well as Project GNUstep's extensions to those libraries, for DotGNU Portable .NET. DotGNUstep will not rely on a special directory tree, as GNUstep does; all support gained from this will be worked into Peter Minten's box system. Otherwise, DotGNUstep applications will conform to whatever the specification for Portable .NET applications becomes. Note on the reference implementation: Apple has moved away from OpenStep in significant ways since it was first specified. Except where technically impossible or too difficult to effectively do so, DotGNUstep will track GNUstep's APIs, and any actual changes made to the API will also be run by Project GNUstep to maintain the ease with which a developer can move from one to the other. Project GNUstep's policy on the API is as follows: We will generally code to the most recent documented API we can find. Where the latest documentation actually conflicts with the original, the latest version generally wins, i.e. * We add things added by Apple. * We don't remove things removed by Apple. * Where there is a real problem with a change, we find a technically superior work-around. In some cases, classes or parts of classes have been added that are clearly specific to a particular platform. Since we provide a cross-platform solution, we will probably not add these classes to our core libraries. It is in the interests of both projects to maintain developer "portability;" a major reason is given under gsAPIswitch. The subprojects are as follows: DotGNUstep-base: The non-GUI portion of OpenStep libraries, standardized as FoundationKit. As Apple has moved away from the OpenStep libraries in recent releases of Cocoa, the reference implementation will be the gnustep-base package, including *all* extensions and changes. As there are no namespaces in Objective-C, all classes will be in the DotGNUstep.Foundation namespace. This also includes the gdomap and gdnc tools, documented below. DotGNUstep-gui: The GUI portion of OpenStep libraries, standardized as ApplicationKit. The reference implementation is gnustep-gui. All classes will be in the DotGNUstep.Application namespace. gdomap, the GNUstep Distributed Objects server: This is a port of the support dæmon that enables a system much like JavaTM's RMI, but from years before. It must be started by root, and only one is needed per machine, so it will be a SEE service. It will be a drop-in replacement for the gdomap currently shipped with gnustep-base, and will hence support both systems. gdnc, the GNUstep Distributed Notification Center: An event handler dæmon that allows different programs to portably listen for and invoke events to/on each other. What these events are is up to the user. gsAPIswitch: To maintain close compatibility with the GNUstep libraries, we need a tool to scan the GNUstep and DotGNUstep libraries, find changes in the former, and merge those changes into DotGNUstep for implementation. This may go the other way as well in the future. Also, as the API documentation in the GNUstep sources is poor as of now, this could also be a way to maintain documentation that transfers between the projects; i.e. DotGNUstep documents a class or method that is undocumented by GNUstep, and gsAPIswitch merges that documentation--or changes to such--into the GNUstep sources. This is an excellent way to give back to the GNUstep project while improving documentation of DotGNUstep; at the same time, it encourages communication between the projects on API changes, and may eventually lead to an API steered by both projects. BUGS with this description: It is unclear whether a tool like gnustep-back would be useful for the GUI implementation. This may be a future addition to this spec. Also, I believe that the GNUstep DB library would also be useful. Whether or not it belongs in this project.... The FoundationKit may or may not be based on the BCL. Surely the stuff that requires native access will, but things that can be reimplemented, perhaps should be? To be a valid replacement for the BCL, exceptions are a good idea. There are no exceptions in ObjC. There are no specified exceptions in OpenStep. Do the math. Politics: the GNUstep people may feel like they're being assimilated into the grand "DotGNU future" vision so eloquently laid out by SC. This must be fixed before contacting the GNUstep project. * Proposal Version (integer): 1 * Proposal Version date stamp: Wed Sep 25 15:33:01 UTC 2002 * Proposal Maintainer name: Stephen Compall * Proposal Maintainer e-mail: rushing@sigecom.net * References: Project GNUstep: a portable implementation (as well as the reference implementation for the project specified in this proposal) of the complete OpenStep specification, in Objective-C, available for GNU systems and others at or . The mission statement is available at . Mac OS X developer documentation for Cocoa: A version of the OpenStep libraries, tracked somewhat by, and somewhat compatible with, GNUstep: * Revisions: 2002-09-25 Stephen Compall 1 - Fixed where accidently called "libraries" "languages". - Added bug about exceptions. - Became afraid about mailing discuss-gnustep, added note to effect. 2002-09-24 Stephen Compall 0 - First edition, based on idea that OpenStep libs are cool. --- END PROPOSAL --- Copyright (C) 2002 Stephen Compall. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Section, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the email you received with this document.