ThoughtStorms Wiki

Of course I'm not against typing in all its forms. This is really the page for noting and discussing my general rabid prejudice in favour of LateBinding, weakly or dynamically typed programming languages.

Read all these first

Good disussion here : which which brings up something else I've noticed recently (AGoodIDE) : that types allow some nice WriteTime support in the IDE. For example, auto-completion of method names, prompting of argument lists etc. It seems you need type awareness for this. What might be nice is the ability to hint at types (for example in argument lists) when you want. (But like VisualBasic actually!)

Another way of thinking about typing is this. Strong Typing essentially forces you to think about the wider scope of your problem. When you're writing a routine to receive a parameter you have to think about the role that that parameter plays in the wider taxonomy of types of things in your system. Conversely, run-time typing lets you think only about what you need from it.

A quote from JamesGosling : In some sense, the brilliant thing that Tim Berners-Lee did was simply to say, "I don't care." For 20 years people had been failing to solve {problems of broken links} in any large-scale way. Berners-Lee decided to just do the simple obvious thing that solves the problem he needed, namely, getting ahold of a resource. And that's actually an easy problem. Coming up with those names, URLs, is a relatively straightforward thing. He did that, and that enabled a lot of what the Web is today. But the Web has all these problems. What happens if a Web page moves or gets deleted? That is exactly the problem of maintaining or managing the configuration of any large scale distributed system. On the one hand, the URL design has made the Web somewhat fragile. Broken links are all over the place. On the other hand, if they had tried to really solve that problem, the Web never would have happened, because the problem is just too hard. (. . Also JackPot)

My first thought. Gosling gets it. But doesn't seem to have got the analogous case of strong typing.

Second thought. Why do I think that forcing strong typing on people is like forcing them to manage the complexity of preventing broken links? It's a very strong intuition for me. But maybe I need to explore this further, and see if it's really true or not.

Obviously it's something to do with OneWayLinks. When you force strong typing on the programmer, you force her to pay that cost of managing the co-ordination of the typing in different parts of the program. And as the program gets larger and more complicated, so those co-ordination costs explode ...

Compare :