<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <body bgcolor="#ffffff" text="#000000">
    <br>
    <br>
    -------- Original Message --------
    <table class="moz-email-headers-table" border="0" cellpadding="0"
      cellspacing="0">
      <tbody>
        <tr>
          <th align="RIGHT" nowrap="nowrap" valign="BASELINE">From: </th>
          <td>- Tue Apr 28 09:49:20 2020</td>
        </tr>
        <tr>
          <th align="RIGHT" nowrap="nowrap" valign="BASELINE">X-Account-Key:
          </th>
          <td>account2</td>
        </tr>
        <tr>
          <th align="RIGHT" nowrap="nowrap" valign="BASELINE">X-UIDL: </th>
          <td>UID118322-1162353124</td>
        </tr>
        <tr>
          <th align="RIGHT" nowrap="nowrap" valign="BASELINE">X-Mozilla-Status:
          </th>
          <td>0015</td>
        </tr>
        <tr>
          <th align="RIGHT" nowrap="nowrap" valign="BASELINE">X-Mozilla-Status2:
          </th>
          <td>00000000</td>
        </tr>
        <tr>
          <th align="RIGHT" nowrap="nowrap" valign="BASELINE">X-Mozilla-Keys:
          </th>
          <td><br>
          </td>
        </tr>
        <tr>
          <th align="RIGHT" nowrap="nowrap" valign="BASELINE">Return-Path:
          </th>
          <td><a class="moz-txt-link-rfc2396E" href="mailto:luchiano@gmail.com"><luchiano@gmail.com></a></td>
        </tr>
        <tr>
          <th align="RIGHT" nowrap="nowrap" valign="BASELINE">Delivered-To:
          </th>
          <td><a class="moz-txt-link-abbreviated" href="mailto:juan@jvuletich.org">juan@jvuletich.org</a></td>
        </tr>
        <tr>
          <th align="RIGHT" nowrap="nowrap" valign="BASELINE">Received:
          </th>
          <td>from gator3294.hostgator.com by gator3294.hostgator.com
            with LMTP id GPIkCE6up16TpwcADDBpFA (envelope-from
            <a class="moz-txt-link-rfc2396E" href="mailto:luchiano@gmail.com"><luchiano@gmail.com></a>) for <a class="moz-txt-link-rfc2396E" href="mailto:juan@jvuletich.org"><juan@jvuletich.org></a>;
            Mon, 27 Apr 2020 23:17:18 -0500</td>
        </tr>
        <tr>
          <th align="RIGHT" nowrap="nowrap" valign="BASELINE">Return-path:
          </th>
          <td><a class="moz-txt-link-rfc2396E" href="mailto:luchiano@gmail.com"><luchiano@gmail.com></a></td>
        </tr>
        <tr>
          <th align="RIGHT" nowrap="nowrap" valign="BASELINE">Envelope-to:
          </th>
          <td><a class="moz-txt-link-abbreviated" href="mailto:juan@jvuletich.org">juan@jvuletich.org</a></td>
        </tr>
        <tr>
          <th align="RIGHT" nowrap="nowrap" valign="BASELINE">Delivery-date:
          </th>
          <td>Mon, 27 Apr 2020 23:17:18 -0500</td>
        </tr>
        <tr>
          <th align="RIGHT" nowrap="nowrap" valign="BASELINE">Received:
          </th>
          <td>from mail-ot1-f41.google.com ([209.85.210.41]:33940) by
            gator3294.hostgator.com with esmtps
            (TLSv1.2:ECDHE-RSA-AES128-GCM-SHA256:128) (Exim 4.92)
            (envelope-from <a class="moz-txt-link-rfc2396E" href="mailto:luchiano@gmail.com"><luchiano@gmail.com></a>) id
            1jTHgK-00288o-TO for <a class="moz-txt-link-abbreviated" href="mailto:juan@jvuletich.org">juan@jvuletich.org</a>; Mon, 27 Apr 2020
            23:17:18 -0500</td>
        </tr>
        <tr>
          <th align="RIGHT" nowrap="nowrap" valign="BASELINE">Received:
          </th>
          <td>by mail-ot1-f41.google.com with SMTP id 72so30403982otu.1
            for <a class="moz-txt-link-rfc2396E" href="mailto:juan@jvuletich.org"><juan@jvuletich.org></a>; Mon, 27 Apr 2020 21:17:11
            -0700 (PDT)</td>
        </tr>
        <tr>
          <th align="RIGHT" nowrap="nowrap" valign="BASELINE">DKIM-Signature:
          </th>
          <td>v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com;
            s=20161025;
            h=mime-version:references:in-reply-to:from:date:message-id:subject:to;
            bh=pXpviDmgvdtqsVE7v+Fqpfkk9Ex3XO8+6Q7HsgGu+j0=;
            b=haUBwlS/HlfLgc3nyh3d8ieK1CnXXkAW1Tq1uiU0L9aGXfeOzI3qUHUrSdJE3YoElV
            dA0Tf1EDsf8TarVY13G4OnbaH4KRy1uBK2p2Dy1/1/h9sGhYf98N96FEgZiiMx6We23k
            9p0SmLvWOET4GPlRScasVYPfZLnghJ8Z0U5uPMv9mtv0BtRF94a9/K8c/MACkDnYSzHV
            mAa9cv/FQ+aWPmnnHjuQOT0AQETIObDhORlBCdUt+JqAnuf/OD7ECZdvwJDRDW648+cZ
            b9n8q5+H9uh07Bmm1xAXjOaRxMLX9wqQ1WGbKLncgo0FVVApHQYcTc2MrNLT6tAXAEg3
            hbNw==</td>
        </tr>
        <tr>
          <th align="RIGHT" nowrap="nowrap" valign="BASELINE">X-Google-DKIM-Signature:
          </th>
          <td>v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net;
            s=20161025;
            h=x-gm-message-state:mime-version:references:in-reply-to:from:date
            :message-id:subject:to;
            bh=pXpviDmgvdtqsVE7v+Fqpfkk9Ex3XO8+6Q7HsgGu+j0=;
            b=RwGinnbpuHcyH/+Soazp2TIgoY9zYPfwXTGg8w5SDLDyUJ9gEjc+0dVZWAeSNW9A42
            hNgYS8NAVSK7iz1eXn3Z7gIomHInbIPVBU0lAnu9OtSvdKW1C8c944lej2pz1lhaMprL
            pVPIB0oqvIzGPbo+SWFa0MQlN7izj9NxWDT7NfGujvXdEnDV3Wqq8rDxew18y7LtMe1f
            Ilmdb/+55aQHV6T/3rka+FwvXOwotLjAua6l7QtG7jEKk7fokn6lPA0f728kfFUZhgqA
            D76SFlfFS20ZcUsTtNbcGffHPd14sNDRSF2hjCALBLRHqYMYCLfuVAZMw/0TQso1azbY
            CgMw==</td>
        </tr>
        <tr>
          <th align="RIGHT" nowrap="nowrap" valign="BASELINE">X-Gm-Message-State:
          </th>
          <td>AGi0Pua2suT/8FskJIKbCZemCz+D6gqVK0Dnccpv2M2BNh8XlZgtZuJG
            khMRCItHBUt0O5jpqcY5PBJ46pYaxwbxMXNmElua+A==</td>
        </tr>
        <tr>
          <th align="RIGHT" nowrap="nowrap" valign="BASELINE">X-Google-Smtp-Source:
          </th>
          <td>APiQypK7AygxBafixuAxVpOQpCbJbKYK2WoTK8hkjYA8Mgd7h7XYA8jCl81UFhwlSsEMK4Yp44m6LLhjvmZRorkcZ3U=</td>
        </tr>
        <tr>
          <th align="RIGHT" nowrap="nowrap" valign="BASELINE">X-Received:
          </th>
          <td>by 2002:a9d:544:: with SMTP id
            62mr21037441otw.165.1588047425133; Mon, 27 Apr 2020 21:17:05
            -0700 (PDT)</td>
        </tr>
        <tr>
          <th align="RIGHT" nowrap="nowrap" valign="BASELINE">MIME-Version:
          </th>
          <td>1.0</td>
        </tr>
        <tr>
          <th align="RIGHT" nowrap="nowrap" valign="BASELINE">References:
          </th>
          <td><a class="moz-txt-link-rfc2396E" href="mailto:1594F7B1-B606-4578-8067-72A662D15C44@gmail.com"><1594F7B1-B606-4578-8067-72A662D15C44@gmail.com></a>
            <a class="moz-txt-link-rfc2396E" href="mailto:f4df154ddb868367f5024fd3c2a70af8@whidbey.com"><f4df154ddb868367f5024fd3c2a70af8@whidbey.com></a>
            <a class="moz-txt-link-rfc2396E" href="mailto:5A6E7D79-E3B4-453C-8590-8479126475A1@gmail.com"><5A6E7D79-E3B4-453C-8590-8479126475A1@gmail.com></a>
            <a class="moz-txt-link-rfc2396E" href="mailto:CAD8yvAx07GS1c1Tspn9RnGq7=i04wd13nO3w4v44t4Cod3nKJw@mail.gmail.com"><CAD8yvAx07GS1c1Tspn9RnGq7=i04wd13nO3w4v44t4Cod3nKJw@mail.gmail.com></a>
            <a class="moz-txt-link-rfc2396E" href="mailto:CAL5GDypu3t92267NCPd7S6g6g55kBm5uAeEH89OFjpcazBChjg@mail.gmail.com"><CAL5GDypu3t92267NCPd7S6g6g55kBm5uAeEH89OFjpcazBChjg@mail.gmail.com></a>
            <a class="moz-txt-link-rfc2396E" href="mailto:5EA74C45.4060402@jvuletich.org"><5EA74C45.4060402@jvuletich.org></a></td>
        </tr>
        <tr>
          <th align="RIGHT" nowrap="nowrap" valign="BASELINE">In-Reply-To:
          </th>
          <td><a class="moz-txt-link-rfc2396E" href="mailto:5EA74C45.4060402@jvuletich.org"><5EA74C45.4060402@jvuletich.org></a></td>
        </tr>
        <tr>
          <th align="RIGHT" nowrap="nowrap" valign="BASELINE">From: </th>
          <td>Luciano Notarfrancesco <a class="moz-txt-link-rfc2396E" href="mailto:luchiano@gmail.com"><luchiano@gmail.com></a></td>
        </tr>
        <tr>
          <th align="RIGHT" nowrap="nowrap" valign="BASELINE">Date: </th>
          <td>Tue, 28 Apr 2020 11:16:54 +0700</td>
        </tr>
        <tr>
          <th align="RIGHT" nowrap="nowrap" valign="BASELINE">Message-ID:
          </th>
          <td><a class="moz-txt-link-rfc2396E" href="mailto:CAL5GDyr67soMWSuwNRt9uBG2Hoh_ft4wRu-Rkzx8LJv0RutivQ@mail.gmail.com"><CAL5GDyr67soMWSuwNRt9uBG2Hoh_ft4wRu-Rkzx8LJv0RutivQ@mail.gmail.com></a></td>
        </tr>
        <tr>
          <th align="RIGHT" nowrap="nowrap" valign="BASELINE">Subject: </th>
          <td>Re: [Cuis-dev] Naming conventions</td>
        </tr>
        <tr>
          <th align="RIGHT" nowrap="nowrap" valign="BASELINE">To: </th>
          <td>Juan Vuletich <a class="moz-txt-link-rfc2396E" href="mailto:juan@jvuletich.org"><juan@jvuletich.org></a></td>
        </tr>
        <tr>
          <th align="RIGHT" nowrap="nowrap" valign="BASELINE">Content-Type:
          </th>
          <td>multipart/alternative;
            boundary="000000000000a9619705a4521a5a"</td>
        </tr>
        <tr>
          <th align="RIGHT" nowrap="nowrap" valign="BASELINE">X-Spam-Status:
          </th>
          <td>No, score=-0.8</td>
        </tr>
        <tr>
          <th align="RIGHT" nowrap="nowrap" valign="BASELINE">X-Spam-Score:
          </th>
          <td>-7</td>
        </tr>
        <tr>
          <th align="RIGHT" nowrap="nowrap" valign="BASELINE">X-Spam-Bar:
          </th>
          <td>/</td>
        </tr>
        <tr>
          <th align="RIGHT" nowrap="nowrap" valign="BASELINE">X-Spam-Flag:
          </th>
          <td>NO</td>
        </tr>
      </tbody>
    </table>
    <br>
    <br>
    <div>
      <div dir="auto">Sounds great! But the convention</div>
      <div dir="auto">    `PackageName1@#ClassName` new</div>
    </div>
    <div dir="auto">looks a bit ugly to me, how about using upper case
      messages via the DNU mechanism? Say, a package PackageName1 is
      already a global in the Smalltalk system dictionary, then you can
      do send ClassName as a message to it:</div>
    <div dir="auto">    PackageName1 ClassName new</div>
    <div dir="auto">And regarding the back ticks, normally the compiled
      methods would have a reference to the association, but if you
      resolve it to a class at compile time and a class is replaced by a
      new one in the package, the compiled method outside would keep the
      reference to the old class.</div>
    <div><br>
      <div class="gmail_quote">
        <div dir="ltr" class="gmail_attr">On Tue, 28 Apr 2020 at 4:19
          AM, Juan Vuletich <<a moz-do-not-send="true"
            href="mailto:juan@jvuletich.org">juan@jvuletich.org</a>>
          wrote:<br>
        </div>
        <blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt
          0.8ex; border-left: 1px solid rgb(204, 204, 204);
          padding-left: 1ex;">
          <div bgcolor="#ffffff" text="#000000"> Hi Folks,<br>
            <br>
            On 4/27/2020 12:52 PM, Luciano Notarfrancesco via Cuis-dev
            wrote:
            <blockquote type="cite">
              <div>
                <div dir="auto">I also dislike prefixes a lot. But
                  fortunately name clashes are less common in Cuis
                  because there are not as many classes as in Pharo.
                  Personally, I’d love to have namespaces, or have class
                  names be local to a package.</div>
              </div>
            </blockquote>
            <br>
            Ok, this got me thinking. So, what would it take to do just
            that?<br>
            <br>
            We could make each package be a namespace. That means that
            classes that are defined in a package will not be globals.
            But, any package declaring a prerequisite would also behave
            as if in Python you did 'From package import *'. So, the
            compiler would know that it is compiling some code for some
            package, and it would try to find class names in all
            packages that were declared as prerequisites.<br>
            <br>
            This would have the added benefit that the compiler would
            check for you that you actually declared prerequisites. Code
            not in a package would not have access to classes defined at
            any package.<br>
            <br>
            Usually, there would be no need to specify namespaces when
            accessing 'globals', even if they belong in a different
            package/namespace. Just declaring the prerequisites for your
            package just once, will do. The only case where explicit
            call for a namespace would be needed, is if you ask two
            prerequisites, they both define classes with the same name,
            and there is ambiguity. In such casses something like:<br>
            a := `Smalltalk@#PackageName1@#ClassName` new.<br>
            b := `Smalltalk@#PackageName2@#ClassName` new.<br>
            would work as expected. See that class resolution is done at
            compile time because of the use of backticks. So there's no
            performance penalty. Also, there's no new syntax!<br>
            <br>
            If we add package names to the Smalltlak global namespace,
            then we could also do:<br>
            a := `PackageName1@#ClassName` new.<br>
            b := `PackageName2@#ClassName` new.<br>
            <br>
            Again, this is only when the case is that you decided to
            depend on two different packages that happen to clash. So,
            you are already aware of the situation. This would never get
            in your way when good old Smalltalk would do!<br>
            <br>
            There's some work to be done in Browsers and other tools,
            but I feel it is not too much...<br>
            <br>
            Also note that I'd not include nested namespaces, just like
            we don't have nested packages. I'd also avoid having
            namespaces as a separate thing from packages. I'd have a
            single concept for both. So, it would be simpler than what
            is available in other Smalltalks that support namespaces.<br>
            <br>
            Does this make sense? I am missing something?<br>
            <br>
            Thanks,</div>
          <div bgcolor="#ffffff" text="#000000"><br>
            <pre cols="72">-- 
