Description
Context
So, I spent the past week (or two?) reading through a lot of different sources. Many of these sources were created/written/said sometime in the year 2018. So, some of what they say might be outdated and we have not yet gotten formation from some sources of data (i.e. #31).
That being said, when we first started this effort, we presupposed something that I'd like to bring front and forward:
We need to improve PS documentation/onboarding process now, not later
Due to what I know/infer now, I'd like to challenge this presupposition by asking 'why?'
Reasons
There's a few things that come to mind:
- Garyb stated a few things over a number of sources
- they are currently prioritizing the language's development over things like documentation
- people misunderstand a
v1.0
language to be the same as av1.0
ecosystem, which it is not. This is why he is hesitant about releasing av1.0
language.
- Phil Freeman stated that he did not want to update the Book because
- the cost of time/energy to update it is quickly undone by breaking changes (which is quickly demoralizing)
- there is no specification towards which the language is being developed, making it hard to know when he should 'start' updating it in time for a
v1.0
- The PRs that do get reviewed for various documentation efforts don't necessarily get merged in a timely manner
- There is generally no incentive for someone who knows enough to write good documentation to actually write good documentation.
- Often times, there are many "good things" people can do. However, the thing which distinguishes "successful" people/businesses/efforts is working on the "overall best" things rather than the "enjoyable" things. In other words, one must always consider the opportunity cost
In other words, there is no mutual understanding as to what a v1.0
will be, such that we know, "If we start at time X, working on documentation while contributors work on the language in parallel, then the v1.0 of the language and our v1.0 of some documentation/onboarding process will be complete around the same time."
Moreover, if we do submit documentation PRs, we might actually act as a bottleneck to the PS language contributors: rather than developing the language and moving it closer to a v1.0
, we're stealing their precious time away by making them review documentation PRs. By having less time to work on the language, it actually does more to delay a v1.0
where such documentation would not become outdated as quickly.
Furthermore, we currently have a number of people who want to see this language succeed. Alex, myself, and a few others would like the documentation situation to improve. Others have offered to take over the maintainership of some PS infrastructure. While we may have the manpower to do work for the benefit of the community, is this documentation work the kind of work that we can do now that will benefit the community the most in the long-term? Considering other things we could do (develop libraries that solve problems), would doing this other work be more beneficial long-term than doing the documentation work?
Lastly, I need to take a step back and consider my own personal incentive for this. I want but do not yet have a full-time programming job. Since I do not have a CS degree, the only 'proof' I can provide that I know how to write good code is by building a portfolio of various projects. Given the amount of time/effort that this documentation effort will take, I question whether I would stick with it for that long.
Remaining Questions
So, what I would like to ask is, "Should we still continue this effort at this time? Will the resources we invest into this effort (e.g. time, mental energy, collaboration with others, etc.) be worth its return (better documentation, onboarding process, etc.) given that we are in this current context?"
Another way to phrase the above question is, "How can we continue this work while accounting for the above issues?"
Or if we find that we cannot account for the above issues at this time and that we should not continue the effort now, "How can we 'save' the work we have already done to make re-starting this effort in the future "easier?"