Lisp will tend to dominate wherever the compute-to communication ratio is high, and the task is fairly complex.
What I mean by this is that if you spend, say, 10 times as much effort doing things as you do getting input or providing output, then lisp will probably be a huge win. If you are wiring together a bunch of unix commands, bash or perl is pretty tough to beat (although scsh-scheme shell-is a decent entry here, too). If you are writing device drivers, you will want assembler or C (or Schemeix-a kernel module that allows you to use tinyscheme to write device drivers in a garbage collected language with exception handling and continuations). If you are going to do lots of talking to databases, then there are tons of options(like making up a mini-language in lisp/scheme to suit your needs, or skipping the db entirely). If you have very heavy lifting to do-calculate the cheapest airfare from NYC-JFK to LAX or something similarly crazy-hard-then lisp is among the very few languages that are a legitimate option.
You should check out Lisp In Small Pieces-amazing book on lisp (and other interpreter) implementations. It is by Christian Quiennec. It should tell people something that so many of the books are that good.
That said, The Art of Java is pretty good too-it's the only good java book that I know of.
1: Learning lisp will make you a better programmer and thinker.
2: Lisp tends to be much more productive than other languages, so you can get more done with it than with most other languages, in general.
3: Lisp represents a pretty good approximation to the vanishing point toward which languages seem to be evolving, and being in the future before everyone else is cool and good for you.
1: Learning things that are meaning-heavy, as opposed to fact-heavy, tends to stretch your brain and make you think different (and better) in the future. Learning C#, C++, java, etc., is mostly minutia: getting all sorts of syntax down, remembering which class does what, and fitting all manner of facts into your head. Learning lisp tends to be a process of learning whole new methods of thinking, which tend to be enormously powerful.
He did not say that the article would convince them, merely that they would be convinced-he doesn't even say when that would be. His statement is therefore consistent with readers commencing reading the article already convinced of the its premise.
More interestingly, you seem to be making a fairly strong argument for relativism-if you think that the paper's arguments are unconvincing, that is one thing, but do you believe that there are no statements that are valid litmus-tests? If someone said that the optimal language for getting some string-parsing task done on a Unix box was assembler, I would know that he was either joking or some variety of idiot. Statements like "If you define productivity as the inverse of the amount of time required to implement a given spec, java is not a terribly productive language, averaged over a large number of programmers." are measurable and falsifiable, and the claims of the essay would seem to be similar.
There are really two somewhat orthogonal issues here: getting a very fast data connection to every household, and providing services over that connection later.
connection: I believe that ethernet over fiber to the 'front door' of every building in Hanover is feasable. If the population excluding Dartmouth is 9000, there are probably
services: In short, the set of services that you could provide is just about endless. A short list would be
VoIP
(short)distance learning
home automation
online form filing/voting/etc.
telecommuting
really cheap thin clients for people, served from somewhere in Hanover, instead of full PCs
Lisp will tend to dominate wherever the compute-to communication ratio is high, and the task is fairly complex.
What I mean by this is that if you spend, say, 10 times as much effort doing things as you do getting input or providing output, then lisp will probably be a huge win.
If you are wiring together a bunch of unix commands, bash or perl is pretty tough to beat (although scsh-scheme shell-is a decent entry here, too).
If you are writing device drivers, you will want assembler or C (or Schemeix-a kernel module that allows you to use tinyscheme to write device drivers in a garbage collected language with exception handling and continuations).
If you are going to do lots of talking to databases, then there are tons of options(like making up a mini-language in lisp/scheme to suit your needs, or skipping the db entirely).
If you have very heavy lifting to do-calculate the cheapest airfare from NYC-JFK to LAX or something similarly crazy-hard-then lisp is among the very few languages that are a legitimate option.
You should check out Lisp In Small Pieces-amazing book on lisp (and other interpreter) implementations. It is by Christian Quiennec. It should tell people something that so many of the books are that good.
That said, The Art of Java is pretty good too-it's the only good java book that I know of.
1: Learning lisp will make you a better programmer and thinker.
2: Lisp tends to be much more productive than other languages, so you can get more done with it than with most other languages, in general.
3: Lisp represents a pretty good approximation to the vanishing point toward which languages seem to be evolving, and being in the future before everyone else is cool and good for you.
1: Learning things that are meaning-heavy, as opposed to fact-heavy, tends to stretch your brain and make you think different (and better) in the future. Learning C#, C++, java, etc., is mostly minutia: getting all sorts of syntax down, remembering which class does what, and fitting all manner of facts into your head. Learning lisp tends to be a process of learning whole new methods of thinking, which tend to be enormously powerful.
2: http://www.norvig.com/java-lisp.html
3: Graham says this much better than I can.
He did not say that the article would convince them, merely that they would be convinced-he doesn't even say when that would be. His statement is therefore consistent with readers commencing reading the article already convinced of the its premise. More interestingly, you seem to be making a fairly strong argument for relativism-if you think that the paper's arguments are unconvincing, that is one thing, but do you believe that there are no statements that are valid litmus-tests? If someone said that the optimal language for getting some string-parsing task done on a Unix box was assembler, I would know that he was either joking or some variety of idiot. Statements like "If you define productivity as the inverse of the amount of time required to implement a given spec, java is not a terribly productive language, averaged over a large number of programmers." are measurable and falsifiable, and the claims of the essay would seem to be similar.
There are really two somewhat orthogonal issues here: getting a very fast data connection to every household, and providing services over that connection later.
connection: I believe that ethernet over fiber to the 'front door' of every building in Hanover is feasable. If the population excluding Dartmouth is 9000, there are probably
services: In short, the set of services that you could provide is just about endless. A short list would be
VoIP
(short)distance learning
home automation
online form filing/voting/etc.
telecommuting
really cheap thin clients for people, served from somewhere in Hanover, instead of full PCs