Skip to content

Freedom languages

What, pray tell, is a “freedom language”? Freedom languages are those languages that put the individual programmer at the center of their philosophical world. They work hard to remove any language constructs that reduce programmer freedom, and add the most powerful constructs available. Many are post-modern languages and most tend to be syntactically dense. The other kind of language is the “safety language.” Safety languages think first about the creation of contracts between modules, objects and functions. They focus on teams rather than individuals. They remove language features that are confusing or frequently misused so that there are fewer opportunities to make mistakes and so there can be clear separation of concerns and maximum verifiability. These languages are full of barriers and check-points and well-defined paths and they tend to be syntactically verbose.

via http://www.journalhome.com/codecraft/9003/

I made my decision long time ago, I chose freedom languages ™.

Share and Enjoy:
  • Print
  • Digg
  • StumbleUpon
  • Facebook
  • Twitter
  • Google Bookmarks
  • FriendFeed
  • Google Buzz
  • HackerNews
  • Posterous
  • Reddit
  • Slashdot
  • Tumblr
  • http://blog.andreasansottera.com Andrea Sansottera

    After experimenting with Ruby and Rails for a few months I made the opposite decision. Duckly-typed languages can be useful and handy sometime, but they don’t fit my way of thinking. At some extends they give for free the same flexibility you can achieve in safety languages with design principles and patterns. On the other hand, it looks like my code is more reliable and strong when written in “safety” language (but for other coders may be the opposite). I believe it’s a metter of taste and attitude. Nice definition, though. Thanks to post it! “Freedom” or “safety” language is a great way to distinguish languages not for the technical differences, but for the different rationale behind them.

  • http://oluyede.org/blog Lawrence

    Yep. I find the words “freedom” and “safety” the appropriate ones. Anyway, I respect your choice. I came from safety languages and loved freedom ones. Safetyness in Freedom languages is a matter a coding style, brain and unit tests. Take a look at: http://www.mindview.net/WebLog/log-0025

  • http://www.heureusement.org/ Daniel Bickett

    “They remove language features that are confusing or frequently misused so that there are fewer opportunities to make mistakes and so there can be clear separation of concerns and maximum verifiability.”

    Not that it undermines your point as a whole, but I thought I’d note that GVR chose not to implement inline variable declarations such as:

    if foo = bar(): ….

    Because it is “often misused”, and removing it would prevent the common mistake of forgetting the second equal sign.

  • Jay P.

    Daniel, good point, but I think the reason is summed up by this Guido quote:

    “Python is an experiment in how much freedom programmers need. Too much freedom and nobody can read another’s code; too little and expressiveness is endangered.”

    I personally agree with the ‘if foo = bar()’ decision. In my C/C++ coding, the number of times I’ve accidentally forgotten the equal sign is MUCH higher than the number of times I actually wanted to use the single equal feature. And I’m so glad that Python catches that mistake for me.

    That’s just me though, everyone else’s mileage will differ.

  • Pingback: A song for the lovers » Blog Archive » Java sucks for me