<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Feb 24, 2014 at 2:47 PM, Norbert Hartl <span dir="ltr">&lt;<a href="mailto:norbert@hartl.name" target="_blank">norbert@hartl.name</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><br><div><div>Am 24.02.2014 um 23:09 schrieb Eliot Miranda &lt;<a href="mailto:eliot.miranda@gmail.com" target="_blank">eliot.miranda@gmail.com</a>&gt;:</div>
<div class="im"><br><blockquote type="cite"><div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Feb 24, 2014 at 1:58 PM, Norbert Hartl <span dir="ltr">&lt;<a href="mailto:norbert@hartl.name" target="_blank">norbert@hartl.name</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><br><div><div>Am 24.02.2014 um 22:19 schrieb Eliot Miranda &lt;<a href="mailto:eliot.miranda@gmail.com" target="_blank">eliot.miranda@gmail.com</a>&gt;:</div>
<div><blockquote type="cite">
<br style="font-family:HelveticaNeue;font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">

<div class="gmail_quote" style="font-family:HelveticaNeue;font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">

On Mon, Feb 24, 2014 at 12:29 PM, Alexandre Bergel<span dir="ltr">&lt;<a href="mailto:alexandre.bergel@me.com" target="_blank">alexandre.bergel@me.com</a>&gt;</span><span>&nbsp;</span>wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

Would be great to have: &lsquo;ConfigurationOfRoassal&rsquo; chopCamel &nbsp;=&gt; #(&lsquo;Configuration&rsquo; &lsquo;Of&rsquo; &lsquo;Roassal&rsquo;).<br></blockquote><div><br></div><div>&#39;ConfigurationOfRoassal&#39; &nbsp;piecesCutWhere: [:a :b| a isLowercase and: [b isUppercase]] an OrderedCollection(&#39;Configuration&#39; &#39;Of&#39; &#39;Roassal&#39;)</div>

<div><br></div><div>It&#39;s too trivial, surely.</div><div>&nbsp;</div></div></blockquote></div>No it is not. Because you have to know about it. Thanks for that one.&nbsp;</div><div><br></div><div>&quot;I learned something today[tm]&ldquo;</div>

</div></blockquote><div><br></div><div>But the real things to learn are the Method Finder and the browser. &nbsp;Adding a lot of names that are known to those that know some scripting language du jour, but are incomprehensible to me, and no doubt many others, is not doing anything for anybody, except trying to be pointlessly cool. &nbsp;Trying to encourage programmers to use the ability of the system to self-introspect and self-document is giving them general skills they can build upon. &nbsp;So a project to improve the UI so that programmers are led to tools they can use for discovery seems worth-while to me, while adding yet more short-hand to hand-hold the ignorant isn&#39;t helping, IMHO.</div>

