"Trimming facts off at the first few levels of details makes everything feel, well, oversimplified."
But it's not just oversimplification of collective action, the plot was overblown even at the level of purely individual events in individual characters' lives. Arguably the greatest theoretical/experimental crossover physicist of the century takes the occasion of accepting his Nobel Prize to escape with his Jewish wife from Il Duce, and a few years later stands musing over a nuclear chain reaction in a secret project in Chicago? Puhleeze.
Good advice would be "so be particularly careful to check whether their arguments are logically sound and properly documented;" the original advice to skip past the quality of arguments and data to "so take their conclusions with a healthy grain of salt" is bad advice. The ad hominem fallacy isn't just unsound in principle, it tends to be pretty useless in practice. It can look reasonable at the time if there's enough groupthink, but would anyone like to nominate some cases where with two or more generations of hindsight we can agree that ad hominem arguments were a better guide to truth than simply addressing the technical arguments? And it can be wrong no matter how impressively much circumstantial evidence suggests that there could easily be a political motive: see, e.g., http://en.wikipedia.org/wiki/Robert_Conquest .
When I was in high school, I travelled by city bus while holding two different ultra-low-end programming jobs. I think you are underrepresenting the advantages of having a car.
If I expected to be earning and living on less than perhaps $12 an hour for an extended period of time, I would probably choose to go without a car, likely by moving someplace like Dallas TX (where I live now, and where the local wages vs. cost of living seem reasonably favorable) and renting an apartment very close to a bus line on a major suburban business artery. Judging from my high school experience, from many observations of foreigners living off their science grad school stipends, and from everything I've noticed in my years in Dallas, that'd work reasonably well. But doing without a car would constrain my life in important ways (including job options, education options, and general time efficiency) and I'd be very motivated to find economical ways to reduce the problem, e.g. sharing a car, or getting (and probably learning to maintain) an economical motorcycle.
The math in computer science may not be much like the usual idea of science, but neither is it what people ordinarily mean when they say "pure mathematics." It's much more nearly "applied mathematics," like statistics or signal processing or control theory: more likely to be interested in, e.g., the development of wavelets than in a proof of the Poincare conjecture.
Maybe it would've been more logical if the applied math end of the CS field had ended up with an applied-math-y name comparable to "statistics", e.g. "algorithmics" or "algorithmic analysis," and much of the rest of the CS field had ended up "software engineering" or "computer engineering" or "computational engineering" or "information system engineering" by analogy with "electrical engineering." But naming of technical fields is not necessarily systematically logical, sometimes because of old idiosyncratic reasons to avoid ambiguity with other pursuits: "astronomy" vs. "astrology," anyone?
I have no particular sympathy with any anti-vaccine activism that I know of. But I wonder how, other than by not being an important faction in the appropriate big political tent, "anti-vaccine denial" ended up on this article's excrement list along with Holocaust deniers, while "nuclear power denial" and "genetic engineering denial" didn't.
My impression is that political opposition to nuclear power plants, to nuclear waste facilities, and to GM crops have had at least as much economic impact as political opposition to vaccines. Thus, it seems to me that they shouldn't be left off this list because they're unimportant.
Perhaps the columnist thinks that the anti-nuke and anti-GM-crops political movements should be spared because they have achieved their political impact primarily by honestly making valid technical points? Granting for the sake of argument that that is a tenable position, then why ignore them? Wouldn't the anti-nuke and anti-GM movements make useful examples to clarify his position by comparing and contrasting? Wouldn't describing what is healthy and good about the thinking of the anti-GM and anti-nuke coalitions help us understand better what is so characteristically diseased and vile about anti-vaccine folk to justify grouping them with Holocaust deniers?
It depends on what point you think you're making. (And perhaps you should make that point explicitly, so that I don't need to guess it before criticizing it, but if I'm guessing wrong, I apologize in advance.) If you are arguing out that an article from 1996 not timely, your argument is "relevant" but not necessarily correct. Note that the thread http://news.ycombinator.com/item?id=1062031 was on the front page when I first noticed this article. It contained a comment linking to the 1996 article. I don't know why the the 1996 article became a standalone thread instead of just a comment on the 1062031 thread, but it might be that someone who read the 1062031 comment found the 1996 article surprisingly worthwhile.
IMO, the 1996 article (and even more the 1991ish "Fable of the Keys" academic journal article which preceded it) remain timely because both QWERTY-is-superior and QWERTY-demonstrates-market-failure stories are remarkably hardy perennials, presented as established fact without acknowledging the Liebowitz/Margolis counterargument. (E.g., _Knowledge and the Wealth of Nations_ by David Walsh (2006), carries approving blurbs from _The Financial Times_ and _The Economist_ on its cover, and should be easy to find in a library, maybe even a chain bookstore. "Paul David" and QWERTY appear in the index many times, but Liebowitz and Margolis do not.)
Incidentally, I would be very interested in a pointer to a comparably serious/academic rebuttal of Fable of the Keys. It has been a very long time since Fable of the Keys was published, and it has been a long time since I last tuned into the controversy, and at that time my understanding was that a rebuttal had long been promised but never produced.
You write "first, they are anecdotal." Fictional, in fact: "once upon a time..."
And you write "second, why are the programmers not taking control of management positions if they know so much better?" That question is outside the scope of the fictional dataset of the original post, but see "Jack and the Beancounter" in http://www.skotos.net/articles/BTH_27.shtml for a related fictional study.
And you write "but realistically, I think Alan created the best product for the company." Perhaps I am just being trolled. But at least this was a good excuse to refer to Jack and the Beancounter!
I agree that his point is valid for computers built on the ordinary substrate of classical switches (whether relays, tubes, or transistors). There are two very influential ways of representing computation, the lambda calculus and the Turing machine; when starting from switches, people (roughly) build something that looks like a Turing machine (with procedural programs) and then, if they want lambda calculus (with more functional programs) they use Turing completeness to emulate it.
That said, it's not 100% clear to me that this must be true for all physical models of computation. (And the existence of Shor's algorithm suffices to keep practical people at least a little interested in computational mechanisms which are fundamentally different from classical switches.) Does anyone know if there are any reasonably plausible computational mechanisms for which it'd be natural to start by implementing something that looked more like lambda calculus, so that if you needed a Turing machine you'd emulate it?
I don't think amateur-vs.-scientist-vs.-genius is a very good set of names for the distinctions he is trying to make, especially if you're going to reach back to Herschel's time. To pick some influential folk who fit into that period, consider Babbage, Darwin, Mendel, Pasteur, Boltzmann, Cantor, Semmelweis, the Wright Brothers, and Wegener. Consider also their rivals and critics. (Since I included a number of controversial folk, various of their rivals and critics are still remembered.) We can come up with generalizations about what the influential folk did right, but I don't think it works to say that, e.g., they were scientists while their critics and rivals were amateurs.
Or consider all the advice in an essay at the level of Hamming's "You and your research." It doesn't seem to me to be useful to try to boil down the multiple properties discussed there into boolean predicates "is this person a scientist" or "is this person an amateur," or even to try to choose particular points in those multidimensional property spaces as typifying "scientist" or "amateur" or "genius."
I wholeheartedly approve of people writing about some of the principles in this essay, notable the ones often summarized as "genius is 99% perspiration" and "a month in the lab can often save a day in the library." Those are very important principles, and very often people don't appreciate them enough. But trying to define the amateur/scientist/genius terminology on top of those principles doesn't seem very sensible.
Stepanov (i.e., Mr. C++ Standard Template Library) has said some comparably strong things about the expressiveness of C++ templates for the kinds of things expressed in STL, and he doesn't seem to be guilty of not investigating Lispy alternatives.
There are various gnarly problems with C++'s model, some of which show up as gnarly problems in STL, even in fundamental stuff like implementing collections of refcounting pointers last time I looked. But as far as I can tell, every language which tries to get this correct within the language has some serious limitations or issues, arguably at least as bad, especially if like Stepanov one of your top priorities is eliminating every last bit of runtime overhead in the generated code. (E.g., implementing arrays of objects only as arrays of fixed-size pointers into variable-sized objects on the heap, as in typical CL and Java, is a no-go given STL priorities, and thus STL constantly wrestles with a bunch of problems that lots of other implementors have dodged by giving up on them.) As far as I know, no one has a comprehensively satisfactory solution for metalanguage facilities within the language.
Getting metalanguage correct by stepping outside the language and upstream from the compiler, writing a separate program to generate the target program, has been a solved problem as long as we've known how to write compilers in Turing-complete languages. That approach is sometimes used for app code in conventional languages, as in FFTW, and to some extent it's what Lispy macros do. But for some applications, including STL as I understand it, stepping upstream is unsatisfactory. Sometimes what you'd really like to do is have your code generator query the compiler about what the compiler knows. STL in particular, IIRC, wants to have its code generation depend on what the compiler knows about types and typedefs and so forth. In an ideal world it would be routine for code generators to be able to ask the compiler about other things, too, like dead code, namespaces, and safety and other pragmas.
It is seldom a good idea, or even sane, to choose to machine something out of titanium (or beryllium). But sometimes there are reasons.
I think C++ does a decent job of being as logically expressive as practical while still supporting C-level memory micromanagement. Typically exposing C-level memory micromanagement issues is a bug, but occasionally it's a feature. So to me, the point of C++ is to express abstractions like polymorphism and exceptions in the same few pages of code as low level memory operations. How often do I want to do that? Not very often, but it can happen.
Also, while C++ is very hairy and I wouldn't want to have to implement it, C++ seems to be implementable enough and standard enough that it may be usefully supported on a platform well before other more expressive languages. Perhaps it's because a lot of the C++ hair is frontend target-independent stuff like parsing and templates, so that once you've ported the C backend you're almost done porting C++ too? Dunno for sure why, but it seems to happen: e.g., it was my impression on my Atari ST many many years ago, and is my casual impression that something similar happened for the Arduino more recently.
C++ is admittedly a weird mess in various ways, but given the choice of source almost-compatibility with C (which I don't particularly value, but which I can at least understand) and C-level linkers (which I have mixed feelings about) a mess seems inevitable. Thus, I still consider it an impressive design.
Occsionally I've seen IMO-excessively broad claims that higher level languages are the best. It sometimes makes me think I might be able to cook up an example where C++ would be hard to beat: a small backtracking search problem where trailing operations (in the sense of "trailing" that you'll see if you Google "trailing backtracking") are in the inner loop. Take this thought of mine with a generous amount of salt, because I've never boiled it down to a really clean challenge. OTOH, I have at least implemented such search in several languages, and I even did a few casual benchmarks --- but 10+ years ago, when performance tradeoffs were rather different.
That's a particular case of a general theme where C-level programming could win: performance dominated by a very simple memory allocation regularity (LIFO, in this case) that the GC doesn't know about. (This theme also involves the precondition that you should care more about a factor of 2 in performance than a factor of 2 in programmer time, which often doesn't hold.) In many instances of this theme, the accreted featuritis bloat of C++ would be overkill, so you'd prefer C. In this instance, though, placement new() of polymorphic objects into LIFO-allocated raw memory is more expressive than anything I can see how to do in C.
Now, we should not forget that many programmers can go all year without running into a single problem where a factor of 2 in performance is worth a factor of 2 in programmer time. And we should not forget that even the ones who need to care deeply about performance often find it's not determined by a few low-level hotspots where low-level tweaking helps. But in some subfields, it's not too unusual to rationally choose to micromanage stuff at the level of C/C++. (I nominate the subfields of embedded programming and compute-heavy search from personal experience, and Quake/Unreal-like engine programming by reputation; I also explicitly do not nominate implementing web browsers, ow ow ow.)
It's harder to think of reasons I'd choose to write sizable programs in C++ (other than the compelling but unsatisfying accidental-seeming reason of early availability on a platform). One reason, though, is that there are many subproblems for which the choice of language doesn't matter all that much. E.g., Fortran is adequately expressive for a lot of the stuff in a book like _Numerical Recipes_, and you can famously write Fortran in (almost) any language. Because of this, I sometimes encounter a program where some key subproblem really cries for a particular style of language, possibly C++, and then I can be language-agnostic about solving the other subproblems, not minding writing it in whatever language I chose for the key part.
You write "in mathematics, Andrew Wiles and Gregory Perelman solved more vexing problems than Einstein did in physics."
Wiles and Perelman are rightly honored for solving problems that had been posed long ago and resisted any number of efforts to solve them. But Einstein is honored not only for that, but also for being the one who posed some of the startling questions that he also answered. E.g., is the speed of light an absolute bound on causal interactions, with all coordinates and other measures being bent as necessary (and quantum phase information being hidden as necessary) to keep that bound from being passed?
Einstein's technical achievement in solving problems that everyone else recognized was very impressive: see General Relativity especially. But if that was all Einstein did, we might (only!) compare him to Maxwell or Dirac. To appreciate Einstein's achievements in terms of analogous achievements of mathematicians, you can't just compare to the achievements of people like Wiles or Perelman, you also need to compare to the achievements of people like Goedel, who is famous for both stating and proving a fundamentally important out-of-the-blue conjecture.
Skip lists seem to be a powerful way of thinking about the problem, anyway. Note that they lead nicely to the very nifty multidimensional generalization, skip quadtrees, www.ics.uci.edu/~goodrich/pubs/skip.pdf .
And, FWIW, they also lead to my algorithms for hash-consing digraphs, which I put up as rough preprints and and prototype code at http://www.wryttyndyffyryntly.com/preprint/. Those algorithms are unreviewed, and I made a bad mistake in an early version, so who knows? (I sent email about them to other people who had cited the Mauborgne papers that I cited, and got no response. I don't know whether it's worth trying to bang them into shape for submission to a journal, and whether or not it's worth it in principle, in practice last year I was too tired of working on them to consider it very objectively.)
"Pretty is good. Ugly is bad. It has always, and will always be this way."
Pretty is often good. Ugly is even more often bad. It has often been that way, and it will often be that way.
"If you don't make beautiful products, its probably because you can't."
Or because your product is wooden pencils, or bulldozers, or parachutes, or test tubes, or transistors, or pillows, or ammunition. Various things resist beauty enough that all you get is the elegance of something that's efficient and reliable, which is not the usual meaning of beauty.
(Yes, I remember our host's SR-71 example. And good sailboats look nice too. But efficient submarines and high speed rockets aren't particularly pretty. Once simple design constraints become too extreme --- streamlining in this case --- it can become hard to satisfy the constraints in an interesting way.)
Various other things like books are borderline cases. A well-done book may have more appealing aesthetic touches than a well-done wooden pencil. But not so many more, because mostly its presentation should keep out of the way of the words. A particularly beautiful fire alarm or fire extinguisher is not necessarily a good idea, either.
I am not as sure as giardini that the money is ill-spent --- poking around in a new regime is an interesting gamble, not necessarily an albatross. But the article does seem unusually asinine. "Leadership in the branch of science that delivered just about every major technology of the past hundred years?" Physics, broadly defined, has delivered major technologies, yes. (Just about every major technology! Don't be distracted by minor technologies like antibiotics, restriction enzymes, pesticides, fertilizers, plastics, etc.) But once you define physics so broadly that it includes transistors and lasers and satellites, the US is still doing fairly well under that definition. Massive spending in the subfield of high-energy physics doesn't give you leadership in the entire broad field of physics, and there's no particular reason to expect major technologies will come primarily from from the high energy subfield in the future. Granting for the sake of argument the silly apparent assumption that outspending is outdoing, CERN still doesn't deliver leadership in subfields like condensed matter physics that may still have a few technologies left in them.
I think the EM field properties are somewhat peculiar even before you get to experimental results that force you to quantize the field. Granted, the EM field is not so weird that understanding the general properties of more tangible waves isn't helpful. E.g., I learned a lot from the ripple tank experiments and demonstrations in my high school physics classes, demonstrating properties like diffraction and the tendency not to scatter from too-small obstacles. That kind of stuff applies nicely to EM waves. But that general familiarity with waviness didn't prepare me for things like relativistic invariance. And historically, I'm in good company there: various sharp 19th century physicists were misled about EM by pursuing the analogy with the more tangible waves they were familiar with.
It is not sufficient simply not to target growth. But not targeting growth removes what is otherwise one helluva tough design constraint for a filter system. Imagine writing a spam filter when you're being paid by beancounters whose bottom line is maximizing the number of messages. Even, sometimes, beancounters who face strong temptation to maximize the number of bytes of email this quarter and worry about the longer-than-a-month-term consequences later.
Also, some kinds of filtering (and related things, like informal community norms) don't scale, so if the community hasn't grown too much, the problem might tend to be easier. Hacker-oriented mailing lists with 100 posters don't seem to be too hard to moderate, but I'm not eager to try 10,000 posters.
Of course since I didn't take offense at being accused of making a "major strawman" argument, I won't mind being accused of another dishonest rhetorical tactic. At least it's not major ad hominem, yay.
When a discussion is devoted to trying to resolve a technical question, it is indeed bad to get distracted by personalities and sociology. But Crichton's article is not a technical article, it's an article on some meta-level like sociology. Not every thread has to resolve technical questions, and it is not a fallacy to talk about sociology in a thread started by a sociological analogy. There is a technical question underneath, certainly. But there are also entire websites (and professional journals, and other things) devoted to the underlying technical question. This thread doesn't need to be devoted to the underlying technical question too.
Imagine if the thread had started from an article analogizing Singularity attitudes today to Christian millenarian attitudes ca. 1000 AD. (Riffing on the "rapture for nerds" idea.) On such a thread, it would not be off topic to talk about personalities and behavior. Sociological discussion isn't necessarily trumped by the question of whether Singularity ideas are technically correct.
Of course, it would be bad if some reader got confused and thought that sociological considerations settle technical questions. If someone correctly perceived that was a major danger, it might even be OK to remind people: "let's remember not to delude ourselves into thinking that talk of personalities and sociology trumps the underlying physical truth." But it would be bad if a reader started firing off accusations of attempted rhetorical trickery at selected nontechnical/sociological remarks. Such a reader would himself be falling prey to the fallacy of being a major twit.
"What are you trying to say, Anti-GW people are nice people and GW-people are rude, therefore we should believe the Anti-GW? I highly doubt such a generalization, sorry." You have willfully misunderstood my argument and then attacked the misstated version. Do you know any technical terms for that?
I stated explicitly some of the things I was trying to say. One thing I was trying to say is that martythemaniak's remark "the horrible politicization by GW opponents is perhaps the second-best example of politicized science being overshadowed only by the disbelief in evolution by creationists" looks like a repetition of a common ad hominem attack on AGW skeptics. I remain unconvinced by your analysis that it is merely an appropriate response given Crichton's provocation.
("It's as if you say 'AGWs are like Creationists', then AGWs reply 'no we are not' and you claim victory by saying 'see, AGWs think their opponents are creationists'." Indeed? It looks to me like someone wrote an article saying AGWs are like creationists, and the top-ranked response was "the irony is overwhelming, because the truth is that AGWs are the modern eugenicists." Though neither analogy is quite fair to martythemaniak, since both make it sound like he was merely posting an ad hominem attack. At least he had the good grace to back up his general rhetorical slam with a paragraph of actual technical information.)
If I had misrepresented Myers as making the most best arguments the AGW folk have, and knocked his arguments down and proclaimed victory, you could honestly say "major strawman." But I am not playing that rhetorical trick. I already acknowledge more level-headed arguments for AGW, when I acknowledged martythemaniak's cite of IPCC as the highbrow case for AGW, and nominated McIntyre as a critic that I think makes solid criticisms. (And I note you aren't impressed with historical buckets, fine, they don't float my boat either. Try bristlecone pines, taking note of how heavily they were weighted in the famous hockey stick temperature reconstruction, and how prominently that reconstruction figured in the Gore/IPCC case for global warming. McIntyre is also a persistent critic of data not being archived, and of records like tree rings ending decades ago and not being brought up to date, and IMHO he's dead right on those things, and the relative incuriosity of the pro-AGW people is curious.)
I didn't knock down Myers to dishonestly imply that that shows I can refute the most valid arguments that AGW has to offer. I used Myers' post as an example to support two of my previous claims about AGW arguments. (1) The way martythemaniak casually compared AGW critics to creationists is not, as you argued, just an isolated instance provoked by Crichton's use of a point-by-point analogy to eugenics. (2) The controversy is uncivil. Crichton's choice of an emotionally-charged historical examples may not be a good thing, but it is not a case of AGW critics dragging a previously high-minded discussion into the emotional mud.
(And once I reread the article, I noticed that passage which seemed so ripely reminiscent of the emotional arguments of a B-movie eugenicist, making it a dramatic example of my other point, the tendency to defend AGW with arguments suitable to defend pseudoscience. You may say picking on a grouchy professor with a well-read blog is unsuitable. Do you suppose the "very cranky right now" professor thought better of his words a few days later, and qualified them and/or apologized for them? I doubt it: usually that's done by adding some kind of text on the web page itself, like "UPDATE: foo," and I didn't see anything like that. So I think you're trying to hold me to an unreasonable standard: most people would agree that a professor of science with a well-read blog is a pretty solid choice as an example of argument tactics used by AGW supporters.)
You wrote "they find some ancient bone ... ridiculous, and too much detail indeed." It's true that an actual important failing of creationists is blowing up some irrelevant detail, often exaggerating or outright misrepresenting it. It's also true that Myers might have been trying, in a dimwitted but virtuously vigorously partisan way, to allude to an important failing of Intelligent Design: unfalsifiability. Either failing could be used as a starting point for a complete rewrite, building something intellectually honest over the rubble of Myers' indignation at creationists for too stubbornly criticizing one of his favorite theories. But would the resulting valid criticism of creationists be applicable as a valid criticism of McIntyre? McIntyre is obviously guilty of what Myers accuses the creationists of, stubbornly criticizing one of Myers' favorite theories. But I don't consider that a sin, and it doesn't seem to me that McIntyre is guilty of the actual sins of the creationists, like being vastly sloppier with details than those they criticize, or claiming a vacuous theory is an improvement over a theory with considerable predictive power.
(And why are you comparing the AGW defenders to people making remarks against QM? My point was that an awful lot of AGW arguments don't look like the arguments characteristic of correct theories. If AGW advocates make remarks that resemble QM skeptics, that doesn't weaken my point, it sorta strengthens it. It is true that in politically charged controversies like Darwinism, flaky arguments were made both on the correct side and on the incorrect side. But that doesn't excuse invalid arguments "on the correct side." I don't know the intellectual history, but I'd guess that Darwin supporters who honored the flaky arguments for Darwinism might have been a contributing factor to the rise of politicized pseudoscientific knockoffs like social Darwinism and eugenics.)
But it's not just oversimplification of collective action, the plot was overblown even at the level of purely individual events in individual characters' lives. Arguably the greatest theoretical/experimental crossover physicist of the century takes the occasion of accepting his Nobel Prize to escape with his Jewish wife from Il Duce, and a few years later stands musing over a nuclear chain reaction in a secret project in Chicago? Puhleeze.