GNUstep As a Product
|Revision as of 13:31, 7 March 2005
Stefan Urbanek (Talk | contribs)
← Previous diff
|Revision as of 14:36, 29 August 2005
Mguesdon (Talk | contribs)
Goals and how to get there
Next diff →
|Line 95:||Line 95:|
|* See the list below||* See the list below|
|-||developers already know some kind of language, so we have to address them from their starting point. You want to be able to point e.g. a Java programmer to a document that targets the Java programmer to use Objective-C.||+||developers already know some kind of language, so we have to address them from their starting point. You want to be able to point e.g. a Java programmer to a document that targets the Java programmer to use [[Objective-C]].|
|Where do we find users:||Where do we find users:|
Revision as of 14:36, 29 August 2005
Ideas about how to market GNUstep
The GNUstep as a Product
There are many uses for GNUstep, but we have to agree on single definition of a single product that will be provided at the beginning. Of course there are many flavours of GNUstep installations, but there should be only one or two introduced.
The product definition should contain:
- what it is
- what it offers
- references to something known and recognised (comparison is good for understanding)
- strengths of gnustep
- use few buzzwords, but very, very decently
GNUstep by its nature IS some kind of environment, as it is not bunch of libraries, because it requires its own filesystem storage (for resources, for example) and running servers (daemons). We can call this more complex set of components an environment. As there are not many applications for GNUstep right now, the best product that can be done from GNUstep is "GNUstep Development Environment". Sugestion for general description of the environment:
GNUstep: GNUstep is a cross-platform, object oriented environment composed of frameworks, tools, and servers (daemons). It is very similar to the Cocoa frameworks from Apple, and tries to maintain compatibility with Cocoa wherever it is desired and possible. The frameworks provide classes for containers, distributed objects, object archiving, file management, text system, font management, image composition, WYSIWYG PostScript graphics, and more.
|Product/Package||Description||Contents||Runtime Environment||Core that forms an environment in which GNUstep applications, tools and servers can be run.||GNUstep Core, Workspace application, Terminal application, example services||Development Environment||Collection of core applications for worskpace management, object relationship modelling, source code editing, terminal emulation and set of core development frameworks (Foundation and Application Kits)||Components from the Runtime Environment + Gorm, ProjectCenter, EasyDiff||Framework Collection ||Object oriented solutions for web application development, database (Oracle, MySQL, Postgresql,...) connectivity and object abstraction, language independent scripting||GSWeb, GDL2, StepTalk|
 No user applications are included, as it is an development environment.
 feel free to replace the word Production with something better.
Distribution and installation
Any product has to be distributed. Current possible distribution channels are:
- Direct distribution from GNUstep website through .tar.gz source or binaries
- MS Windows executable
- Debian based linux distributions with .deb packages
- RPM packaging based distributions
Installation should be as easy as:
- Launch installer (doubleclicking in hosting environment is prefered)
For Linux distributions with native packaging systems, there should be meta package containing several gnustep packages according to the gnustep products/solutions.
For other Linux distributions, installation should be either guarded by executable package or by providing instructions that can be moved by Copy & Paste into a terminal window.
For MS Windows, the installer should create full binary installation of the gnustep environment that is ready to launch. It should place a GNUstep icon on the desktop or into the start menu. Launching GNUstep development session is same as launching GWorkspace.app or Terminal.app
Using GNUstep Development Environment
User should be able to use GNUstep D.E. by clicking on an icon or picking a menu item. For the time being, the main entry to the environment should be GWorkspace or Terminal.app. No .cshrc or .bashrc fiddling should be required.
Having GNUstep useable from user's preffered terminal is for advanced users. Instructions for required 'sourcing' and 'setting env variables' should be given at the end of the installation and should be explicitly marked as instructions for advanced users.
Alternative for the development nevironment, there should be a very simple 'dock application' with preconfigured entries for GWorkspace, Terminal.app, Gorm.app and ProjectCenter.app. Nothing fancy, simple window with matrix of buttons with icons.
GWorkspace should be preconfigured to contain icons for System/Applications, Local/Applications, System/Documentation and Local/Documentation on the shelf.
Goals and how to get there
First a list of the primary goals:
- Get more app developers
- Get more app users
Why do we want them:
- More testing of the GNUstep-core
- More bug fixes of GNUstep-core
- More applications that use GNUstep-core
How to attract developers:
- Good documentation
- Easy to use tools
- Complete development set
How to attract users:
Where do we "hire" developers:
- See the list below
developers already know some kind of language, so we have to address them from their starting point. You want to be able to point e.g. a Java programmer to a document that targets the Java programmer to use Objective-C.
Where do we find users:
- See the list below
- Make sure GNUstep is incorporated in as many distro's as possible
How are we gonna approach developers? How are we gonna approach users?
Working with a language that is not familiar to most programmers requires a lot of marketing. The first idea was to create a list that shows the highlights of the language then create documents that tell e.g. a Java programmer how to do things in Objective-C, and also for C programmes, C++ programmers etc. So an article per programming language.