>> Mathematics is all about abstraction. There are theories and structures >> in mathematics that have probably gone over a hundred years before being >> applied. As an analogy, just because a spear isn't useful while farming >> doesn't mean it won't save your life when you venture into the woods and >> come upon a bear. > > A spear is a concrete application of the principle of leverage, not an > abstraction. I also point out leverage was discovered experimentally long > before anyone had an abstraction for it.
And an analogy is a device to demonstrate the fundamental character of an argument in a different context. > In any case, so what? Who is saying that mathematics is useless? Not me, > and not Joel Spolksy. You are hunting strawmen with your non-abstract > spear. I don't think it is a strawman. He decries things that aren't immediately useful. That describes almost all pure math. If he had excluded things that have some characteristic of truth, and just talked about overly general systems, I might agree with him. > Spolsky has written at least three times about Architecture Astronauts, > and made it abundantly clear that the problem with them is that they > don't solve problems, they invent overarching abstractions that don't do > anything useful or important, and hype them everywhere. I believe in the idea of "things should be as simple as possible, but not simpler". Programming as it currently exists is absolutely convoluted. I am called on to help people learn to program from time to time, and I can tell you that we still have a LONG way to go before programming approaches a global optimum in either the semantic or syntactic space. Never mind configuring a build or anything else related to projects. The whole setup really is horrible, and I'm convinced that most of the people who are capable of changing this are more concerned about their personal investment in the way things are than helping others. There are a few exceptions like Alan Kay, but mostly people want to graft shortcuts on to what already exists. > You keep reading this as an assault on abstract mathematics, science and > knowledge for its on sake. It isn't any of these things. I never said it was an attack on science. Scientists don't really do abstraction, they explain observations. Mathematicians are the ones who discover truth that may be completely disconnected from reality. > If I'm paid to solve a problem, and instead I build an abstraction that > doesn't help solve the problem, then I'm guilty of doing architecture > astronauting. If I ignore everything Joel wrote and just use that definition, I agree with you. >> He is basically saying they are too clever for their own good, as a >> result of being fixated upon purely intellectual constructs. > > Yes, and he is right to do so, because that is the characteristic of the > Architecture Astronaut: being so fixated on over-arching abstract > concepts that, far from those abstractions making it easier to solve the > problems they are being paid to solve, they actually make them harder. > > Good abstractions enable problems to be solved. Bad abstractions don't. > > If I ask you to build me a website, I probably don't want a website- > builder, I certainly don't want a website-builder-generator, and I > absolutely do not want you to generalise the concept of a compiler and > create a whole new abstract language for describing meta-compilers so > that I can create a brand new programming language for generating meta- > compilers that build compilers that will build factories for building > website generators so I can make my own website in just three easy steps > (the simplest one of which is about twice as difficult as just building > the website would have been). Again, I follow the principle of "everything should be as simple as possible, but no simpler". I have in the past built website builders rather than build websites (and done a similar thing in other cases), but not because I am trying to discover some fundamental truth of website building, because that would be bullshit. I did it because building websites (or whatever else it was) is a boring, tedious problem, and a website builder, while being more work, is an engaging problem that requires thought. I enjoy challenging myself. > If you are being paid to build abstractions in the ivory tower, on the > chance that one in a thousand abstractions turns out to be a game > changer, or just because of a love of pure knowledge, that's great. I > love abstract mathematics too. I read maths in my free time, you won't > find me saying that it is bad or useless or harmful. But does it solve > real problems? You forget that even abstractions that never directly get turned into something real are almost invariably part of the intellectual discourse that leads to real things. > Well, of course it does, and often in a most surprising places. But > that's because out of the hundred thousand abstractions, we see the > hundred that actually solve concrete problems. The other 99,999 exist > only in forgotten journals, or perhaps the odd book here or there. It is pretty rare that an article that has some element of truth doesn't live on through its intellectual progeny. The abstraction that is used in some amazing way will almost always have a large number of "useless" abstractions as intellectual ancestors. This is easy to see just by following the chain of citations for a paper. > This is all well and good. It's not meant as an attack on mathematics. > You can't tell ahead of time which abstractions will solve real problems. > *Somebody* has to be thinking about ways that spherical camels can pass > through the eye of a 17-dimensional needle, because you never know when > somebody else will say, "Hey, that's just what we need to make low-fat > chocolate ice cream that doesn't taste like crap!" and then you'll be > richer beyond all the dreams of avarice. I think you're overly concerned with money and consumption Steven. Those things are ephemeral. Things like truth and beauty are eternal. Moreover, research in psychology suggests people who pursue money and consumption are less happy in general than people who derive joy from creation. > But that doesn't mean that you have to turn every one of those > abstractions into software. I don't really care if checking my email and > deleting a file are both special cases of some abstract file operation, I > don't need to see it in my file manager. Careful Steven, when you make statements like this, it makes me want to agree with you. People are paralyzed by choice, and in general they want to be told what to do, so having interfaces tons of options actually distresses them. >> The electronic properties of silicon (among other compounds) is an >> obvious example of where quantum theory provides for us. We might have >> basic circuits, but we wouldn't have semiconductors. > > A poor example. The existence of semiconductors was demonstrated, not > predicted: Michael Faraday discovered the existence of semiconductors in > 1833, *long* before quantum theory: He observed a phenomenon, he did not explain it. > But what's your point here? We started off talking about abstractions. > Quantum mechanics is not an abstraction, or at least no more than any > other physical theory. It is a *description* of reality (a model), not a > generalisation. Lattice theory, rings of operators, Hilbert spaces, Lebesgue measure. All very abstract mathematical structures created not to solve a particular problem in the real world, but as descriptions of mathematical truth. > To counter Spolksy, you need to show the great practical discoveries and > inventions, not of quantum mechanics, but of a *generalisation* of > quantum mechanics that encompasses QM as a special, concrete, example. Quantum mechanics is built on a foundation of "meaningless" abstractions. If those abstractions did not exist we wouldn't have computers. > > [...] >> The stochastic method, while useful, is many orders of magnitude less >> efficient than analytically closed solutions. Not having access to >> closed form solutions would have put us back hundreds of years at least. > > We don't have closed-form solutions. > > At best we have closed-form solutions of simplified and idealised > problems. E.g. we don't have a closed-form solution for the actual > hydrogen atom, only of a simplified model of that atom: Of course, the world is complex and stochastic. The only complete solution of a system is the system itself. Thankfully, things like the central limit theorem allow us to pretend a lot of that complexity doesn't exist without sacrificing much. > As the famous saying goes, the more advanced the theory, the fewer > entities it can solve exactly. Newtonian physics can't solve the three > body problem exactly; Einsteinian physics can't solve the two body > problem; quantum mechanics can't solve the one body problem; and quantum > gravity can't solve the zero body problem (the vacuum). That may be true in some cases, but I wouldn't call that a universal. If you have to cross a boundary from linear to nonlinear or finitary to infinitary, of course things are going to get messy, because some areas of math are better developed than others. A complex linear system is just as easy to work with as a simple linear system though. -- http://mail.python.org/mailman/listinfo/python-list