= Issues =
The motivation for writing most of this email is the documentation threads I've noticed pop up now and then in -talk, as well as a number of underlying factors. As I see the current state of Ruby documentation:
First off, the official documentation is mainly constrained to automatically generated documentation taken from source code comments. This means that the online version of the documentation is full of frames and lacks in structure. The user is forced to sort through a giant list of classes with no way to discern one from the other. Compare this with the following (this is just a rough example):
Numeric
Integer
Bignum
Float
Math
...
Strings
String
Regexp
MatchData
Object Storage
Struct
Hash
Array
..
Files and Directories
File
Dir
IO
...
Operating System
Process
Signal
Env
...
So if a user wants to study Ruby's handling of numeric types, they can easily narrow down on them. Those interested in systems program can focus on the Operating Systems category. Finally, it helps when a user who has no idea what class to look for by narrowing down the list of choices. From there the user can decide what class best suites their needs, and compare it to other similar classes.
Next is the language issue. Ruby is a programming language with roots in Japan. This means that a good amount of the core team speak Japanese as their main language, and I've noticed the Japanese documentation [2] to be a bit more thorough and better laid out. In fact there is already a project underway to improve the Japanese documentation[3]. However my fear is that the English documentation will become further out of sync.
As a final concern, both sets of documentation do not provide a way for the addition of user comments. This is a core feature of the PHP documentation that make it such a success. Users can point out weird edge cases or useful examples of how to utilize something that is not apparent by simply looking at the provided documentation.
This are just a few issues with much more that I could go into. Now with that all in mind I'd like to discuss a proposal for improving the state of the documentation.
= Steps Towards Improvement =
So are the steps I would like to take in order to improve the overall status:
* Find a hosting sponsor as an official documentation project will most likely generate a reasonable amount of traffic which would be too much of a financial burden for me to take on alone
* Establish a content management system / wiki which will allow for:
* User comments
* Multiple contributors ( content writers, translators, editors, etc. )
* Multi-lingual support ( not just Japanese and English, but also allow for translations in multiple languages )
* Revision support for rollbacks and ability to see revision history
* Support for syntax highlighting
* Ability to categorize / tag / adjust navigation
* I'll start putting up documentation, the idea being that I would like to have a good chunk of content up so everyone has something tangible to see
* Most likely I'll start by doing a port of the Ruby Koans [4] to a more tutorial oriented format, as I like way the content is categorized
* Continue my translation [5] of the Ruby Japanese documentation so that there is a reference of some type for parts of the language which are not classes
* Once this is done I will put out a call for contributors including:
* Content writers
* Editors
* Translators ( while not essential at this phase, it would be nice to get it started early before the scale gets massive )
* Site administrators / moderators ( For helping to moderate comments and make sure they're not spam or are off topic )
* Anyone to add comments to help improve the general documentation
* Look at getting a project setup in redmine for people to file documentation bugs or any other issues that come up
I think this is enough to work with for now.
= Actionable Items =
While I would very much enjoy others to hop on and help out, I don't expect it at the "I have a dream" stage. However in the event that you do want to help out:
* It would be nice the Japanese reference manual translated to have something based off official documentation, so feel free to fork the GitHub repository or just send translations to me by email and I'll add them
* Providing hosting so I have something to put the content management system on
* Recommendations for the content management system
* Volunteers to help with writing a tutorial revolving around the Koans ( this can sit on GitHub until the content management system goes up )
= Conclusion =
That does it for this long email proposal. If you have any questions feel free to email at this address, respond to this thread or throw me a tweet on Twitter (@cwgem).
Regards,
Chris White
Twitter: http://www.twitter.com/cwgem
[1]http://ruby-doc.org/core/
[2]http://doc.ruby-lang.org/ja/1.9.2/doc/index.html
[3]http://redmine.ruby-lang.org/projects/rurema
[4]http://rubykoans.com/
[5]https://github.com/cwgem/RubyJaReferenceManualTranslation