--adJ1OR3c6QgCpb/j
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Tue, Apr 12, 2011 at 04:47:17PM +0900, Kevin wrote:
>
> No I'm not confusing them, all programs provide the vocabulary (Means
> of expression.  Look it up if you don't believe me.) necessary to deal
> with a particular problem or problem domain.  Furthermore what you said
> hardly distinguishes computer programs from every other language humans
> have ever or will ever create.  All of those solve particular problems
> just as much as computer programs do.  What a program is, is a system
> as opposed to a singular object like a table or a chair.  The system is
> itself the tool and the system exists solely to allow humans to express
> their will to machines.

I guess, by your phrasing, we simply do not "understand" your "language",
because the "language" you are making is "spoken" upon "semantics" that
do not exist in anyone else's "metalanguages".

Put another way, we do not "agree with" your "argument", because the
"argument" you are making is "predicated" upon "premises" that do not
exist in anyone else's "experience".

I don't think taking your approach to labeling everything under the Sun a
"language" really aids communication.

Your attempt to bend software into the shape of a language by calling it
a "system", then contrasting the fact it basically has moving parts with
the case of tables and chairs to say it's not just a "singular object",
is flawed.  Recliners and collapsible card tables are not "languages"
just because they are complex systems of moving parts any more than my
mail user agent is a "language" for the same reason.


> 
> Terseness is a problem the moment it causes people to prioritize it
> above superior semantics.  It might be a great idea to use the
> mathematical symbol for lambda to refer to a lambda function but it is
> not necessarily a great idea to use an ellipsis to refer to an
> exclusive range like we do in Ruby.

Really?  What's wrong with using ellipsis points to stand in for a range?
Are you saying that software would be easier to read and write (and
understand) if we had to type every single number between 1 and 1000 into
a program to create an array containing all those numbers?  What if we
want to exclude number 347?  I think this:

    foo = ((1...347).to_a + (348..1000).to_a).flatten

. . . is much easier to quickly read and properly understand than the
alternative:

    foo = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16     # . . . and so on

Of course, in this case the exclusive ellipsis is probably not the best
option, and instead my example of using ellipsis points should look like
this instead:

    foo = ((1..346).to_a + (348..1000).to_a).flatten

There are times that three ellipsis points are more appropriate, though.


>
> Both use very few characters to get the job done, but one is not only
> much more distinct, it is far easier to explain since it matches a
> subject more people are likely to associate correctly with very little
> in the way of explanation.  (Though I think that Ruby explains things
> nicely without getting into the whole lambda/closure thing right out of
> the gate.)  Why the ellipsis is used for excluding the last number in a
> range is not readily explainable, the use of the lambda symbol to refer
> to lambda functions however is.

It's easy to explain how ellipsis points work in Ruby:

Three points are "up to"; two points are "through".  If you want "one
through ten", use two points, because the last number in the series
essentially *is* the third point.  If you want "one to ten", use three
points, showing that it ends with that third point.  It's a pretty simple
rule and, while it may not match with exactly what *you* expect, it is
still consistent and meaningful, and easily explained.

Also . . . is there any chance we can get you to stop top-posting
everything?  TOFU posting is kind of annoying.

-- 
Chad Perrin [ original content licensed OWL: http://owl.apotheon.org ]

--adJ1OR3c6QgCpb/j
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.14 (FreeBSD)

iEYEARECAAYFAk2kcJUACgkQ9mn/Pj01uKX5RQCeMBl8sRcuPgAj3pUTK3L6Utxr
7NQAnilKK54QsbM4Aytm3b7ssrmHA74+
ii
-----END PGP SIGNATURE-----

--adJ1OR3c6QgCpb/j--