Whahooohooo: Efficiency & Coworkers

Efficiency rules. That’s why I’ve been a happy clam with the new Visual Studio 2005. Yes, it’s as nice as they say. The ads are funny too; I think my co-workers & I were properly nailed.

If you pay close attention, it’s not the technology or the people that makes things inefficient, but the processes and standards.

March 29th, 2006 | .NET, Computer, Microsoft | No comments

Formal Methods Don’t Work For Consumer-Specific, Heterogenus, Event-Based Programming

I actually don’t quite believe that, but hey, it got you reading.

At the core of my thoughts is the observation that formal methods (and software development methodologies that are based on proofs of correctness and such) seem to only find limited application. Basically, they only work in embedded systems for specific customers, and not for everybody to run on their PCs. I have no knowledge of any product on the consumer/IT market which used formal methods in its development (Know of one? School me with your comments).

I think that this is due to two reasons. The first is the institutional sin: ISVs/major leaguers don’t care enough about quality code. That is due to a variety of things that I’m not going to get in to here, as Slashdot covers it well anytime the topic comes up. The second reason there is no formally-developed software on the consumer/IT market is due to the nature of the computing platform in majority use: the personal computer.

Formal methods find success in systems like air traffic control, financial processing, military/space control, etc. What strikes me about these fields is that they are fully concerned with running one program on one (at least logically) system with little human interaction. These environments are the antithesis of contemporary PCs: general purpose computation devices which run many programs on a single system with lots of human interaction.

Once you define requirements such that there is a tightly regulated input/output, with fully defined human interaction and fully defined system & software interaction, the ability to use such formally developed software on a general PC vanishes. This leads me to believe that formal methodologies will never be used outside of their current narrow application scope. When you rigidly define how you are going to solve any problem, the scope of solvable problems shrinks.

Rigid and defined is the opposite of rich and messy, aka innovation, something which the general computing market demands.

Becky, I know you live in embedded land. Care to share thoughts?

February 8th, 2006 | .NET | No comments