GNUstep As a Product

From GNUstepWiki
Jump to navigation Jump to search

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