Agile Language

ScriptingLanguages have a poor reputation regarding performance and a good one regarding productivity. Too many people think that they are ToyLanguages.

But things have improved a lot recently and some scripting languages are gaining momentum. In an effort to get rid of the poor reputation of scripting languages, these new languages (some are not so new) are called Agile probably to benefit from the momentum of AgileProcesses.

Some such languages include: And apparently WardCunningham is striking again here:

-- JeanHuguesRobert

I am excited about combining expressive ScriptingLanguage(s) with the trustworthyness of TestDrivenDesign. -- WardCunningham

Ideally, a language should let you pick high or low level, static or dynamic typing, without clutter (such as C++ templates). But when you invest in tests instead of paranoid typechecks, the odds that a given type combination "accidentally" works together moves from a risk to emergent design. -- PhlIp

Would it not be more constructive to talk of AgileDevelopmentEnvironment? rather than language? Where environment would encompass a whole of language, frameworks, editors, coding conventions, tool support ... If you just focus on language, a static type system can seem like straight-jacket of paranoid typechecks, heavy build steps and a lot of unnecessary code. But one of the strengths of a static type system is that it allows for static reasoning about program behaviour, opening up for tool support, that go hand in hand with the agile way, such as refactoring browsers, modelers and interface builders.

What are the distinguishing characteristics of an AgileLanguage? Is it just MarketingSpeak? for ScriptingLanguage?

Basically, any language that doesn't excessively hinder you from doing agile practices. Some specific characteristics:

It seems like this list is missing an obvious one:
Here's a proposal that I think is not likely to fly because it tries to be OneSizeFitsAll, but it's too compelling of an idea not to share.

What if we had a programming language with a hybrid of BDD (BehaviorDrivenDevelopment) and statically checked contracts baked right in, and it was hybrid static/dynamic, procedural/functional, strong-duck-typed, object oriented. Yes, this is wacko, but perhaps not as wacko as it sounds.


View edit of August 13, 2009 or FindPage with title or text search