From: Chad Perrin Date: 2011-04-13T00:27:47+09:00 Subject: Re: functional paradigm taking over --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--