Freedom vs. Safety  

By Ryan Tomayko under Theory on 25. August 2005

Kevin Barnes’ Freedom Languages is one of the best high level takes on the language divide I’ve read in a long time. He nails the major differences between the situation previously referred to as “dynamically vs. statically typed languages”. But he goes much further, placing languages into either “Freedom” or “Safety” categories and then listing the relative merits of each. I for one will be adopting this update in terminology.

As an illustration of how dead-on Kevin is in his analysis, here’s a link annotated paragraph on what you can expect from the “Freedom Language” advocate:

The advocates of freedom languages tend to talk first about the speed and efficiency of the individual programmer. They discuss the expressive power of different constructs and focus on all the powerful features that the safety languages lack. They point out complex patterns and show off twenty-line systems that do the same thing. They talk more about the ease or purity of things than the safety of things. They are dismissive of static-type-safety and compile-time validation in general.

Also, be sure to check out James Robertson’s commentary on Kevin’s post as well.

4 Responses to “Freedom vs. Safety”

  1. Urs Gubser:

    I’ve started to include this blog in my RSS reader. I really really like the subjects. I’m a developer of many years myself.. but lately I moved more into the project management phase (I guess we all end up there sooner or later) and now look at programming as something I do in my spare time.

    What does that mean: It means I can look at programming from both sides - the one that does it and the one that oversees software projects. Now, I’ve been a big supporter of Java for many years. Java was really the next best thing after NeXT collapsed (and with that my beloved Objective-c). Java was great until about Java 1.2 - that’s when the language became so bloated and all of a sudden tried to be everything to everyone. When Sun decided to roll out a new marketing concept called J2EE, I was first impressed and then suddenly depressed after realizing that J2EE was just another way of making a solution more complex than it had to be - sort of reminded me a lot when people started to think that programming patterns where the future (thanks GoF for that one) - not that there is anything wrong with patterns, it’s just that I don’t neccessarily need them. But anyway, back to this: Java is clearly bloated today and absolutely unusable for large systems - it takes forever to do anything in Java - even the smallest of small problems (the JVM is slow, the memory foot print is crazy and to write a simple look you have to create an iterator [ ok that’s not so different from other languages]). While I have to use Java in my work - I recently started to date a new language called Ruby and I think I’m in Love.. or rather it’s that same feeling that I had when I started to do software development so many years ago.. (in the 80’s). The point being here: statically typed or dynamically typed never really mattered to me - what does matter is flexibility, ease of development and a quick development environment. Ruby has all that, Java had all that.

    comment at 25. August 2005

  2. Greg Buchholz:

    Freedom languages are great, but does that always imply a dynamic language? Here’s my thoughts on the subject.

    comment at 25. August 2005

  3. Ryan Tomayko:

    Freedom languages are great, but does that always imply a dynamic

    Exactly. Dynamicism is a set of techniques for enabling certain styles
    of programming that many find desirable, if not essential. I think the
    article is making a case that its not necessarily the specific
    techniques that we find so useful but the mindset they enable.

    comment at 26. August 2005

  4. Freedom Languages — a seminal essay « Curt’s Comments:

    […] Many thanks to lesscode.org for bringing this excellent essay to my attention. […]

    pingback at 08. October 2006