I post about a variety of things: programming, urban homesteading, python, HCI, women in tech, conferences, Aspergers, neurodiversity, whatever catches my attention.
I also post raw emotional and psychological "processing", to provide a glimpse into the mind of a female Aspie geek.
Wednesday, October 10, 2007
Popperian assumptions
I hadn't realized how much my views of science are based on Popper. I had no idea that that's where they came from.
"falsification" "deduction-based" "willing to overthrow pet theories based on data"
Karl Popper was a philosopher who addressed issues of science.
So, for example, he put forth the idea of "falsifiability" as a criteria for the demarcation between science and pseudoscience. So, to be 'scientific' - a hypothesis must be testable, and the scientists must (at least eventually) offer up some prediction that can be observed as either true or false. If there is no way to falsify the theory, it's not science.
In the discussion among philosophers about "the problem of induction", he basically threw out induction and said you don't need it. Salmon (another philosopher) is taking Popper on and saying that, without induction, there's no rational basis for choosing a well-corroborated hypothesis over flipping a coin.
Anyways - we're reading more about this and I'll probably blog more, but that should give you a start.
You might be interested in exploring the relationship between Poppers philosophy and programming. Notorious issues are the distinction between testing and proofing or dynamic typing and static typing.
Take for instance an arbitrary unit test. You can't do any inductive conclusions from the outcome of a test but you can record all the types of all the variables being created during the test run. After type recording you can form a general hypothesis about the behaviour of the program under the constraint that the test has an acceptable result. The hypothesis is simply a static type correctness assertion retrofitted into the untyped code. Given a type system you can predict more behaviour and discover type errors, besides the possibility to feed a native compiler.
So the Popperian methodology ( hypothetical deduction ) and tests can give you static types for free without limiting your abilities: you decide in which direction to go, either accepting the hypothesis and adapt the program when it predicts a type error or accept the program together with a new UT and reject/extend the hypothesis. This choice is a distinctive feature not available in natural science research.
If you're reading about the philosophy of science, it's worth checking out Overcoming Bias, a blog by several contributors but lead by Robin Hanson. Its premise is "we all say we want to act rationally, but we have lots of biases. What techniques let us identify and overcome those biases?". There are a lot of interesting posts on inductive reasoning, rationality, the nature of proof, etc. but with a practical focus.
6 comments:
I'm intrigued, and a brief Wikipedia search didn't answer. Who or what is Popper?
Karl Popper was a philosopher who addressed issues of science.
So, for example, he put forth the idea of "falsifiability" as a criteria for the demarcation between science and pseudoscience.
So, to be 'scientific' - a hypothesis must be testable, and the scientists must (at least eventually) offer up some prediction that can be observed as either true or false. If there is no way to falsify the theory, it's not science.
In the discussion among philosophers about "the problem of induction", he basically threw out induction and said you don't need it. Salmon (another philosopher) is taking Popper on and saying that, without induction, there's no rational basis for choosing a well-corroborated hypothesis over flipping a coin.
Anyways - we're reading more about this and I'll probably blog more, but that should give you a start.
You might be interested in exploring the relationship between Poppers philosophy and programming. Notorious issues are the distinction between testing and proofing or dynamic typing and static typing.
Take for instance an arbitrary unit test. You can't do any inductive conclusions from the outcome of a test but you can record all the types of all the variables being created during the test run. After type recording you can form a general hypothesis about the behaviour of the program under the constraint that the test has an acceptable result. The hypothesis is simply a static type correctness assertion retrofitted into the untyped code. Given a type system you can predict more behaviour and discover type errors, besides the possibility to feed a native compiler.
So the Popperian methodology ( hypothetical deduction ) and tests can give you static types for free without limiting your abilities: you decide in which direction to go, either accepting the hypothesis and adapt the program when it predicts a type error or accept the program together with a new UT and reject/extend the hypothesis. This choice is a distinctive feature not available in natural science research.
Kay -
That's a really interesting application of the philosophy. Thank you.
If you're reading about the philosophy of science, it's worth checking out Overcoming Bias, a blog by several contributors but lead by Robin Hanson. Its premise is "we all say we want to act rationally, but we have lots of biases. What techniques let us identify and overcome those biases?". There are a lot of interesting posts on inductive reasoning, rationality, the nature of proof, etc. but with a practical focus.
gnat:
I actually have a pointer to that blog in my very next post. It's great.
Post a Comment