4 ms·
Your continued comparison of physics to software engineering is horribly flawed. Your contrast of science and engineering is horribly naive. In science, we us
by wissler 14y ago
Your continued comparison of physics to software engineering is horribly flawed.
Your contrast of science and engineering is horribly naive.
In science, we use Ockham's Razor regarding explaining phenomena; in engineering we use Ockham's razor regarding implementing requirements. Both follow the same logical, empirical process, and both strive for the same result: as simple as possible, but no simpler.
- astine 14y agoOccam's Razor says that we should prefer simpler explanations to more complex ones with the same explanatory power. That is, we should prefer explanations which don't raise more questions than they answer. This has nothing to do with the engineering 'KISS' principle which desires simpler architectures because they are easier to understand and thereby to debug and maintain. The point is to avoid astronaut architecture, which is what you get when you chase theoretical ideas rather practical solutions. Linus's whole point is that microkernels are a prime example of astronaut architecture.
- dxbydt 14y agoThere is nothing astronaut-ty or theoretical about microkernels. For eg, QNX is a fairly successful, practical microkernel, its what your BlackBerry runs on. If anything, microkernels are one of the most practical ways to approach OS design. You strip the kernel to its bare minimum and do everything else in usermode via IPC. It so turns out in practice that the performance costs of IPC is much more than making a direct syscall in a monolithic kernel, but that is just today's state of the art. As IPC performance improves & monolithic kernel KLOCs explode, you will see microkernels making a strong comeback, especially on mobile. Wait and see.
- jbooth 14y ago"As IPC performance improves & monolithic kernel KLOCs explode" 1991 called. They told you to keep waiting. If you have to write way more code to hack around the message passing performance, you haven't simplified anything.
- jbooth 14y agoHaving to hack up all your code to perform appropriately in the context of a message-passing system is not simpler than a monolithic kernel. That's the rub. If performance were not a concern, message-passing could be simpler.
- wissler 14y agoIf he had only criticized a monolithic kernel and not general ideas in general, then I would not have criticized him. But he takes a single example of an allegedly failed general approach, and then takes a wild leap to the conclusion that all such methodologies are hopeless to try. The irony is that it's Torvalds who is leaping to wild and unjustified generalizations.
- jbooth 14y agoI read it as, if you have a methodology/ideology as your goal rather than an actual goal, you'll fall short of people who keep their eyes on the prize. I guess it could be read multiple ways.
- wissler 14y agoIf he'd said it like that, I wouldn't have taken exception to his statement. I do agree with him that ideas for their own sake are a bad idea, especially in an engineering context.
- andreasvc 14y agoOccam's razor is merely a heuristic, not a part of the scientific method. Its usefulness is debated in philosophy of science, and also in a practical sense in the context of machine learning; their conclusion is that it could very well be false.
- andreasvc 14y agoCf. Domingos (1999): "Occam’s razor has been interpreted in two quite different ways. The first interpretation (simplicity is a goal in itself) is essentially correct, but is at heart a preference for more comprehensible models. The second interpretation (simplicity leads to greater accuracy) is much more problematic. A critical review of the theoretical arguments for and against it shows that it is unfounded as a universal principle, and demonstrably false. A review of empirical evidence shows that it also fails as a practical heuristic." http://reference.kfupm.edu.sa/content/r/o/the_role_of_occam___s_razor_in_knowledge_100134.pdf http://reference.kfupm.edu.sa/content/r/o/the_role_of_occam_...
- snowwrestler 14y agoAre you a scientist or an engineer? You said "we" for both. They do not follow the same logical processes. Science begins with observations and uses inductive reasoning to create theories. Engineering starts with formal rules and proven facts, and uses deductive reasoning to prove the correctness of a particular solution.
- nnq 14y agoside comment to q, not answers (as the q is not for me): isn't engineering about creating a solution that mostly works, based on mostly formal rules and mostly proven facts, test it, start using it in production, and then MAYBE, if you have the need and/or resources actually formally proving that it will keep working in most cases or discover the cases where it will not and ad some hacks for them? (there's actually 2 main approaches to engineering: the science/proof/theory based one and the empirical one that also uses science/proofs/theory but as a scaffolding and as a compass to realize we don't waste resources trying to do something "really" impossible)