Difference between revisions of "GNUstep As a Product"

From GNUstepWiki
Jump to navigation Jump to search
 
m (GNUstep as product moved to GNUstep As a Product)
 
(6 intermediate revisions by 3 users not shown)
Line 18: Line 18:
 
'''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.''
 
'''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.''
  
{|
+
{| border=1
 
! Product/Package
 
! Product/Package
 
! Description
 
! Description
 
! Contents
 
! Contents
 
|+
 
|+
| GNUstep Development Environment
+
| '''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)  
 
| 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)  
| GNUstep Core, Gorm, ProjectCenter, EasyDiff, Terminal.app, example services, GWorskpace [1]
+
| Components from the Runtime Environment + Gorm, ProjectCenter, EasyDiff
 
|+
 
|+
| GNUstep - Production Frameworks [2]  
+
| '''Framework Collection''' [2]  
 
| Object oriented solutions for web application development, database (Oracle, MySQL, Postgresql,...) connectivity and object abstraction, language independent scripting
 
| Object oriented solutions for web application development, database (Oracle, MySQL, Postgresql,...) connectivity and object abstraction, language independent scripting
 
| GSWeb, GDL2, StepTalk
 
| GSWeb, GDL2, StepTalk
Line 33: Line 37:
  
 
[1] No user applications are included, as it is an development environment.
 
[1] No user applications are included, as it is an development environment.
 +
 
[2] feel free to replace the word Production with something better''.
 
[2] feel free to replace the word Production with something better''.
 
  
 
== Distribution and installation ==
 
== Distribution and installation ==
Line 43: Line 47:
 
* MS Windows executable
 
* MS Windows executable
 
* Debian based linux distributions with .deb packages
 
* Debian based linux distributions with .deb packages
 +
* FreeBSD ports
 
* RPM packaging based distributions
 
* RPM packaging based distributions
  
Line 62: Line 67:
 
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.
 
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.
+
Having GNUstep useable from user's preferred 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.
+
Alternative for the development environment, 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.
 
GWorkspace should be preconfigured to contain icons for System/Applications, Local/Applications, System/Documentation and Local/Documentation on the shelf.
Line 91: Line 96:
 
* 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:
Line 100: Line 105:
 
How are we gonna approach users?
 
How are we gonna approach users?
  
== Marketing Objective-C ==
+
== Marketing [[Objective-C]] ==
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.
+
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.
  
 
== Other notes ==
 
== Other notes ==
  
 
[[Release procedure]]
 
[[Release procedure]]

Latest revision as of 14:49, 2 October 2006

Ideas about how to market GNUstep

The GNUstep as a Product

There are several definitions of GNUstep. One is here (Home), here (Intro),here (Wiki Intro) and here (GS vs WM).

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 [2] Object oriented solutions for web application development, database (Oracle, MySQL, Postgresql,...) connectivity and object abstraction, language independent scripting GSWeb, GDL2, StepTalk

[1] No user applications are included, as it is an development environment.

[2] 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
  • FreeBSD ports
  • RPM packaging based distributions

Installation should be as easy as:

  1. Download
  2. Launch installer (doubleclicking in hosting environment is prefered)
  3. Configure
  4. Run!

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 preferred 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 environment, 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:

  • Apps
  • Apps
  • Apps

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?

Marketing Objective-C

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.

Other notes

Release procedure