Functional paradigm taking over

On Tue, Apr 12, 2011 at 09:31:34PM +0900, Mike S. wrote:

What we’ve seen here is some people - but not all - have a fixed frame
of reference about what qualifies as a language.

That “fixed frame of reference” is called a “definition” – and
definitions are of critical importance to language. Without such
definitions, there would be no language; we would just be making
inarticulate noises at each other, without any communication or
understanding.

‘Domain Specific Language’ is a perjorative term.

No – it’s a descriptive term. A pejorative term would be something
like
“blub language”. The term “domain specific language” describes a
narrower focus, which makes it more suitable to certain tasks than a
domain nonspecific language, and less suitable to other tasks.

You act as though “domain specific” is a synonym for “crippled”, but
that’s not the case at all. It is, in some respects, more like saying
“chef” when referring to a knife. A chef knife is not “crippled”
because
it is a poor choice for spreading butter on bread, opening an envelope,
or scaling a fish; it’s just really good at certain cooking tasks, and
worse for other tasks, because it is specially designed for that
particular task at the cost of having features suitable to other tasks
neglected.

The fact that people say MS Excel is not a programming language is not
some kind of insult to MS Excel or personal slight aimed at its users.
It just means that Excel’s design is better suited to use as a
spreadsheet than as a programming language. I wouldn’t use Object
Pascal
as a spreadsheet, either, but that doesn’t mean it’s useless or that
people who use it (like my father’s use of its Delphi flavor) are
idiots.

On Tue, Apr 12, 2011 at 5:56 PM, Chad P. [email protected] wrote:

‘Domain Specific Language’ is a perjorative term.

No – it’s a descriptive term. A pejorative term would be something like
“blub language”. The term “domain specific language” describes a
narrower focus, which makes it more suitable to certain tasks than a
domain nonspecific language, and less suitable to other tasks.

You act as though “domain specific” is a synonym for “crippled”, but
that’s not the case at all.

To elaborate:

I’m a heavy user of TADS 3 these days, which stands for “Text
Adventure Development System”.

It has a heavily C influenced syntax, is Turing complete, and is
compiled into bytecode, but I wouldn’t dream of using it to script
regular tasks with it, or write a spreadsheet in it. It’s standard
library is heavily geared towards text adventures (what a surprise),
and has next to no functions to call up files, since the IF
interpreter takes care of loading and saving game state.

It has syntax features and objects that make writing interactive
fiction a breeze, however.

For example:

aRoom: Room ‘room noun’ ‘room name’
"This is a room. "
;

+desk: Table ‘table noun’ ‘table name’
"A table with four legs. "
;

++paper: Readable, Thing ‘readable noun’ ‘readable name’
"A piece of paper. "
readDesc = "You read what’s written on the piece of paper. "
;

Each plus is an instance of “object nesting”: The piece of paper is on
a table, in a room, and the player can react to the things in the room
by using constructs.

If I were to use Ruby for this (and I could), I’d still be writing a
text parser, instead of doing what I want to do.

TL;DR: DSLs remove a lot of yak shaving for a given task, but
introduce a lot of it when moving outside of the DSL’s domain.

It’s jargon vs general language: Makes communicating certain ideas
easier to those in the know, than using a general purpose language.


Phillip G.

Though the folk I have met,
(Ah, how soon!) they forget
When I’ve moved on to some other place,
There may be one or two,
When I’ve played and passed through,
Who’ll remember my song or my face.

Why don’t you actually go take a look at the definition of language,
specifically definitions three,four,five, and seven here:
Language Definition & Meaning | Dictionary.com Also have a look at
definition four in the second set. While you are at it take a look at
vocabulary definitions four and five in the first set and four in the
second
set here: Vocabulary Definition & Meaning | Dictionary.com

Your degree of ignorance about what the word language means does not
help
communication. I specifically mentioned to Phillip to look up the words
in
a dictionary, so that he would understand why I made the points I did
the
way I did. You really should have heeded my advice rather than
attempting to
resort to sarcasm. Furthermore you totally missed my point about the
use of
the ellipsis for exclusive ranges in Ruby, the symbology of the ellipsis
does not give you any indication whatsoever that 1…10 is going to
return 1
through 9, on top of that it can be easily confused with “…”. Now
compare
that with using the lambda symbol for a lambda function: It is a symbol
really only used in mathematics, it is not easily confused with a common
operator, it even manages to retain its’ connection to the mathematics
responsible for the concept itself, making it need less explanation for
more
people since more people will know about lambda calculus than will
expect an
ellipsis to stand for an exclusive range.