<div><br></div></div></div></div></blockquote></div>I agree that adding a lot of names is not helping because that might be the reason I didn&rsquo;t know that selector. What kind of selectors are the right ones I&rsquo;m not the one to judge. But to be honest if I think about a collection the selector #piecesCutWhere: is not intuitive to me, too. So I&rsquo;m glad you brought that to my attention.&nbsp;</div>
</div></blockquote><div><br></div><div>I get that. &nbsp;All naming is difficult. &nbsp;That there are many different ways to say the same thing in natural language is I think a common problem to many languages, especially English. &nbsp;Just remember the last time you tried to do some free text search for some phrase. &nbsp;Takes me ages to find old messages in email. &nbsp;So even if method is well-named, it likely has only one of a number of plausible good names. &nbsp;And if it has a usefully short nickname (look at unix and lisp, cat &amp; cdr etc) then it must likely be learned by rote.</div>
<div><br></div><div>So the issue is not naming; it is how to /find/ functionality. &nbsp;And so in Smalltalk the issue is how to encourage programmers to go find things. &nbsp;The MessageFinder is amazing. &nbsp;But people don&#39;t use it. &nbsp;If they did no one would be proposing to add chomp to the standard library.</div>
<div><br></div><div>&lt;old man alert&gt;When I learnt Smalltalk there were several factors that made it easy for me to learn. &nbsp;It was much smaller. &nbsp;I thought it was cool. &nbsp;I had the time to learn it. &nbsp;But when I learnt it the browser was simple, refactoring hadn&#39;t been invented, there was no MethodFinder, and there was almost _no_ documentation. &nbsp;Basically I learnt it by playing with it, exploring it, reading it, building it.&lt;/old man alert&gt;</div>
<div><br></div><div>So why aren&#39;t people taking the time to learn it today? &nbsp;Is it the system&#39;s fault? &nbsp;Is it too big? &nbsp;Are the readable parts of the system non-existent, or too difficult to find? &nbsp;Is it some cultural change that means people can&#39;t learn such systems any more? Was it only learnable by a few people back in the day and it remains unsuitable for a mass audience? &nbsp;Is it impossible to design user interfaces that invite exploration? &nbsp;Do people no longer want to play with the system but instead want to use it to get something done fast, and can&#39;t spare the time to learn it properly? &nbsp;Are computing languages like English, and every programming language must adopt the conventions and vocabulary of the most popular? &nbsp;Is inheritance too hard to navigate to discover that SequenceableCollection has lots of useful String mehtods, and some useful methods on ByteString are in String, etc?</div>
<div><br></div><div>I think suggestions that one add functionality that already exists in the system point to some interesting issues. &nbsp;And I think someone with an HCI or UI bent might get somewhere approaching these questions systematically.</div>
<div><br></div><div>&nbsp;&nbsp;</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div>thanks again,<br></div></div></blockquote><div><br></div>
<div>you&#39;re welcome :-)</div><div>&nbsp;</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div><br></div><div>Norbert</div><div><div class="h5">
<div><br><blockquote type="cite"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">
<span><font color="#888888"><div><br></div><div>Norbert</div>
</font></span><div><div><br><blockquote type="cite"><div class="gmail_quote" style="font-family:HelveticaNeue;font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><br>Alexandre<br><div><br><br>On Feb 24, 2014, at 2:30 PM, Daniela Meneses &lt;<a href="mailto:daniela11290@gmail.com" target="_blank">daniela11290@gmail.com</a>&gt; wrote:<br>

<br>&gt; Hi to all,<br>&gt;<br>&gt; As you may know I&#39;m working on in some improvements for the String class. Until now I implemented some missing tests. Right now I&#39;m looking forward to add new methods that could be useful based on Ruby API (<a href="http://www.ruby-doc.org/core-2.1.0/String.html" target="_blank">http://www.ruby-doc.org/core-2.1.0/String.html</a>). These are a few of the methods that I&#39;m planning to implement:<br>

&gt;<br>&gt; &nbsp; &nbsp; &nbsp; &bull; chomp(separator=$/) -&gt; new_str<br>&gt; &nbsp; &nbsp; &nbsp; &bull; chop() -&gt; new_str<br>&gt; &nbsp; &nbsp; &nbsp; &bull; ljust(integer, padstr=&#39;&#39;) -&gt;new_str<br>&gt; &nbsp; &nbsp; &nbsp; &bull; next -&gt; new_str<br>&gt; &nbsp; &nbsp; &nbsp; &bull; partition(sep) -&gt; [head, sep, tail]<br>

&gt;<br>&gt; Could you help to find out if these methods are already available for the String class?<br>&gt;<br>&gt; If you have any idea of new methods for the string class, will be really welcome.<br>&gt;<br>&gt; --<br>

&gt; Cheers,<br>&gt; Daniela Meneses<br><br></div><span><font color="#888888">--<br>_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:<br>Alexandre Bergel &nbsp;<a href="http://www.bergel.eu/" target="_blank">http://www.bergel.eu</a><br>

^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.<br><br><br><br><br></font></span></blockquote></div><br style="font-family:HelveticaNeue;font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">

<br clear="all" style="font-family:HelveticaNeue;font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">

<div style="font-family:HelveticaNeue;font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">

<br></div><span style="font-family:HelveticaNeue;font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;float:none;display:inline!important">--<span>&nbsp;</span></span><br style="font-family:HelveticaNeue;font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">

<span style="font-family:HelveticaNeue;font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;float:none;display:inline!important">best,</span><div style="font-family:HelveticaNeue;font-size:16px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px">

Eliot</div></blockquote></div><br></div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br>best,<div>Eliot</div>
</div></div>
</blockquote></div><br></div></div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br>best,<div>Eliot</div>
</div></div>