«« Next » « Previous
«« Next » « Previous

Link Details

Link 69299 thumbnail
User 235759 avatar

By bjrady
via benrady.typepad.com
Published: Mar 05 2008 / 09:14

A recent discussion at SD West, revolving around Agile certification and the need for "Agility" metrics, ended up with me standing on a chair and ranting at the entire audience...
  • 12
  • 6
  • 1065
  • 424

Comments

Add your comment
User 204981 avatar

reido56 replied ago:

-1 votes Vote down Vote up Reply

"although it's very useful to know that I've introduced a bug 20 minutes after creating it, what I really want is to know the very second that I type the offending line in my editor" -- how fascinating that the very expressiveness ("change whatever you want, whenever"!) of languages commonly labeled as "agile" pretty much precludes the technological possibility of static code analysis.

User 205958 avatar

planetmcd replied ago:

0 votes Vote down Vote up Reply

I suppose it's fascinating if the only errors you make are as a result of a type mismatch or malformed method calls. Sometimes programmers make mistakes in logic, not type, also, perhaps the code doesn't integrate with code others have changed and committed. Static typing does nothing to prevent these. Not that static typing is bad. But its advantage is generally its compilability and thus performance, with the minor benefit that an IDE will have an easier time checking for type mismatch errors or bad method calls.

The author's point is that CI is not an end in itself, but is merely the best way we have to quickly get feedback on errors introduced to a code base based on conflicting code or logic errors, statically typed or not.

User 204981 avatar

reido56 replied ago:

-1 votes Vote down Vote up Reply

I said nothing about typing nor about the article's main point. I'm fully aware that continuous integration aids in catching errors other than type (in fact, where I work we use continuous integration for a statically typed language).

My comment only pertained to the wish expressed in what I quoted ("catch errors as I type them"). This goal is almost by definition impossible for a language whose execution can't be determined by just examining source (this examination is "static code analysis" because the code is analyzed without running it). In other words, a proponent of agile who wants something "agile" languages can't allow. That's the fascinating/amusing part.

User 235759 avatar

bjrady replied ago:

1 votes Vote down Vote up Reply

Catching errors as you type them is completely possible. I do it all the time with Infinitest (infinitest.org). It just doesn't find integration errors, and CI is a workaround for that.

User 204981 avatar

reido56 replied ago:

0 votes Vote down Vote up Reply

Automatically running unit tests? Great idea. It's still not static code analysis. Surely everyone realizes that any code that's using "eval()", for instance, simply can't be error-checked before execution? (Unit tests are testing via code execution of a unit.)

Add your comment


Html tags not supported. Reply is editable for 5 minutes. Use [code lang="java|ruby|sql|css|xml"][/code] to post code snippets.