Oh and by the way do you know what every program that has ever been or
ever
will be created has that your easy chair will not simply with moving
parts?
The ability to express a set of human thoughts, like math, Ruby, Latin
and
Java. These four unlike your easy chair do not simply do, they were
created
to be understood by humans. But please do attempt more sarcasm, to
cover up
for your inability to actually look at a dictionary.

On Wed, Apr 13, 2011 at 12:53 AM, Kevin [email protected] wrote:

Why don’t you actually go take a look at the definition of language,
specifically definitions three,four,five, and seven here:
Language Definition & Meaning | Dictionary.com

The rest of us are talking about definition twelve.

On Wed, Apr 13, 2011 at 01:22:31AM +0900, Phillip G. wrote:

To elaborate:
[snip]

That was an excellent example to illustrate my point. Thanks.

Before anyone bothers syntax would still apply even if one could simply
use
English to give instructions and we were able to skip over the symbols,
by
that time it would probably be possible to type English in order to
create a
program or a subset of it.

That is all well and good. But does that fact make the definitions I am
using incorrect in any way? Does it necessarily make the suggestion
that
excel is a programming language incorrect? Someone posted a link to an
animation done in Excel (I’ve seen something similar in the past.), is
that
not giving instructions to a computer as per definition twelve? Heck if
you
were to speak to a computer using English you could give instructions to
a
computer. As voice recognition technology gets better and hopefully
cheaper
people who are not great at typing may do just that in order to create
programs that would be no different from the ones we type currently.

On Wed, Apr 13, 2011 at 8:38 AM, Kevin [email protected] wrote:

That is all well and good. But does that fact make the definitions I am
using incorrect in any way?

It’s worse: They are not applicable.


Phillip G.

Though the folk I have met,
(Ah, how soon!) they forget
When I’ve moved on to some other place,
There may be one or two,
When I’ve played and passed through,
Who’ll remember my song or my face.

On Wed, Apr 13, 2011 at 1:38 AM, Kevin [email protected] wrote:

That is all well and good. But does that fact make the definitions I am
using incorrect in any way?

Yes. In the way that your equivocal definition is meaningless in
context.

Why don’t you quit playing with words take an explicit position: “puts
‘hello world’” is a program, are you willing to say it is also a
programming
language, according definition 12 at your own link (
Language Definition & Meaning | Dictionary.com)?

@Phillip: Yes they are applicable, jargon does not supersede the rest of
the
language. Especially not when the subject being discussed (In part)
whether
or not Excel can be considered a programming language is answered by
those
definitions. Why do you think that the word language is even a part of
the
phrase “programming language”? It is because of the way the word
language
could be and is used by people who are not a part of this field. It was
not
in any way random that such a phrase came to describe tools like Ruby,
or
C++.

@Josh: It would not be according to definition twelve, but Excel would
be in
fact. Seeing as how it provides symbols and ways to deliver
instructions to
a computer. You can even use it to create animations. Also the other
definitions I pointed out do not cease to exist because definition
twelve
exists, the definitions are not even contradictory. They are
complimentary.
Also people are not equivocating just because they do not use the
definition
you want them to (Ultimately incorrectly to boot.) That you do not
understand why the phrase “programming language” is possible let alone
why
it is used does not make the definitions being applied meaningless in
context. In the context of whether something is a programming language
one
must examine what a language even is before deciding that question.

On Wed, Apr 13, 2011 at 4:52 AM, Phillip G. <

On Wed, Apr 13, 2011 at 4:59 PM, Kevin [email protected] wrote:

@Phillip: Yes they are applicable, jargon does not supersede the rest of the
language.

jargon*, n.:

  • (uncountable) A technical terminology unique to a particular subject.
  • (countable) Language characteristic of a particular group.
  • (uncountable) Speech or language that is incomprehensible or
    unintelligible; gibberish.

Yes, it does. That’s why jargon develops in the first place.

Especially not when the subject being discussed (In part) whether
or not Excel can be considered a programming language is answered by those
definitions.

language*, n:
(computing, countable) A computer language.

That’s the definition that applies. If you want to use another one:
that’s called “moving the goal posts”.

Why do you think that the word language is even a part of the
phrase “programming language”? It is because of the way the word language
could be and is used by people who are not a part of this field. It was not
in any way random that such a phrase came to describe tools like Ruby, or
C++.

facepalm

Language is ambiguous to start with (compare US English and American
English on the use of the word “fag” in slang). Words evolve, and
change meaning (see also: “gay”).

