Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Why We Need a Theory for Software Engineering (ddj.com)
6 points by yarapavan on Oct 3, 2009 | hide | past | favorite | 6 comments


Engineers were building steam engines before there was any thermodynamics. Engineers were playing with batteries before anyone could understand why they were producing an electrical current. The theories followed and they were based on Maths. Maths is the underlying analytical tool.

There was never a 'Theory for Mechanical Engineering' or 'Electrical Engineering', why the need for a 'Theory for Software Engineering'?

Best practices develop over decades (for example in Fire Protection Engineering), as well as Management techniques to manage time and complexity.

Is the Model View Controller technique a theory? No, it is just a management technique. (It will work just fine in one long program as well).

Just hack and let the theories follow :)


Maths is the underlying analytical tool.

But there is a mechanism for this. Maths -> Lisp/Haskell/etc -> time passes -> F# ships in Visual Studio, the most widely-used development tool on the planet.


Sure, there is a mechanism for development. It is Research & Development, that is why a 2009 BMW does not look the same like a 1969 BMW.



What the hell is he talking about?


he's saying that the various processes, methods, and tools we espouse should follow from a fundamental theory of software development. Right now, the nicest thing that can be said for the various things we espouse is that they are "laws" based on empirical observation.

But we don't have an underlying theory explaining which programming languages are more productive than others, or which processes will work and which will fail. It's a lot like chemistry before the periodical table and especially before quantum mechanics. In orther words, it's alchemy.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: