User knowledge requirements
What new users and developers have to know so they can use GNUstep? What of that knowledge is really required for GNUstep development and what can be removed later? I mean, knowledge requred for new users with very little knowledge of programing - a person that is deciding between various development platforms and environments.
Here are lists of requirements. After knowledge, there is a dificulty level for learning that knowledge for very-beginners.
Users
- Packaging system
or
- Shell commands tar, gz, how to locate a file and execute a script
- Configuration files (for setting up the GNUstep environment)
The last one should be removed.
Also note that environments with packaging systems do not allow per-user installation.
Developers - ideal
- ObjectiveC
- basic language principles, expressions and messages - easy
- interfaces and implementations - intermediate
- GNUstep/Cocoa
- Classes - easy
- Different concepts than in other environments - intermediate
- Reference Counting Garbage Collection - easy
Developers - real
- ObjectiveC
- basic language principles, expressions and messages - easy
- interfaces and implementations - intermediate
- Terminal application (xterm, Terminal.app,...) and some unix shell basics (cd, rm, mkdir, cp, mv) - easy
- 'make' tool - easy (make, make install, ...)
- GNUstep make package - intermediate
- Makefile structure/grammar - intermediate
- GNUstep/Cocoa
- Classes - easy
- Different concepts than in other environments - intermediate
- Reference Counting Garbage Collection - easy
- Property Lists (for application info and document based applications): intermediate (for begginers to understand how it works)
Obvious things are intentionaly mentioned. Even most of current users do not think about them, new users do not have to know them. Moreover, think that person who is deciding between development environments will decide to chose the one where he can start creating applications sooner, without having to learn too much.
I think that ProjectCenter can remove most of the developer requirements. Moreover, if there was some class editing tool, it can remove also requirement 2 (and transform it into just basic OOP knowledge).
What do you think are other requirements for basic GNUstep development and usage? What knowledge requirements can be removed to make GNUstep more accessible for new programmers?
Can anyone compare the requirements with requirements for other development environments?