Post-symbolic communication will be like a shared, waking state, intentional dream. Instead of the word "house", you will express a particular house and be able to walk into it, and instead of the category "house" you will peer into an apparently small bucket that is big enough inside to hold all the universe's houses…
Science and technology multiply around us. To an increasing extent they dictate the languages in which we speak and think. Either we use those languages, or we remain mute.
This kind of data is hard to come by, but thanks to almighty Stackoverflow ands their wise decision (thanks Joel), to make this data publicly available we can mine this data to our collective benefit. With a simple bash script to download the data, a small Java program to extract the stats and Google Docs to make the…
If you give two programmers the same problem—it depends on the problem, but problems of a more mathematical nature, they can often end up writing the same code. Subject to just formatting issues and relabeling the variables and the function names, it's isomorphic—it's exactly the same algorithms. Are we creating these…
One of the things I've been pushing is reading. I think that is the most useful thing that a community of programmers can do for each other—spend time on a regular basis reading each other's code. Then are's a tendency in project management just to let the programmers go off independently and then we have the big…
Seibel: What do you think is the most important skill for a programmer to have? Fitzpatrick: Thinking like a scientist; changing one thing at a time. Patience and trying to understand the root cause of things. Especially when you're debugging something or designing something that's not quite working. I've seen young…
Seibel: Do you think of yourself as a scientist, an engineer, an artist, or a draftsman? Allen: I think of myself as a computer scientist I was involved in my corner of the field in helping it develop. And those were interesting times—the emergence of computer science—because there was a Ic lot of question about, "Is…
Seibel: Do you feel like programmers and computer scientists are aware enough of the history of our field? It is, after all, a pretty short history. Knuth: There aren't too many that are scholars. Even when I started writing my books in 1963, I didn't think people knew what had happened In 1959. I was reading in…
So I don't envy modern programmers, and It's going to get worse. The simple things are getting packaged into libraries, leaving only the hard things. That stuff is getting so complicated, but the standards that people are expecting are stunning. One of the ones ^i^ey showed me stunned me. He was showing me Google Maps…
Java didn't feel right. My old reflexes hit me. Java struck me as too authoritarian. Thats one of the reasons why I mentioned that Perl felt so good, because it's got the safety and the checks but it is so damn multidimensioned that the artist part of me has a lot of free board to express things early and to think…
One of the things that I've been thinking about off and on over the last five-plus years is, "Why is programming so hard?" You have the algorithmic side of programming and that's i close enough to mathematics that you can use mathematics as the basic model, if you will, for what goes on in it. You can use mathematical…
And think about failure modes—I remember one of the great lessons I got about programming was when I showed up at the airport at Heathrow, and there was a power failure and none of the computers were working. But my plane was on time. Somehow they had gotten print-outs of all the flights. 1 don't know where—there must…
think the lack of reusability comes in object-oriented mguages, not in functional languages. Because the problem with object-oriented languages is they've got all this implicit environment that they carry around with them. Vou i wanted a banana but what you got was a gorilla holding the banana and the entire jungle…
George Malamidis taught me something about code attachment a few years ago: You always gain by allowing someone to show you an alternative solution. If someone wants to solve a problem in a different way, there are several gains to be had. If their way is inferior, you have an opportunity to mentor a team-mate. If…
IN MOST contemporary educational situations where children come into contact with computers the computer is used to put children through their paces, to provide exercises of an appropriate level of difficulty, to provide feedback, and to dispense information. The computer programming the child. In the LOGO environment…
Consider some fundamental names: Turing (computation theory and programmable automata), von Neumann (computer architecture), Shannon (information theory), Knuth, Hoare, Dijkstra, and Wirth (programming theory and algorithmics), Feigenbaum and McCarthy (artificial intelligence), Codd (relational model of databases)…
In computer programming our basic building block has an associated time grain of less than a microsecond, but our program may take hours of computation time. I do not know of any other technology covering a ratio of 10^10 or more: the computer, by virtue of its fantastic speed, seems to be the first to provide us with…