[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[DotGNU]Project proposal for the backburner: DotGNUstep
From: |
S11001001 |
Subject: |
[DotGNU]Project proposal for the backburner: DotGNUstep |
Date: |
Wed, 25 Sep 2002 01:19:36 -0500 |
User-agent: |
Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2a) Gecko/20020913 |
Good morning.
This is a proposal for a new DotGNU project. Please note that it is not
intended for immediate movement; instead, I want to make sure the
community is aware of it, as I wrote it yesterday for Brandon Bremen,
who is currently working on PR stuff BTW, and figured that it might as
well be released, instead of sitting on my hard drive for the next few
months.
The idea is that it will sit as a proposed project, a TODO item, until
DotGNU has the resources to move on it.
Please forgive me for not including the GNU FDL in this email; see
<http://www.gnu.org/licenses/fdl.txt>, or contact me for a copy in case
this address doesn't work.
Please post any comments, suggestions, patches, and flames.
note: if you are using MacRoman, your viewer will probably mangle the ae
ligature. Ignore this.
--
Stephen Compall
DotGNU `Contributor' -- http://dotgnu.org
There has been another attempt to seize power. So far, the
aristocratic forces have been defeated.
-- Radio Free OZ
--- 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 languages, 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?
* Proposal Version (integer): 0
* Proposal Version date stamp: Tue Sep 24 22:56:52 UTC 2002
* Proposal Maintainer name: Stephen Compall
* Proposal Maintainer e-mail: address@hidden
* 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 <http://www.gnustep.org> or
<http://www.gnu.org/software/gnustep>. The mission statement is
available at <http://www.gnustep.org/information/mission.html>.
Mac OS X developer documentation for Cocoa: A version of the
OpenStep libraries, tracked somewhat by, and somewhat compatible
with, GNUstep:
<http://developer.apple.com/techpubs/macosx/macosx.html>
* Revisions:
2002-09-24 Stephen Compall <address@hidden> 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.