“programming language” is used for the same reason that airplanes use
a similar terminology to ships: The words match, at least roughly, and
get everyone on the same page with ease. From there, additional
meanings develop. Just ask Google about how happy they are that
“googling” is a verb now, or ask Kleenex about what “trademark
dilution” means.

Or are you really suggesting that, since the words are the same, a
captain of a ship is as qualified to navigate the seas as a ship’s
captain, just because the spelling is the same? Is driving a car the
same as driving a nail? Is a meter the same as 1 meter?

This whole thing is called “semantics”. You are, in fact, arguing
semantics (in English: meaning). Badly.


Phillip G.

Though the folk I have met,
(Ah, how soon!) they forget
When I’ve moved on to some other place,
There may be one or two,
When I’ve played and passed through,
Who’ll remember my song or my face.

Peter H. [email protected] writes:

“When in a hole, stop digging”

There seems to be an inverse relationship between number of words
being used and what is being communicated.

Speaking as a relatively new member of the list, I feel the whole thread
is giving a poor (and presumably inaccurate) impression of the forum as
a whole and the Ruby community.

My own impression is that the more languages a programmer knows, the
less interested he becomes in such distinctions (“What do they know of
Ruby who only Ruby know?” perhaps?). Certainly the types of
distinctions now being heatedly argued in this thread strike me as not
particularly relevant to programming languages in general or Ruby in
particular. If we now, dozens of messages later, decide that some
system people are happily using to things that interest them is, in
fact, a programming language (or is not, in fact, a programming
language), then what?

Maybe those still interested in this argument can take it off-list at
this point?

No a jargon or slang does not put aside the language it exists inside
of.
To try and argue this is ridiculous, the definitions used within the
standard language do not become invalid just because you speak to a
specific
group. Now you accuse me of moving the goal posts because I utilize
standard as opposed to nonstandard meanings of terminology to point out
that
one may feel free to call any program a language? A jargon only
supersedes
the standard usage of a term when it is no longer specific to a single
group, at which point it stops being a jargon.

On Wed, Apr 13, 2011 at 11:16 AM, Phillip G. <

“When in a hole, stop digging”

There seems to be an inverse relationship between number of words
being used and what is being communicated.

On Wed, Apr 13, 2011 at 02:53:04PM +0900, Kevin wrote:

Why don’t you actually go take a look at the definition of language,
specifically definitions three,four,five, and seven here:
Language Definition & Meaning | Dictionary.com Also have a look at
definition four in the second set. While you are at it take a look at
vocabulary definitions four and five in the first set and four in the
second set here: Vocabulary Definition & Meaning | Dictionary.com

Let’s see . . . definitions three, four, and five there support my
usage,
and definition seven is a metaphorical usage. It’s kind of amusing that
in a computing context you are intent on ignoring definition twelve,
though. Are you aware that context matters?

What the hell are you trying to prove, exactly?

Furthermore you totally missed my point about the use of the ellipsis
for exclusive ranges in Ruby, the symbology of the ellipsis does not
give you any indication whatsoever that 1…10 is going to return 1
through 9, on top of that it can be easily confused with “…”.

I didn’t exactly “miss” it – I just though you couldn’t possibly mean
what it turns out you meant, since what you actually meant is apparently
“I’m upset about the fact that someone who doesn’t know a particular
language can’t understand every single thing about it without trying to
learn it.” It’s especially stupid, given the cryptic design of
spreadsheets, which are almost completely meaningless to people who are
not familiar with . . . spreadsheets.

It’s a lot easier to understand this:

print "            Hello, Bob!"

. . . than this:

"Click on the little rectangle down five and over twelve to the
right.  Move up to that long rectangle near the top, and click 

there.
Type ‘Hello,’. Click on the little rectangle down five and over
thirteen to the right. Move up to that long rectangle near the top
again, and click there – again. Type ‘Bob!’. Click the little
rectangle that says ‘Hello,’ in it. Hold down the Ctrl key and
click
the rectangle that says ‘Bob!’ in it. Click the word ‘Format’ way,
way up at the top of the screen. Point at the words ‘Merge Cells’
where they appear in the tall gray rectangle that appears from that
word ‘Format’. Move the mouse pointer to the right, into the
rectangle that appears beside the words ‘Merge Cells’ and click
where
it says ‘Merge and Center Cells’. When the thingie that says
‘Should
the contents of the hidden cells be moved into the first cell?’
click
the little rectangle there that says ‘Yes’."

(Note: I’m using OO.o as my example at the moment, because I don’t want
to book Win7 just to write this email.)

You can actually see everything that’s going on in the first example.
In
the second . . . good luck. I think the use of ellipsis points in Ruby
is pretty easy to understand by comparison. Here’s an explanation:

