Skip to main content

Safety is freedom?

Posted by robogeek on December 21, 2005 at 3:50 PM PST

Berin Loritsch riffs off one of James Goslings claims: James Gosling Asserts that Safety is Freedom and heads into type safety in strongly typed versus loosely typed programming language.

It seems the basis for Berin's argument (loosely typed languages are safer/easier) is to take an analogy from Ben Franklin that "Any society that would give up a little liberty to gain a little security will deserve neither and lose both." While old Ben was a wise man and there's a lot of wisdom in that statement, computer programs are not people nor are they societies.

What computer programs are depends on the specific type of program you're writing in the moment. In general software is highly rigid, containing millions of lines of rigidly specified precise instructions. Writing software is like telling a baby to walk by directly firing electrical impulses down the babies nervous system. You get one thing wrong and the baby flops on the floor and starts crying.

People and societies on the other hand are made of processing units that have a huge degree of self intelligence, awareness, and autonomy. You can tell someone to "go over there", and they'll figure out all the steps. But if you tell a computer to do it, you'll look as silly as Scotty talking into the mouse on a Mac in the Star Trek movie where they saved the whales.

Okay, so, he used a bad analogy.

He's right -- there's a kind of software where you want quick scripting language type of experience. But, I say, there's also a kind of software where you want high rigidness.

Strong type safety is useful in the latter case, while in the former you want loose typing. It's really that simple.

I've programmed in dozens of languages and I value both language approaches. Hence, Java has its place with its strong typing, and other languages have their place with their loose typing.

In Mustang we're starting to offer scripting support. I haven't tried it yet, but the general concept is a good idea. That allows a kind of hybrid approach where you have a scripting language with its loose rapid style, accessing modules built in Java and presumably those modules are the ones needing a stricter style.

Related Topics >>