Random Notes / CsVs:

Computer Science Versus Laurence Olivier

Use a safety net when programming, but only if you can work safely without one.

Is It Safe?

  • We can prohibit all use of pointers at the coder-level so that our coders will never have to master proper pointer hygiene.

  • We can construct resource-hogging virtual machines (VMs) and insist that only a single thread of a single process run in each VM. That way our coders don't have to master threading and serialization issues (but they could still get into trouble with them, even with these protections).

  • We can ensure every processor has an energy hogging floating point unit built in, so that our coders won't have to master mathematical representation issues, even when use of integer representation would be the better design choice.

  • We can run energy hogging processors that are much faster than they need to be for the applications being developed. That way we can preform a stack check after every processor instruction fetch and shield our coders from ever having to master basic recursion issues. Or better yet, we can simply prohibit the use of recursion altogether.

  • We can provide systems with hundreds of times more energy-hogging RAM than is required by the applications they will support. We can also provide schemes for swapping RAM out to energy-hogging disks. Then our coders' programs can leak memory for days, or even YEARS before the leaks crash the system.


Is this really the best way to make the software
we develop more efficient and less vulnerable?

To paraphrase Sir Olivier:

"Why not try [programming] ?   It's much easier."


This article is © Copyright, Creativyst, Inc. 2007 - 2008 ALL RIGHTS RESERVED.

Links to this article are always welcome.

However, you may not copy, modify, or distribute this work or any part of it without first obtaining express written permission from Creativyst, Inc. Production and distribution of derivative products, such as displaying this content along with directly related content in a common browser view are expressly forbidden!

Those wishing to obtain permission to distribute copies of this article or derivatives in any form should contact Creativyst.

Permissions printed over any code, DTD, or schema files are supported as our permission statement for those specific constructs.

© Copyright 2007 - 2008, Creativyst, Inc.

Written by: Dominic John Repici