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 | <CAAgF1U8Dm5LTstkhFNGEA9G7A7tWX1Wv01QtWVXgSS2KN4+fHg@mail.gmail.com> |
Em qua, 20 de fev de 2019 13:33, Paul Robinson <[email protected]> escreveu: > On 20 Feb 2019, at 14:35, Quantum Robin <[email protected]> wrote: > > > I asked to the Gerry Rzeppa, the Grand Negus of the Osmosian Order of > Plain English Programmers: > > > Ah, so your only contribution here, "Quantum Robin", is to conduct a > flamewar by proxy? Can I ask that you please do not continue to do that? > > > > What could possibly "make collaboration easier" than speaking to a > fellow human in the shared natural language used for ordinary conversation? > > > Based on the industry's experience of 70+ years: almost anything else, it > turns out! > > Natural language is inherently loaded with misunderstanding and ambiguity > (it's a feature, most humour, irony, poetry and cryptic crossword clues > couldn't exist without them!), that results in potentially catastrophic > errors in a software engineering context. > > This is why UML exists, even though we all wish it didn't. It's why > automated test suites are an industry norm despite them being expensive to > maintain. It's why good specification documents have tables and diagrams > rather than stick to natural language, even though based on your argument, > they are unnecessary. > > You seem to try and duck this problem in PE by demanding the programmer > defines the language semantics first in order to narrow the scope of > ambiguity. > > One problem with such an approach is that it would require a programmer to > cognitively adjust when maintaining two programs written by two authors who > have different meanings for the same word more so than they would in other > languages. > > Sure, we have this in Ruby when it comes to class names being the same in > two programs with different functionality within them, but this difference > is explicit and clear, but for PE to remain truly "natural", such > differences must be minimised and implicit. Anything less, and it's no > longer a "natural language" approach, after all. > > "puts" might be an absurdly clunky shorthand for "Put on the screen" to > your eyes, but at least it means exactly the same thing in every Ruby > program I'm likely to ever have to pick up and maintain. Yet, 'Write > "Hello" to the screen' in PE could mean different things if the author of > the PE system I find myself in has changed the meaning of 'Write' or > 'screen' in a way I had not anticipated. > > You don't seem to have perceived or encountered such problems yet, and I > am going to guess that this might be because the only people to have > produced and maintained a significant amount of code in your language seem > to be you and your son. > > Take this into an enterprise code shop and see what they do with it, and > you might learn a lot about human nature and problems with the language > similar to the ones I have described. > > What I fear is that PE will fail the "maintainable at team scale" test > rather quickly, and worse given the tone of your reply you will find fault > in the team rather than in your language. > > Ironically for a language that seems to be borne out of a desire for > empathy with the programmer, you may have designed an environment that is - > completely unintentionally - passively hostile to them. > > > > First, we don't "use a subset of English." Rather, we allow the > programmer to precisely yet flexibly define whatever subset of English he > deems suitable for his application and circumstances. > > > Your rebuttal reduces to "we don't use a subset of English, we make the > programmer define a subset of English". > > You haven't disproved my point, you've just made the whole idea even less > attractive. > > What you've described is what we call in Ruby "meta programming" and those > of us who are a certain age spend a lot of time asking colleagues to avoid > it. > > > > Except for Plain English, of course, which has the absolute minimum > "cognition overhead" > > > Based on your explanations and the source code that I have read, I do not > believe this statement to be true beyond the point where a word is parsed > at the surface level. Semantic and syntactic cognition seems to be harder > in PE than any other programming language I know because as you've > explained it, every word is defined differently in every program. > > > > Short answer: Paul does not know Plain English, so he doesn't know what > he is talking about. > > > Indeed, my short answer to this response could - if I was going to be as > equally insulting and flippant - be something like: Gerry does not know > professional software engineering, so he doesn't know what he is talking > about. > > Time to move on... > > Paul Is Plain English a good programming language to teach basic programming techniques? If not, why the Plain English is not a good programming language to teach basic programming techniques? > Unsubscribe: <mailto:[email protected]?subject=unsubscribe> > <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk> > Unsubscribe: <mailto:[email protected]?subject=unsubscribe> <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-talk>