[Haskell-cafe] off-topic question: how well do you think linguistic relativity applies to PLs and programming?
Mikael Brockman
mbrock at goula.sh
Thu Jan 23 09:13:19 UTC 2014
Ömer Sinan Ağacan <omeragacan at gmail.com> writes:
> Hi all,
>
> I recently got myself thinking about programming languages and their
> effects on programmers. I already knew that concept of "linguistic
> relativity" ( http://en.wikipedia.org/wiki/Linguistic_relativity )
> and I was thinking that this may be relevant with programming too,
> although I don't have any concrete evidence. I was wondering if anyone
> else also find that idea of programming language's effect of the
> programmer interesting. Do we have any research on that kinds of
> things?
The Stanford Encyclopedia of Philosophy has a pretty good page about the
"linguistic relativity hypothesis." Here's a quote from Sapir in 1929
followed by some random thoughts of mine on your (very interesting)
question:
"Human beings do not live in the objective world alone, nor alone in
the world of social activity as ordinarily understood, but are very
much at the mercy of the particular language which has become the
medium of expression for their society."
I think our tendency to form communities (societies?) around programming
languages is interesting in this context. Rubyists, Pythonistas,
Schemers, hackathons, mailing lists & IRC, conferences, books, and so
on. Without considering community, it seems hard to say even what a
programming language is.
Are "idioms" part of language, for example? In natural language, we
can't judge fluency based on adherence to a formal grammar; we need to
consider dialectal (even "sociolectal") competence, range of vocabulary,
and so on. In programming, we are bound by formal grammars, but they
still don't capture the whole thing.
(That language and culture are hard to tease apart seems like a
commonplace notion. I think it's one reason why the concept of
"linguistic relativity" seems somehow vacuous or at least hard to pin
down in a productive way. It's one of those "controversial" ideas,
right? -- that nobody really knows what to do with, or whether it's even
falsifiable, and so on.)
So given that involvement with a programming language is to some extent
inextricable from community involvement, I think we can look there for
some interesting effects. When someone becomes interested in Haskell
and later develops a taste for algebra and starts spending weekends
reading abstract math textbooks, that's a pretty significant influence,
right?
There's an interesting meme in the Haskell world, which I think I first
heard in a talk by Simon Peyton-Jones, that laziness -- though sometimes
useful in itself -- is mostly a way to keep up a demand for pure
semantics, which is what's really important. So that's a formal
language feature consciously designed to influence our behavior as a
community, to make sure we don't stray from the pure vision of our
ancestors (so to speak). It's a kind of metaprogramming -- the language
programs us!
It'd be interesting to read stories and research about individuals or
even groups who have for some reason switched from one primary
programming language to another. What happened?
There are a lot of applicable Dijkstra quotes. For example the classic:
"It is practically impossible to teach good programming to students
that have had a prior exposure to BASIC: as potential programmers
they are mentally mutilated beyond hope of regeneration."
Similar reasons are given for why university programs should begin with
teaching a functional language, to instill certain good habits and
values.
Anyway, sorry for the longwindedness; I don't really have a thesis to
drive, just writing down some thoughts. It's fun to think about the
topic but it's so huge!
--
Mikael Brockman (@mbrock)
More information about the Haskell-Cafe
mailing list