Random links November 9, 2009Posted by Elfi in Computers, Life and everything.
Publishers of all types, from news to music, are unhappy that consumers won’t pay for content anymore. At least, that’s how they see it.
In fact consumers never really were paying for content, and publishers weren’t really selling it either. If the content was what they were selling, why has the price of books or music or movies always depended mostly on the format? Why didn’t better content cost more?
Code and program are the same; any fragment of code may be used interactively. Complex programs are just compositions of simpler ones, and composition of programs is a fundamental concept to both users and programmers. Thus power users cannot help but to be programmers.
Computer science has become a strict subfield of applied mathematics. Creating complex software is primarily modeling: the fundamental task in software development is to create a mathematical model of your problem. The model is encoded directly, and then software scaffolding is built around it, verified to the model. Reasonable shops do not dare ship code that hasn’t been verified to correspond to their model.
Someone claimed that OOP made it easier for programmers to develop large applications from components. I have been thinking about this claim for the last several weeks. There are two parts to this claim. One is that programmers began to develop large applications more easily from components at the time OOP became popular. Two is that OOP was the what allowed ease of development.
I am not certain either claim is true. I did find it hard to believe that OOP could be responsible for improving productivity. When I think of OOP what comes to my mind is virtual method specialization/dynamic dispatch.
Dynamic dispatch is a scary programming technique. When you call a virtual method, you never know what might happen. This makes it difficult to reason about such code, and code that is hard to reason about is hard to maintain. Dynamic dispatch has its uses, but they are relatively limited. I feel that OOP style encourages this dangerous technique, and it ends up being abused. How could a programing technique that is so dangerous be responsible for improving programmer productivity?
Have you ever seen an old photo of yourself and been embarrassed at the way you looked? Did we actually dress like that? We did. And we had no idea how silly we looked. It’s the nature of fashion to be invisible, in the same way the movement of the earth is invisible to all of us riding on it.
What scares me is that there are moral fashions too. They’re just as arbitrary, and just as invisible to most people. But they’re much more dangerous. Fashion is mistaken for good design; moral fashion is mistaken for good. Dressing oddly gets you laughed at. Violating moral fashions can get you fired, ostracized, imprisoned, or even killed.