[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Lua and Neko comparison (Beware the Linguistic Uncanny Valley)
- From: Don Hopkins <dhopkins@...>
- Date: Thu, 21 Sep 2006 15:24:27 -0700
This month's "gamedeveloper" magazine has an article "Invisible
Monsters: Tales from the Uncanny Valley".
"The Uncanny Valley occurs when a non-homan's likeness to a human nears
reality, but lacks perfection."
I think the Uncanny Valley applies to programming language design as
well as computer graphics. Especially to cargo-cult programming
languages like JavaScript and PHP, that try to mimick the surface
appearance of other languages, without understanding the reasons behind
their design.
The closer one language is to another, the more uncanny the subtle
differences are. Like C is to C++, C++ is to Java, Java is to
JavaScript, JavaScript is to ActionScript, and one version of
ActionScript is to the next.
I like to be able to easily tell what language I'm programming in, and
it's a good thing that Lisp is way different than C++, and Lua is way
different than JavaScript.
http://en.wikipedia.org/wiki/Uncanny_Valley
"The Uncanny Valley is a hypothesis about robotics concerning the
emotional response of humans to robots and other non-human entities. It
was introduced by Japanese roboticist Masahiro Mori in 1970. It states
that as a robot is made more humanlike in its appearance and motion, the
emotional response from a human being to the robot will become
increasingly positive and empathic, until a point is reached beyond
which the response quickly becomes strongly repulsive. However, as the
appearance and motion continue to become less distinguishable from a
human being's, the emotional response becomes positive once more and
approaches human-human empathy levels."
An article on drunkenblog [5] uses the Uncanny Valley analogy to
describe the frustration many computer programmers experience when using
the AppleScript programming language.
http://www.drunkenblog.com/drunkenblog-archives/000291.html