XpdWiki
Set your name in
UserPreferences Referenced by
JSPWiki v2.0.52
|
Amongst the most intersting stuff, for me, is the discussion, spread amongst the articles, is how developers think about the relative power of (Turing equivalent) programming languages. My understanding is that it goes something like this: Language A is more powerful than language B, Graham suggests, if A has some feature that can't be used in a program written in B unless that program contains within in it an interpreter for a language like A with that feature. I understand that using this example: Perl 5 is more powerful than Fortran77. That's not because of Perl's support for, say, regexps since that could be done in a Fortran program with a suitable library of plain old Fortran routines, but because (for example) Perl allows recursive subroutines and Fortran doesn't. The only way to frame a solution needing recusion in Fortran 77 is to allocate a big array and write a little interpreter for a mini languge that uses that array as a stack. On this basis, it's isn't hard to get at least a partial order of programming language power. But that isn't the way (most) developers think about it. Most developers think that the language they use best, which is probably the one they use most, is the most powerful. It's easy to identify less powerful languages, since they are lacking feaures of the developer's favourite. But, when faced with a language that is, in these terms, more powerful, the developer can't bring themselves to admit that, and so they think of the more powerful language as wierd. So the skillful Fortran77 programmer, we imagine, probably doesn't see Perl 5 as more powerful because it has recursion built in, but rather as strange. Why bother cluttering up the language itself with a feature than can be implemented so easily? So the typical developer subconciously falls back on a combination of Turing equivalence and their own skill to parition the set of other languages into those less powerful than their favourite, and those that are as powerful, but strange. Graham has some pretty strong arguments so show that Lisp, mainly through its macro facility, is more powerful, in this sense, than any other language avilable. Certainly, most programmers who've not used it think Lisp is very, very, strange indeed, which lends weight to his argument. This all works for me: my favourite programming language is Scheme (a Lisp), and it concerns me not a jot that Scheme has no built-in support for OO: when I want objects I roll my own. The question then is, what reasons have you got for not using Lisp? WouldYouUseJavaOnEmbeddedDevices and JustAnotherProgrammingLanguage perhaps explore some of those reasons, which are not to do with language power at all. -- KeithB Paul Graham on his latest experiment: "ARC" http://technetcast.ddj.com/tnc_play_stream.html?stream_id=645 ![]() ³host³³date³August 2, 2002³agent³Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)³PaulGraha ³³PaulGraham
|