Juan Vuletich
<a moz-do-not-send="true" href="http://www.cuis-smalltalk.org" target="_blank">www.cuis-smalltalk.org</a>
<a moz-do-not-send="true" href="https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev" target="_blank">https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev</a>
<a moz-do-not-send="true" href="https://github.com/jvuletich" target="_blank">https://github.com/jvuletich</a>
<a moz-do-not-send="true" href="https://www.linkedin.com/in/juan-vuletich-75611b3" target="_blank">https://www.linkedin.com/in/juan-vuletich-75611b3</a>
@JuanVuletich</pre>
            <br>
            <blockquote type="cite">
              <div><br>
                <div class="gmail_quote">
                  <div dir="ltr" class="gmail_attr">On Mon, 27 Apr 2020
                    at 10:46 PM, giorgio ferraris via Cuis-dev <<a
                      moz-do-not-send="true"
                      href="mailto:cuis-dev@lists.cuis.st"
                      target="_blank">cuis-dev@lists.cuis.st</a>>
                    wrote:<br>
                  </div>
                  <blockquote class="gmail_quote" style="margin: 0pt 0pt
                    0pt 0.8ex; border-left: 1px solid rgb(204, 204,
                    204); padding-left: 1ex;">
                    <div dir="ltr">Hello, 
                      <div>prefixes have a long story, in use also on
                         VisualSmalltalk or SmalltalkV long, long time
                        ago. Not having namespaces on many Smalltalk
                        dialects makes prefix the only (ugly) solution.
                        <div>The resulting names are horrible, I
                          personally dislike it a lot, but class' names
                          clashing is something that could easily
                          happens.</div>
                        <div><br>
                        </div>
                        <div>ciao</div>
                      </div>
                    </div>
                    <div dir="ltr">
                      <div>
                        <div><br>
                        </div>
                        <div>giorgio</div>
                        <div><br>
                        </div>
                        <div><br>
                        </div>
                      </div>
                    </div>
                    <br>
                    <div class="gmail_quote">
                      <div dir="ltr" class="gmail_attr">On Mon, Apr 27,
                        2020 at 5:34 PM Erik Stel via Cuis-dev <<a
                          moz-do-not-send="true"
                          href="mailto:cuis-dev@lists.cuis.st"
                          target="_blank">cuis-dev@lists.cuis.st</a>>
                        wrote:<br>
                      </div>
                      <blockquote class="gmail_quote" style="margin: 0px
                        0px 0px 0.8ex; border-left: 1px solid rgb(204,
                        204, 204); padding-left: 1ex;">Hi Ken,<br>
                        <br>
                        I think you just answered my question ;-).<br>
                        <br>
                        It can indeed be a Pharo ’thing’. In Pharo
                        (default image) you have class names like
                        ’ZnWebSocket’. It represents a WebSocket and
                        comes from the ‘Zinc’ framework. I think it
                        coexisted with WebSocket for some time (the
                        later is no longer part of the default Pharo
                        image). Also ‘MCPackage’ is a package from
                        Monticello (the versioning system). A full name
                        like ‘MonticelloPackage’ would have solved that
                        issue of name conflict I suppose.<br>
                        <br>
                        Regards,<br>
                        Erik<br>
                        <br>
                        <br>
                        > On 27 Apr 2020, at 17:13, <a
                          moz-do-not-send="true"
                          href="mailto:ken.dickey@whidbey.com"
                          target="_blank">ken.dickey@whidbey.com</a>
                        wrote:<br>
                        > <br>
                        > On 2020-04-27 07:28, Erik Stel via Cuis-dev
                        wrote:<br>
                        >> Hi,<br>
                        >> Short question:<br>
                        >> Also using Pharo, I’m used to creating
                        classes with prefixed names<br>
                        >> because of possible name collisions.
                        What is the Cuis take on these<br>
                        >> prefixes? I do not see any prefixes
                        being used in the<br>
                        >> packages/features I’m using at the
                        moment.<br>
                        >> Regards,<br>
                        >> Erik<br>
                        > <br>
                        > Examples?<br>
                        > <br>
                        > What is the context?<br>
                        > <br>
                        > Not being a Pharo user, I have no idea what
                        you are talking about.<br>
                        > <br>
                        > Typically, one wants to use meaningful
                        names in a way that orients one and makes code
                        reads like sentences.<br>
                        > <br>
                        > Note that the base Cuis image typically has
                        between 500 and 600 classes.  The latest Pharo
                        base image has over 9000 classes.  Perhaps the
                        (pre)fix is for a Pharo problem..<br>
                        > <br>
                        > -KenD<br>
                        > <br>
                        <br>
                        -- <br>
                        Cuis-dev mailing list<br>
                        <a moz-do-not-send="true"
                          href="mailto:Cuis-dev@lists.cuis.st"
                          target="_blank">Cuis-dev@lists.cuis.st</a><br>
                        <a moz-do-not-send="true"
                          href="https://lists.cuis.st/mailman/listinfo/cuis-dev"
                          rel="noreferrer" target="_blank">https://lists.cuis.st/mailman/listinfo/cuis-dev</a><br>
                      </blockquote>
                    </div>
                    -- <br>
                    Cuis-dev mailing list<br>
                    <a moz-do-not-send="true"
                      href="mailto:Cuis-dev@lists.cuis.st"
                      target="_blank">Cuis-dev@lists.cuis.st</a><br>
                    <a moz-do-not-send="true"
                      href="https://lists.cuis.st/mailman/listinfo/cuis-dev"
                      rel="noreferrer" target="_blank">https://lists.cuis.st/mailman/listinfo/cuis-dev</a><br>
                  </blockquote>
                </div>
              </div>
            </blockquote>
            <br>
          </div>
        </blockquote>
      </div>
    </div>
  </body>
</html>