= 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
- Most likely I’ll start by doing a port of the Ruby Koans [4] to a
- 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 W.
Twitter: http://www.twitter.com/cwgem
[1]RDoc Documentation
[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]GitHub - cwgem/RubyJaReferenceManualTranslation: A translation of the Japanese Ruby Reference Manual at http://doc.ruby-lang.org/ja/1.9.2/
