Re: Do you believe that the Plain English language is better than Ruby language?

Quantum Robin <[email protected]>
Newsgroups gmane.comp.lang.ruby.general
Message-ID <CAAgF1U83Hq+HjCNEW2m+bqg+p_g=8M62se0FF7Y_wo9CpgFSsg@mail.gmail.com>
On Tue, Feb 19, 2019 at 9:42 AM Paul Robinson <[email protected]> wrote:

> On 19 Feb 2019, at 11:09, Quantum Robin <[email protected]> wrote:
>
> > Do you believe that the Plain English language is better than Ruby
> language?
>
>
> This feelies like trolling, but there might be an interesting point about
> the nature of natural vs programming languages here, so I'll reluctantly
> engage: no, I don't.
>
>
> > If not, why not?
>
>
> Natural languages are not suitable for programming machines, because they
> lack direct succinctness and have too much openness to interpretation to be
> useful.
>
> English is one of the most complex languages in the World to learn for a
> non-native speaker.
>
> There are many reasons for this including lexical ambiguity. The same word
> meaning different things - at the extreme, "set" has over 450 different
> meanings in the Oxford English Dictionary, for example - whilst in Ruby it
> has one meaning given at
> https://ruby-doc.org/stdlib-2.6.1/libdoc/set/rdoc/Set.html
>
> What would 'Set' mean in your Plain English language? You're going to have
> to choose one of those 450 meanings, or you're going to have to do what
> English does: the context infers the meaning. Can you imagine how complex
> that becomes? How many bugs that this is going to create?
>
> You might argue I've chosen an extreme example, but linguists tell us many
> natural languages have an average of 2.805 +/- 0.005 meanings per word [1],
> so you are going to have to face up to this problem sooner rather than
> later.
>
> I mean the name of your language itself is confusing: at first I thought
> you meant the natural language, or the version the Plain English Campaign
> suggests is used, not an actual programming language. The problem is
> recursive even in your example.
>
> Then there are homophones: words that sound identical but don't have the
> same meaning: two, too and to for example. When I'm pairing with somebody
> and I describe a solution, I don't want to have to clarify. I want to
> reduce the number of homophones in my programming language to make
> collaboration over a keyboard or a coffee or whiteboard easier.
>
> Next up is synonymy where multiple words mean roughly the same thing:
> like, favour, admire, enjoy, love, etc. - which one do I use here in this
> context? Are all of them acceptable, or do they all have different meanings?
>
> Let's now add to the small mountain of issues spelling differences. Do I
> express colours or colors? Do I sanitise input or sanitize it?
>
> If you don't fix ALL of these problems, you have a language that is harder
> to work with than Ruby, but without the maturity of it as an environment.
>
> This is just the tip of the iceberg. English is so vast, so vague, so
> complicated, that it lends itself to human expression brilliantly, but it
> also sits at the root cause of many disagreements. How many times have you
> had an "argument" where you later realised you and your opponent were
> actually in ardent agreement just phrasing the problem and the solution
> slightly differently?
>
> Why would you want to replicate any of that in a programming language
> where we require precise meanings?
>
> "Ah!", you say, "we've thought of all this. We use a subset of English".
>
> Great, and so do we: it's called Ruby.
>
> Let's look at some of your sample code:
>
>   To create some works given a buffer:
>     Destroy the works.
>     Put nil into the current work.
>     Slap a rider on the buffer.
>     Loop.
>     Move the rider (Googley image rules).
>     If the rider's token is blank, exit.
>     Create a work given the rider's token.
>     Append the work to the works.
>     Repeat.
>
> What? I've seen more expressive assembler. How is this helping anybody?
> How is this maintainable?
>
> The purpose of a programming language is to be able to create and use a
> subset of a language with low cognition overheard (i.e. moderately close to
> a natural language), that avoids the above issues. It's been that way since
> COBOL and FORTRAN, and arguably Ruby enables a programmer to this better
> than almost any other language.
>
> Sorry to be so cynical about a project people clearly care about and
> created with a sense of love, but as a programming language it has a
> limited and fraught future.
>
> Paul
>
> [1] https://www.ncbi.nlm.nih.gov/pubmed/2804267
>
> Unsubscribe: <mailto:[email protected]?subject=unsubscribe>
> <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk>
>

It is better to point people to Plain English Programming blog rather than
just www.osmosian.com since there is more background material, more sample
programs, and more pictures on the blog.

The Plain English Programming blog is the following blog:
https://osmosianplainenglishprogramming.blog/


Unsubscribe: <mailto:[email protected]?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.