

Why We Need a Theory for Software Engineering - yarapavan
http://www.ddj.com/architect/220300840

======
yannis
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 :)

~~~
gaius
_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.

~~~
yannis
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.

------
alexgartrell
Is this a duplicate?

<http://news.ycombinator.com/item?id=857283>

------
dandelion
What the hell is he talking about?

~~~
raganwald
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.