"(1..10) means 'one through ten'.  (1...10) means 'one to ten'."

Perhaps you’d like to type up a similarly succinct explanation of how to
get exactly the same meaning out of some construct in a spreadsheet. We
can compare the complexity and obviousness – both preceding and
subsequent to the explanation – of meaning to someone unfamiliar with
the language (in Ruby’s case) or application (in the spreadsheet
application’s case).

Now compare that with using the lambda symbol for a lambda function: It
is a symbol really only used in mathematics, it is not easily confused
with a common operator, it even manages to retain its’ connection to
the mathematics responsible for the concept itself, making it need less
explanation for more people since more people will know about lambda
calculus than will expect an ellipsis to stand for an exclusive range.

If we only ever used symbols that are only ever used for exactly one
meaning, we wouldn’t have any languages or applications that could get
any work done. Try the multiple meanings of “format”, used above; the
multiple meanings of “cell”; the multiple meanings of “hidden”; hell,
even the multiple meanings of “10” or “bob”.

. . . and you’re wrong. The Lambda symbol has many meanings. Try
checking its use in the phrase Lambda Calculus, which is not the same as
its use as a specific, limited purpose construct in a particular
programming language; check its use in Greek; check its use in the LGBT
community; try a Google search and the Wikipedia article for the symbol
and spend hours finding other uses.

The fact of the matter is that even if someone assumes the “correct”
meaning for the lambda symbol from mathematics when seeing it in a
programming concept, adjustments will have to be made to accomodate the
context of the particular computational sub-model represented by the
language in question, just as the same will have to be done with the
common English-language meaning of ellipsis points.

Oh and by the way do you know what every program that has ever been or
ever will be created has that your easy chair will not simply with
moving parts? The ability to express a set of human thoughts, like
math, Ruby, Latin and Java. These four unlike your easy chair do not
simply do, they were created to be understood by humans. But please do
attempt more sarcasm, to cover up for your inability to actually look
at a dictionary.

Um . . . were you even paying attention? I said that a recliner is
not
a language. Why are you now arguing that it is not like a language as
if
that somehow disputes what I said?

I wasn’t being sarcastic when I brought up the idea of a recliner. I
was
making an analogy.

. . . nd please, stop fucking TOFU posting. Trim and respond. It’s a
lot easier to communicate that way, because context matters when trying
to communicate with people.

Then again, you seem to think that MS Excel is a language, so I guess I
shouldn’t expect you to know much about communication.

On Wed, Apr 13, 2011 at 11:59:42PM +0900, Kevin wrote:

@Phillip: Yes they are applicable, jargon does not supersede the rest
of the language. Especially not when the subject being discussed (In
part) whether or not Excel can be considered a programming language is
answered by those definitions. Why do you think that the word language
is even a part of the phrase “programming language”? It is because of
the way the word language could be and is used by people who are not a
part of this field. It was not in any way random that such a phrase
came to describe tools like Ruby, or C++.

Well, in that case, you are no longer allowed to use “programming
language” to specifically mean languages used to program a computer.
When you say “programming”, it must also include television programming,
making lists of things to buy from the store, the services provided by a
given company or person, syllabi and curricula in higher education,
sports activities at high schools, systems of co-operation to provide
opportunities for people embarking on new endeavors, skills and
behavioral training, and sheet music.

No no no . . . that’s not how it works. How it actually works is that,
for a given context, the definition that is most particular to that
context supersedes those that are not particular to that context,
especially if those definitions that are not particular to that context
are particular to other contexts. Otherwise, when scientists use
“validate” to refer to checking the applicability of facts and “verify”
to refer to checking the systematic rigor of the methodology for working
with those facts, their usages would be superseded by the more general
formalisms that imply meaning that is roughly the reverse of that usage.

Specificity of meaning overriding more general meanings is the whole
reason we have jargon. Telling us that jargon takes a back seat to
general terms of natural language at all times is akin to telling us
that
we cannot use programming languages at all, and have to simply speak to
computers in plain English – which would be disastrous, given that the
computer wouldn’t know what the fuck to do with “Show me my list of
stuff
I want to do.”

Programming languages are, in a manner of speaking, highly formalized
jargons. I guess that means I’m not allowed to use “print” to mean
something specific, though, because if someone else wants to use “print”
to refer to a flower pattern on a dress, that supersedes my use of
“print” when writing Perl code.

On Wed, Apr 13, 2011 at 03:38:23PM +0900, Kevin wrote:

