<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<p>Dear Lloyd,</p>
<p>Isn't this more about documentation than the code? What I am
reading is that you want to keep the old functions because you
don't understand how the new functions work. Shouldn't you rather
ask for a more clear documentation? Is there anything in the old
functions that is not supported in the new functions?</p>
<p>GrzegorzJ<br>
</p>
<br>
<div class="moz-cite-prefix">On 22/11/2017 19:43,
<a class="moz-txt-link-abbreviated" href="mailto:lloyd@writersglen.com">lloyd@writersglen.com</a> wrote:<br>
</div>
<blockquote type="cite"
cite="mid:1511379790.16757707@apps.rackspace.com"><font
face="arial" size="2">
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;">Dear Gods of Erlang,</p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;">"This module has been
reworked in Erlang/OTP 20 to handle <span class="bold_code
bc-15"><a
href="http://erlang.org/doc/man/unicode.html#type-chardata"
moz-do-not-send="true"><span class="code">unicode:chardata()</span></a></span>
and operate on grapheme clusters. The <span class="bold_code
bc-17"><a
href="http://erlang.org/doc/man/string.html#oldapi"
moz-do-not-send="true"><span class="code">old functions</span></a></span>
that only work on Latin-1 lists as input are still available
but should not be used. They will be deprecated in Erlang/OTP
21."</p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;">I'm sorry. I've brought up
this issue before and got lots of push back.</p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;">But every time I look up
tried and true and long-used string functions to find that
they are deprecated and will be dropped in future Erlang
releases my blood pressure soars. Both my wife and my doctor
tell me that at my age this is a dangerous thing.</p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;">I do understand the
importance and necessity of Unicode. And applaud the addition
of Unicode functions.</p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;">But the deprecated string
functions have a long history. The English language and
Latin-1 characters are widely used around the world. </p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;">Yes, it should be easy for
programmers to translate code from one user language to
another. But I'm not convinced that the Gods of Erlang have
found the optimal solution by dropping all Latin-1 string
functions.</p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;">My particular application is
directed toward English speakers. So, until further notice, I
have no use for Unicode.</p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;">I don't want to sound like
nationalist pig, but I think dropping the Latin-1 string
functions from future Erlang releases is a BIG mistake.</p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;">I look up tokens/2, a
function that I use fairly frequently, and I see that it's
deprecated. I look up the suggested replacement and I see
lexemes/2.</p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;">So I ask, what the ... is a
lexeme? I look it up in Merriam-Webster and I see that a
lexeme is "a meaningful linguistic unit." </p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;">Meaning what? I just want to
turn "this and that" into "This And That." </p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;">I read further in the Erlang
docs and I see "grapheme cluster." WHAT THE ... IS GRAPHEME
CLUSTER?</p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;">I look up "grapheme" in
Merriam-Webster. Oh it is now all so clear: "a unit of a
writing system."</p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;">Ah yes, grapheme is defined
in the docs. But I have to read and re-read the definition to
understand what the God's of Erlang mean by a "graphene
cluster." And I'm still not sure I get it.</p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;">It sounds like someone took
a linguistics class and is trying to show off.</p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;">But now I've spent 30
minutes--- time that I don't have to waste trying to figure
out how do a simple manipulation of "this and that." Recurse
the next time I want to look up a string function in the
Erlang docs.</p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;">SOLUTION</p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;">Keep the Latin-1 string
functions. Put them in a separate library if necessary. Or put
the new Unicode functions in a separate library. But don't
arbitrarily drop them.</p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;">Some folks have suggested
that I maintain my own library of the deprecated Latin1
functions. But why should I have to do that? How does that
help other folks with the same issue?</p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;">Bottom line: please please
please do not drop the existing Latin-1 string functions.</p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;">Please don't.</p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;">Best wishes,</p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;">LRP</p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;"> </p>
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;"> </p>
<!--WM_COMPOSE_SIGNATURE_START-->
<p style="margin:0;padding:0;font-family: arial; font-size:
10pt; overflow-wrap: break-word;"> </p>
<!--WM_COMPOSE_SIGNATURE_END--></font>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
<pre wrap="">_______________________________________________
erlang-questions mailing list
<a class="moz-txt-link-abbreviated" href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a>
<a class="moz-txt-link-freetext" href="http://erlang.org/mailman/listinfo/erlang-questions">http://erlang.org/mailman/listinfo/erlang-questions</a>
</pre>
</blockquote>
<br>
</body>
</html>