unity-design team mailing list archive
-
unity-design team
-
Mailing list archive
-
Message #08668
Re: Make design/testing contribs easier by providing better API docs earlier.
On 03/08/2012 03:47 AM, Jo-Erlend Schinstad wrote:
Obviously, in order to create a good design, you have to know to a
certain degree where you're going in advance. However, I don't think
it's possible to anticipate everything. For a design to really shine,
I think it needs to be toyed with and stretched as much and as soon as
possible. I think this is particularly important for addons, such as
lenses, appindicators and system indicators. Two things might happen;
either you prove that the design is sound, or you'll find examples of
things that can't be done in the current design. In that case, you'll
have hard evidence of things that doesn't work well. Then it must be
decided if the design should be altered to accommodate (which is
easier when you have actual code to reproduce issues), or if the
limitations should be accepted. In any case, I would consider this
important data to have as early as possible.
Now, playing with Unity technologies is anything but easy. API docs
are scarse and when they exist, it's not easy to know which to use or
how to use them. There are some blog entries out there, but since the
tools are difficult to learn, there's not many of those either. On
developer.ubuntu.com, the newest API docs I can find for using Unity
with Python, is
http://developer.ubuntu.com/api/ubuntu-11.10/python/Unity-4.0.html.
Does that mean that the API is in version 4.0, or that it is for Unity
4.0? In that case, does it mean it's no longer usable with Unity 5.4?
This is one example of things that makes it difficult to learn Unity
tools. I don't know if or how much Unity APIs have changed since Unity
4.0. But it sounds like it may be a lot. I find it difficult to
motivate myself to learn how to use an API on the odd chance that it
might not be completely useless. This means I can't test my wild ideas
in practice, which means I can't provide as much feedback as I
otherwise would and should.
I would propose, and politely ask, that in the future, when there is a
new version of Unity, even if the APIs haven't changed, that they get
their versions bumped to be the same as Unity itself. If there are no
changes since the last version, then the docs should just say so in
the beginning. If there are changes, then they should be highlighted
like "Changed since version xx".
This would make it very much easier to navigate the jungle. But if
documentation is also written ahead of the implementation, then it
also becomes much easier for "outsiders" to help write automated
tests, for instance. That might help core developers focus on what
they're good at, and is a relatively easy way to contribute useful
code to Unity. When Unity is released, we will already have more
people who really understands how things work, which means better
support for new developers, but also users in general. And, of course,
by release, we'll have more addons and cool stuff for users to play
with, which helps promote Unity in general.
Does it make sense, and is it something you'll be willing to consider
in the future?
Thanks for reading :)
Another good thing about documentation in general is that when an expert
(developer, designer, architect or whomever) articulates their vision
(e.g. a plan), achievement (e.g. a working API), or guidance (examples
and guidelines) it probably means the quality of what they have done is
much higher -- because they have given careful thought to their end user.
Design & developer documentation (including API documentation) is an
effective channel for expert to expert communication -- people on the
one hand who have created something of value and on the other those who
are going to use it.
Kevin
References