That is all well and good. But does that fact make the definitions I am
using incorrect in any way?

It does not make them incorrect definitions. It does, however, pertain
to this specific context, whereas the definitions you identified do not
pertain to this specific context that way.

Does it necessarily make the suggestion that excel is a programming
language incorrect?

You just shot your argument in the foot. You said “programming
language” which, in the specific, is not the same as “language” in the
generic. By saying “programming language”, you have confined your usage
of “language” to the particular case of definition 12, thus excluding
the
generalities of definitions three, four, five, and seven. It’s like the
difference between “card” and “greeting card”, where referring to the
latter, more specific usage of card excludes the ace of spades, my
busines cards, and a 3x5 notecard with notes on it related to some kind
of eXtreme Programming construct.

Even if you did not exclude them, though, they do not really apply to
your usage except by bending them so far out of shape as to render them
almost meaningless.

Someone posted a link to an animation done in Excel (I’ve seen
something similar in the past.), is that not giving instructions to a
computer as per definition twelve?

No, not really.

Is pushing the power button on my laptop not giving instructions to a
computer? What about pressing the J key while typing this sentence?
You
might as well call the power button and the keyboard “programming
languages” the way you’re trying to define the term. The whole problem
with your approach to using the terms “language” in general and
“programming language” in particular is that you are hand-waving away
any
specificity and context of meaning and usage, stretching the terms into
such generic, all-encompassing shapes as to strip them of any
substantive
meaning at all. By the time you’re done, we’ll probably be able to
define death as a programming language.

Is not the fact of brain death, which causes the EEG to change its
behavior, not instructions given to a computer, making it a programming
language by your hopelessly inclusive “definition”?

(Scare quotes used here because I’m stretching the definition of
“definition” just to accomodate the way you define things.)

Heck if you were to speak to a computer using English you could give
instructions to a computer. As voice recognition technology gets
better and hopefully cheaper people who are not great at typing may do
just that in order to create programs that would be no different from
the ones we type currently.

If we get to the point where all communication with computers is done
via
natural language, that will not make English a programming language.
That will make the communication process no longer “programming”.

AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH!!!

STOP THE FSCKING FLAME WAR!!! THIS OT POST HAS BECOME OT FOR ITSELF!!!
(recursively OT??) i’m sure we all understand that a decently powerful
spreadsheet program can do interesting things. i’ve heard of people
using
them as databases & running a companies banking in excel. but that is
not
the point. the point is that - like any other flame war - this argument
is
going to get EVERYONE NOWHERE!

so if you all would please: STOP THIS MADNESS BEFORE YOU BREAK OPEN A
RIFT
AND RELEASE CTHULHU FROM HIS WATERY PRISON AND HE DEVOURS US ALL!!!

thank you for your time and attention…
hex

On Thu, Apr 14, 2011 at 01:18:58AM +0900, Kevin wrote:

No a jargon or slang does not put aside the language it exists inside
of. To try and argue this is ridiculous, the definitions used within
the standard language do not become invalid just because you speak to a
specific group. Now you accuse me of moving the goal posts because I
utilize standard as opposed to nonstandard meanings of terminology to
point out that one may feel free to call any program a language? A
jargon only supersedes the standard usage of a term when it is no
longer specific to a single group, at which point it stops being a
jargon.

In short . . . yes, you’re saying that driving a nail is the same as
driving a car. When I ask “Can you drive?” and you say “Yes,” thinking
you know how to pound nails into wood, you think I should loan you my
car.

You give a whole new meaning to the comment that when all you have is a
hammer, everything looks like a nail. I am not, however, inclined to
let
you pound the crap out of my car with a hammer.

By the way . . . the way you want to use “programming language” is
definitely the nonstandard usage in this context. Context matters.

Phillip makes the assertion that Excel is not Turing-complete,
beginning the flame war:
http://groups.google.com/group/comp.lang.ruby/msg/27cebe32ec304c83

Anyone with a passing knowledge of the field would know that Excel is
Turing-complete because it can model Turing-complete cellular automata
(for instance the Game of Life). Also see Wolfram’s NKS (though
Wolfram has become crank-like in other respects, he certainly knows CA).

History shows that Phillip will persist despite being factually
disputed. No doubt he will attempt to twist his way out of this one.
See him get refuted here:
http://groups.google.com/group/ruby-talk-google/msg/abb343631960cdad

Note his bizarre cockiness despite being totally wrong:
http://groups.google.com/group/ruby-talk-google/msg/da8cbb09529977d1

In order to understand who you’re dealing with here, read Philip’s
messages in that thread regarding IEEE infinity.