Why We Can't Have "Intuitive" Programming Languages
If a procedure named INSIGHT has been defined and then called seventeen times in the program, and the eighteenth time it is misspelled as INSIHGT, woe to the programmer. The compiler will balk and print a rigidly unsympathetic error message, saying that it has never heard of INSIHGT. Often, when such an error is detected by a compiler, the compiler tries to continue, but because of its lack of insihgt, it has not understood what the programmer meant. In fact, it may very well suppose that som...Algorithms are Subjective/Creative Things
he algorithm may be the essence of computer science – but it’s not precisely a scientific concept. An algorithm is a system, like plumbing or a military chain of command. It takes knowhow, calculation and creativity to make a system work properly. But some systems, like some armies, are much more reliable than others. A system is a human artefact, not a mathematical truism. The origins of the algorithm are unmistakably human, but human fallibility isn’t a quality that we associate with ...Programming as a Way of Thinking
Running programs is the whole point of programming, of course, but there is more to it. The ability to execute code makes programming a tool for thinking and exploring. When we express ideas as programs, we make them testable; when we debug programs, we are also debugging our brains.Code is Not Literature
Code is not literature and we are not readers. Rather, interesting pieces of code are specimens and we are naturalists. So instead of trying to pick out a piece of code and reading it and then discussing it like a bunch of Comp Lit. grad students, I think a better model is for one of us to play the role of a 19th century naturalist returning from a trip to some exotic island to present to the local scientific society a discussion of the crazy beetles they found: “Look at the antenna on this...Seibel's observation that reading code is less like literature and more like science is dead on. No matter how readable the code is, when I'm confronted with 10,000 lines of it spread across numerous encapsulated functions, I must tackle it very differently from how I read prose. With a complex literary text, I can just read it in linear fashion with occasional segueing to look up words and concepts, with well-engineered code I must follow numerous cases into different flows of logic. These aren't the same at all.
I appreciate that he's trying to dispel the idea that we "read" code as we read for pleasure, I learn from code by experimenting with it. I open up the debugger and step through it, watch the variables change and see where it goes when I execute it. Most of all, I learn by changing that code and trying to build on it. I have enhanced my javascript skills immensely in recent years by cloning various projects on github and trying to expand on them or adopt them to my own purposes. I don't recommend opening up a code base and just reading it, actively engage it, break it, and enhance it.
A Worm's Mind in a Lego Robot Body
The nematode worm Caenorhabditis elegans (C. elegans) is tiny and only has 302 neurons. These have been completely mapped and the OpenWorm project is working to build a complete simulation of the worm in software. One of the founders of the OpenWorm project, Timothy Busbice, has taken the connectome and implemented an object oriented neuron program. The model is accurate in its connections and makes use of UDP packets to fire neurons. If two neurons have three synaptic connections then when ...State of Mind in a Marathon Coding Session
The peak hour itself was tremendously intense, but during the hours before, and even during the hours afterward, a hacker attained a state of pure concentration. When you programmed a computer, you had to be aware of where all the thousands of bits of information were going from one instruction to the next, and be able to predict—and exploit—the effect of all that movement. When you had all that information glued to your cerebral being, it was almost as if your own mind had merged into th...There is a point where you have the whole program in your head at once, one with it, and you don't want to let it go, so you keep working in a marathon burst of energy.
Programmers Get Better with Age
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 graphs, I was able to produce some interesting stats. I pulled in data of about 70.000 developers whose Stackoverflow reputation is over 100. On average 53% of them have their ...An ingenious conclusion arrived at by mining data on Stack Overflow finds that developers answer more questions as they get older and contribute more to the community.
Jamie Zawinski on Different Kinds of Programming
There's obviously different kinds of programming. Without people who are not like me none of this would exist. But I've always seen much more in common with writing prose than math. It feels like you're writing a story and you're trying to express a concept to a very dumb person-the computer—who has a limited vocabulary. You've got this concept you want to express and limited tools to express it with. What words do you use and what does your I thing.Programming has much in common with prose.
Douglas Crockford on Reading Code
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 merge and if it builds then we ship it and we're done and we forget about it.An important exercise for programmers is to read each other's code.
Guy Steele: Computers are Too Complex to Know it All
I guess to me the biggest change is that nowadays you can't possibly know everything that's going on in the computer. There are things that are absolutely out of your control because it's impossible to know everything about all the software. Back in the '7Os a computer had only 4,000 words of memory. It was possible to do a core dump and inspect every word to see if it was what you expected. It was reasonable to read the source listings of tine operating system and see how that worked. And I ...It was once possible to know all aspects of the computer, but the system has grown too large and complex for that now.