Tip:
Highlight text to annotate it
X
MERTZ: This is David Mertz, reporting from OSCON 2011 for IBM developerWorks.
I had the opportunity to speak with Robert Lefkowitz -- who's a fascinating fellow --
and we covered a broad range of topics about orality and literacy and the history of rhetoric
and how that all relates to programming languages.
It all makes for a fascinating listen.
Please watch.
....that you mentioned a bit in the talk yesterday and I know you've done
in other talks about programming as literacy.
LEFKOWITZ: Yes.
To the extent that...so, there's two parts to it.
So, the first part is programming as a way of exchanging ideas between humans --
that is, it's sort of a way of structuring your thoughts.
So, one way that I think about it is I tell people programming is the 21st century extension
of the classical art of rhetoric.
So, if you look at sort of the rhetorical schools of the ancient Greeks, ancient Romans,
Middle Ages, what-not, it evolved over time.
So, the way that people in the Middle Ages taught rhetoric was not the same way it was
taught during Roman times and that programming is how we teach rhetoric today in the sense
that rhetoric was about...it was more than just....
It was a superset of logic.
Right? You had to learn logic.
You had to learn grammar, which was about how do you reason logically.
And how you would express it properly?
So, that's the syntax part of programming and the logic, the algorithmic part of programming.
But at the end of the day, where rhetoric went above
and beyond was the ability to move people to action.
The reason it was rhetoric was....
And it didn't have to be a logical argument.
One of the things they taught you was that it could be an emotion, an appeal to emotions.
Or, there are other ways of getting people to do something,
and that whatever that was qualified as rhetoric.
And programming is taking logical arguments and grammar and figuring
out how to move a machine to action.
Right? MERTZ: Yes.
LEFKOWITZ: So it could be heuristic, it could be statistical.
And hacking is, well, whatever it takes to make it work.
So, in some sense, thinking of it of rhetoric and so how do you construct a logical argument
that can move the machine to action?
MERTZ: In a rather old debate, you side here with the Sophists over Plato's critique of them,
because of course, they saw rhetoric, I mean, exactly as you describe it,
as a means of impelling action, while Plato had this critique that that was improper
because it did not follow proper principles of reason.
LEFKOWITZ: Right.
That is right.
The split was always the, was it more important to know the truth
or discover the truth even if nobody did anything with it?
Or was it more important to get people to do stuff even if it wasn't like the ultimate truth?
MERTZ: Yes.
LEFKOWITZ: Even another version of Voltaire's
leading-edge "mieux" established "l'ennemi du bien" -- that the best is the enemy of the good.
MERTZ: I'm sorry.
LEFKOWITZ: The good enough.
Should you run with it and is it now important to promulgate that?
Or should you like forget about trying to convince people to do stuff and keep focusing
on finding like an even deeper truth?
And that was, you know, starkly painted, the split.
MERTZ: It seems like putting it...this is sort of a bit ad hoc,
but in modern terms you might think of, say, Perl as the perfect Sophist language
and maybe Pascal or Lisp is, the Plutonic ideal.
LEFKOWITZ: I don't know.
I was actually thinking it was more of a focusing on performance
at the expense of intelligibility.
MERTZ: ...introducing more and more graphemes into language as part of internationalization
because they don't have this tie to a particular language --
although I can kind of feel the covert agenda that's trying
to get us back to all using APL again.
LEFKOWITZ: Well, that's not so much a covert agenda using APL; I would phrase it more
that APL was a wonderful language in its day.
It had some really interesting ideas; using graphemes being one of them.
And they failed because they were so far ahead of their time.
So, in an age where you needed a Selectric typewriter element with the characters
that you were using engraved upon it so that they could press ink on to paper,
you kind of had a restricted set of glyphs that you could work with,
and changing them would be really, really hard from a logistical point of view.
But in an age of soft fonts and programmable keyboards, you don't have those restrictions.
But the idea failed at a time when it was too hard to do.
And I think it was a great idea.
I think Mathematica brings some of those into the modern age.
And it's a shame that more languages don't take advantage of the vast number of characters
and symbols that we could use to communicate ideas and sort of restrict ourselves to,
I guess I was joking in the talk, if not 6-bit ASCII, then 7-bit ASCII.
Can you more easily remember 100 foreign words versus 100 symbols?
Or 100 words in your native language?
Or 100 gobbledygook words, sort of made up, meaningless words?
MERTZ: Yes, with it, where if there's a grapheme,
you can say, this is how you pronounce it.
But there's not this kind of well-learned association with the sound image.
LEFKOWITZ: So, even with our 7-bit ASCII...and I was just having this conversation
with somebody else...you can't pronounce programming languages.
If you take the text of a programming language and attempt to read it out loud,
the assertion was no, you totally can.
And so, my thought experiment is pick a simple program, 100- to 200-line program
of your choosing in the language of your choosing and read it over the phone to somebody
and see if they can tell you what it does.
It's like, could we imagine a programming language
that you could actually speak it out loud.
Can you call it in over the phone and somebody
on the other end could write it down and know what it's doing?
Or is that a silly idea, because basically it's like mathematics,
it's difficult to do and we don't want to do that.
In which case, it's a written thing, and if it's a written thing then it's unclear
that the ability to verbalize it is helpful in the understanding.
If you look at the glyphs for mathematical expressions,
even if you don't know how you're supposed to pronounce them,
if you know the mathematics you kind of know what it does.
MERTZ: Of course, the phonetic point works for Hangul, it works for Roman letters.
It works for Cyrillic, it works for Arabic.
It doesn't work for Chinese who have to have the same kind of cognitive translation,
where there is no inherent association between sound, image and letter form.
LEFKOWITZ: Right.
Yes. MERTZ: So, that's a lot of people, but it's not all the people,
but it's a lot of people with phonetic-ish alphabets.
LEFKOWITZ: But it has the languages where there's no phonetic mapping, also works.
Rather than say "define foo," if you did bold, italic foo, that would mean it's a definition.
MERTZ: Yes.
It does add a lot of layers of complexity.
LEFKOWITZ: Right.
So, we don't use any of those in programming.
And we do use them a lot in English.
MERTZ: This has been the first of my two-part conversation with Robert Lefkowitz.
Please tune in for the second part.
Thanks for listening again to IBM developerWorks' covering of OSCON.
This has been David Mertz.