The Artima Developer Community
Sponsored Link

Agile Buzz Forum
Freedom vs. Safety

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
James Robertson

Posts: 29924
Nickname: jarober61
Registered: Jun, 2003

David Buck, Smalltalker at large
Freedom vs. Safety Posted: Aug 24, 2005 3:33 PM
Reply to this message Reply

This post originated from an RSS feed registered with Agile Buzz by James Robertson.
Original Post: Freedom vs. Safety
Feed Title: Cincom Smalltalk Blog - Smalltalk with Rants
Feed URL: http://www.cincomsmalltalk.com/rssBlog/rssBlogView.xml
Feed Description: James Robertson comments on Cincom Smalltalk, the Smalltalk development community, and IT trends and issues in general.
Latest Agile Buzz Posts
Latest Agile Buzz Posts by James Robertson
Latest Posts From Cincom Smalltalk Blog - Smalltalk with Rants

Advertisement

Now here's an article I can really get behind - Kevin Barnes draws a rough categorization of development languages - between "freedom" languages (Smalltalk, Ruby, Python, et. al.) and "Safety" languages (Java, C#, et. al.). He's made some very good points, and also makes it clear that his (and my) side of this argument does involve a few tradeoffs. First off, take a look at his definitions:

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.

With that out of the way, we get to something I've always found irritating - the presumption by "safety" advocates that the (so called) scripting languages are just toys:

The advocates to safety languages tend to deride freedom languages as “scripting” languages or “fringe” languages. They are only fit for hacking out small projects and putting together demos and whatnot. They focus on static-type-safety as one of the most fundamentally critical elements for ensuring program completeness. They may also talk about execution efficiency (memory, speed, etc). They tend to view freedom languages as improper for a larger team of programmers with mixed skill sets. The heart of their arguments is basically that these languages are not “safe” for large projects.

Kevin makes some great points about this, and I'm not going to try to quote his entire article - you should just read it and see what you think. I do like this, from near the end of the piece:

There is one other strange quality to the safety languages. They all look the same. The safety ideal has manifested itself in even the simplest elements of syntax. The providers of safety languages want constructs and syntax that will be comfortable to people who write code in other “major” languages. They want companies to be safe from an inadequately small developer pool. Many languages that started out looking different (Basic or Pascal) have over time morphed to take on the look and feel of the other safety languages. It’s very easy for someone familiar with C++ to read C# or Java or VB or Delphi. They have a lot harder time figuring out Ruby or Smalltalk or Python. Think I’m exaggerating?

Kevin points out that this presumed familiarity is less valuable than you think - stepping into any large project, the idioms and strategies (i.e., the design) used by the developers will matter more than the language selection in terms of getting up to speed. In any case - as I said - read the whole thing. I agree with almost everything Kevin's said here, including his caveats.

Read: Freedom vs. Safety

Topic: The more specs the merrier Previous Topic   Next Topic Topic: One Test per Feature?

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use