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

On Tue, Apr 12, 2011 at 03:18:01PM +0900, Kevin wrote:
> Aren't all programs languages as the program describes a particular
> problem or set of problems?  It seems that saying that a program is not
> a language is a bit of an artificial distinction.  Mathematics is a
> language.

A program is more like an essay or book written in a language.  One does
not write Japanese in English, after all; one writes The Ruby Way in
English, instead.  By the same token, one does not write Python in Ruby;
one writes portupgrade in Ruby, instead.  (One could probably write a
Python *interpreter* in Ruby, but that's not the same as writing "Python"
itself in Ruby).

By your implied definition of "language", my laptop is a "language", my
television is a "language", my motorcycle is a "language", my Walther PPS
is a "language", my pair of scissors is a "language", my electric bass is
a "language", my IRC dicebot is a "language", "print substr('Just another
Perl hacker', 0, -2);" is a "language", and an article I wrote for
TechRepublic about writing command line filter utilities is a "language".

Mathematics is a "language" in that it is a system of symbols used to
describe and communicate a "set of problems" and their solutions.  A
program is not a language any more than "1 + 1 =3D 2" is a language,
because that's not a system of symbols used to describe and communicate a
"set of problems" and their solutions; it's just a description of problem
and solution.  It is more akin to a sentence written in English than to
English itself.


>
> Ruby or C++ are languages that can be used to construct entirely new
> languages.

Last I checked, Ruby and C++ could be used to construct *implementations*
of new languages.  There is a difference between a language and its
implementation.  Anyway, the fact that C++ can be used to *implement* a
language does not mean that everything implemented in C++ is a language,
any more than the fact paper can be used to create a crane means that
everything created with paper is a crane.

(Look, ma -- no car analogies!)


>
> Even pictures can form the basis of language.  Every program that
> exists possesses the vocabulary to deal with a given problem domain, so
> why bother trying to claim that something like Excel does not have
> these qualities?  Aside from adherence  to useless jargon of course.

Pictures can serve as statements; they are not the language themselves.
Your analogy between picture and language is flawed.

Jargon, by the way, is not useless.  It is specialized (domain-specific)
language used to facilitate communication about a given subject.  When
you corrupt the meaning of the terms used in common jargon parlance, you
damage the ability to communicate ideas within that domain.


>=20
> As for issues like terseness, it isn't really a virtue at all. That you
> can say or do more with less is not very important if people have a
> distinct bit of trouble understanding what is being communicated.  The
> goal should be clarity, not trying to condense everything into the
> fewest possible symbols, ultimately to say that you could.

What the heck does whether terseness is a virtue have to do with this
discussion?

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

--M9NhX3UHpAaciwkO
Content-Type: application/pgp-signature
Content-Disposition: inline

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

iEYEARECAAYFAk2kbG0ACgkQ9mn/Pj01uKWCUgCfYEHDvpy/h95sLjSsRMCpWTxX
mJcAoIsGa9pWPrJPCxrUllSmGIwOK+m5
=fVcb
-----END PGP SIGNATURE-----

--M9NhX3UHpAaciwkO--

On Tue, Apr 12, 2011 at 03:18:01PM +0900, Kevin wrote:
> Aren't all programs languages as the program describes a particular
> problem or set of problems?  It seems that saying that a program is not
> a language is a bit of an artificial distinction.  Mathematics is a
> language.

A program is more like an essay or book written in a language.  One does
not write Japanese in English, after all; one writes The Ruby Way in
English, instead.  By the same token, one does not write Python in Ruby;
one writes portupgrade in Ruby, instead.  (One could probably write a
Python *interpreter* in Ruby, but that's not the same as writing "Python"
itself in Ruby).

By your implied definition of "language", my laptop is a "language", my
television is a "language", my motorcycle is a "language", my Walther PPS
is a "language", my pair of scissors is a "language", my electric bass is
a "language", my IRC dicebot is a "language", "print substr('Just another
Perl hacker', 0, -2);" is a "language", and an article I wrote for
TechRepublic about writing command line filter utilities is a "language".

Mathematics is a "language" in that it is a system of symbols used to
describe and communicate a "set of problems" and their solutions.  A
program is not a language any more than "1 + 1 =3D 2" is a language,
because that's not a system of symbols used to describe and communicate a
"set of problems" and their solutions; it's just a description of problem
and solution.  It is more akin to a sentence written in English than to
English itself.


>
> Ruby or C++ are languages that can be used to construct entirely new
> languages.

Last I checked, Ruby and C++ could be used to construct *implementations*
of new languages.  There is a difference between a language and its
implementation.  Anyway, the fact that C++ can be used to *implement* a
language does not mean that everything implemented in C++ is a language,
any more than the fact paper can be used to create a crane means that
everything created with paper is a crane.

(Look, ma -- no car analogies!)


>
> Even pictures can form the basis of language.  Every program that
> exists possesses the vocabulary to deal with a given problem domain, so
> why bother trying to claim that something like Excel does not have
> these qualities?  Aside from adherence  to useless jargon of course.

Pictures can serve as statements; they are not the language themselves.
Your analogy between picture and language is flawed.

Jargon, by the way, is not useless.  It is specialized (domain-specific)
language used to facilitate communication about a given subject.  When
you corrupt the meaning of the terms used in common jargon parlance, you
damage the ability to communicate ideas within that domain.


>=20
> As for issues like terseness, it isn't really a virtue at all. That you
> can say or do more with less is not very important if people have a
> distinct bit of trouble understanding what is being communicated.  The
> goal should be clarity, not trying to condense everything into the
> fewest possible symbols, ultimately to say that you could.

What the heck does whether terseness is a virtue have to do with this
discussion?

--=20
Chad Perrin [ original content licensed OWL: http://owl.apotheon.org ]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.14 (FreeBSD)

iEYEARECAAYFAk2kbG0ACgkQ9mn/Pj01uKWCUgCfYEHDvpy/h95sLjSsRMCpWTxX
mJcAoIsGa9pWPrJPCxrUllSmGIwOK+m5
=fVcb
-----END PGP SIGNATURE-----