<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-forward-container">
      <p>[Repost of the <a
          href="https://blog.selflanguage.org/2016/06/18/improvement-proposals/"><a class="moz-txt-link-freetext" href="https://blog.selflanguage.org/2016/06/18/improvement-proposals/">https://blog.selflanguage.org/2016/06/18/improvement-proposals/</a></a>]<br>
      </p>
      <p>I would like to spur discussion about structure of the project
        and also about the community, its organization and knowledge
        bases. I believe that this discussion is really important for
        the future of Self development.</p>
      <p><span id="more-345"></span></p>
      <p>Self is open source, which is important, but not sufficient
        condition to thrive. Open source success is only partially given
        by the license, but more importantly by the community of people
        around projects. In the end, it is the people what makes all the
        difference.</p>
      <p>Self has somehow sleeping community, which I think is partially
        because we don’t have good tools for communication and
        self-organization.</p>
      <p>Here is what I think that would be useful:</p>
      <h2>Official Github organization</h2>
      <p>Github allows to create „organizations“, which is used to group
        multiple projects under one „official“ entity.</p>
      <p>Current state of Self on Github is confusing, especially for
        newcomers. From what I understand, „official“ repository is the
        one in Russel Allen’s personal account, but there is no „THIS IS
        OFFICIAL REPOSITORY, CONTRIBUTE HERE“ sign. People have to
        figure this on their own and hope that they didn’t figure it
        wrong.</p>
      <p>I would also recommend to split the Self repository into
        several smaller, single-purpose-oriented repositories. For
        example: separate the handbook, and maybe application directory
        (git can <a moz-do-not-send="true"
href="http://gbayer.com/development/moving-files-from-one-git-repository-to-another-preserving-history/">do
          this</a> without the loss of history).</p>
      <p>It would be probably good idea to decide if we want to allow
        anyone to access this „organization“ and to let anyone add their
        own application repositories. This would simplify the discovery
        of available Self software. Other possibility is to use it only
        for „official“ stuff and „syndicate“ Self packages somewhere
        else (wiki or package repository).</p>
      <h3>Talking to the people</h3>
      <p>We need to start to talk to the people. This is a problem that
        all smaller projects have; there is too much context in your
        head (this is relevant to the <em>bus factor</em> from <a
          moz-do-not-send="true"
href="https://blog.selflanguage.org/2016/06/15/lessons-learnt-from-the-self-archive/">previous
          blog</a>).</p>
      <p>The „THIS IS OFFICIAL REPOSITORY, CONTRIBUTE HERE“ sign is
        the classical example of the context that everyone from the
        mail-list have. It was posted few times into Self conference,
        but for anyone coming outside the Self community, this is really
        hard to figure. You have to talk to people, or they won’t know.</p>
      <p><a moz-do-not-send="true"
          href="https://github.com/russellallen/self/wiki">The Self wiki</a>
        is another example of this problem. There is no sign that there
        actually is a wiki. I suggest to put a BIG animation with
        dancing <del>whores</del> ladies with „HELLO FRIENDS, YOU ARE
        WELCOME HERE AND WE WANT YOUR CONTRIBUTION“ sign in their hands
        to the README and to the homepage.</p>
      <p>If you want something from the people (eg. contribution), you
        have to tell them. They are not mindreaders and they won’t
        engage without knowing that it is ok to engage.</p>
      <p>For example, I pushed a lot of typo and RST formatting fixes to
        the Self Handbook / Russel Allen’s git repository and I felt
        really uneasy doing this. Is it okay to contribute? Is it okay
        to make changes in someone else’s work?</p>
      <h2>Community WIKI</h2>
      <pre>15.12.2010, 09:55 Thorsten Dittmar written:
hello folks,

for me self is still one of the most beautiful languages I know, but the lib's are not so shapelily. So we have a kind of an Ugly Duckling here... a lady with amazing intrinsic values and horrible "lips"... 

Of course, we can start with some cosmetics.. We can change the UI and other stuff, but for me that doesn't look like the right way... Self has so many unfinished stuff, that I guess we will not make it better to open another bottle.</pre>
      <p>What is <i>„unfinished stuff“</i>? What is the state of Self?
        Where is the FAQ? Where is the screenshot section? Where is
        community knowledge base? Where is documentation? Where is the
        detailed description of VM? Where do you collect information?</p>
      <p>Currently, only way to get a clear idea about Self and its
        state is to <a moz-do-not-send="true"
href="https://blog.selflanguage.org/2016/06/09/self-mail-conference-in-mbox/">read
          the mail archive</a> and the 115 thousands lines of C++
        sources. Mail archive is the worst possible database for this
        kind of stuff. Not only that history is not easily accessible
        for newcomers, it also cannot be edited and improved. Also
        attachments don’t work much.</p>
      <p>We need good community Wiki, where we can:</p>
      <ul>
        <li>collect information about Self</li>
        <li>document the VM</li>
        <li>document aspects of programming in Self
          <ul>
            <li>It is really hard to find any source code to study.
              There are applications in Self’s git repository, but it
              took me 6 months to notice. Again, there is no signs
              pointing to this.</li>
          </ul>
        </li>
        <li>discuss various stuff about Self, ideas, improvements,
          highlights and so on</li>
        <li>document what is in bad shape, what needs to be done and
          plan future work</li>
        <li>provide user’s sections
          <ul>
            <li>Something like a blog, but for all kinds of data, files,
              snippets and information related to Self, that user’s may
              save for benefit of themselves and others.</li>
            <li>This need to be under user’s control.</li>
          </ul>
        </li>
        <li>have user profiles – some small section, where you may
          shortly introduce yourself and maybe tell others what you do
          <ul>
            <li>It is hard to tell who is working on the Self and what
              are they doing. Again – this is context information which
              are not available.</li>
          </ul>
        </li>
        <li>collect list of links to all relevant Self information
          sources
          <ul>
            <li>I am willing to do this and maintain this section.</li>
          </ul>
        </li>
        <li>collect list of links to Self alternative interpreters and
          inspired languages
          <ul>
            <li>I partially did this in previous blog.</li>
          </ul>
        </li>
        <li>tell people how to contribute, where to contribute and other
          community information
          <ul>
            <li>Viz „Talking to the people“.</li>
          </ul>
        </li>
      </ul>
      <p>Wiki is important part of the plan to increase the Self’s bus
        factor (see previous blog). It also helps people (newcomers
        especially) to put themselves into perspective of what Self is,
        how to interact with community and how to contribute.</p>
      <p>I am willing to be maintainer of this Wiki. I don’t really want
        to, but I have strong feeling, that if I am not going to do it,
        nobody will.</p>
      <h3>Github wiki</h3>
      <p>I don’t think it is a good idea to use this specific wiki
        software, because to me, it looks like it is seriously limited
        in capabilities.</p>
      <p>I like, that it uses the Git for synchronization, but I feel,
        that we will need something more advanced. Something that will
        be able to host large variety of content, categories and
        discussions. When I think about it, I see it like the hybrid
        between the <a moz-do-not-send="true"
          href="http://c2.com/cgi/wiki/FrontPage">c2 wiki</a> and
        Wikipedia.</p>
      <p>I don’t expect anyone to come with clear solutions, but I think
        that we need to talk about this and look at alternatives. What
        do you think?</p>
      <h2>Package repository</h2>
      <p>One of the services, which I think is critical for success of
        any language is the package repository and package manager.</p>
      <p>I am not that sure how easily this may be done for Self, but I
        am 100% sure, that this is necessary for larger adoption;</p>
      <p>We need to give people the tool, which will allow them to build
        applications on top of other people libraries. Not just that –
        also the place where we can discover new libraries and projects,
        instead of having them scattered all over the Internet.</p>
      <p>I have a lot of experiences with Python and believe me when I
        say, that this is big win for the language and big reason to use
        it.</p>
      <h2>Community decision</h2>
      <p>I know, that Self was a research language, and partially
        probably still is. I will impersonate the Generic Beginner* and
        speak using his voice, when I say:</p>
      <blockquote>
        <p>I think that after 26 years, it is time to make up your mind.
          How do you perceive Self? What is it to you? Do you take Self
          seriously, or is this just a game?</p>
        <p>I can’t build a product on Self in its current state. I can’t
          afford to wait decades for improvements. I need to know,
          whether I can count on you (the community).</p>
        <p>I may put my time and/or resources into Self, but I need to
          know that I won’t be wasting my time, and that I am not alone.</p>
      </blockquote>
      <p>I want to know your opinion. It may be clear in your head, but
        again – if you don’t talk to the people, they won’t know.</p>
      <p>For me, this is NOT a game.</p>
      <p>What about you?</p>
      <p>*Not necessarily my opinion, but I think it comes to mind of
        all newcomers looking at Self and thinking „hey, this looks
        nice, should I use it?“</p>
      <p><!--     Written in CherryTree, converted to HTML by cherrytree2html.py     - http://www.giuspen.com/cherrytree/     - https://github.com/Bystroushaak/cherrytree2html.py --></p>
    </div>
  </body>
</html>