[CMake] Re: Raven, Antwrap, Buildr

Brandon Van Every bvanevery at gmail.com
Sun Mar 2 21:04:01 EST 2008


On Sun, Mar 2, 2008 at 7:46 PM, Brandon Van Every <bvanevery at gmail.com> wrote:
> On Sun, Mar 2, 2008 at 7:29 PM, Brandon Van Every <bvanevery at gmail.com> wrote:
>  >
>  >  http://www.onjava.com/pub/a/onjava/2007/12/05/introducing-raven-an-elegant-build-for-java.html
>
>  The comments following this article are interesting.  For instance, on syntax:
>
>  "This is just stupid. The Ruby syntax is horrendous. I'd rather use
>  Groovy than Ruby if I was ever going to use a scripting language. I've
>  never been stuck using Ant either, it does everything I need."

Another review and tutorial of basic Raven:
http://danielroop.com/blog/2007/08/08/quoth-the-raven-nevermore/
I have to admit, this code snippet pinged my objectionable-syntax-o-meter:

dependency :compile_dep do |task|
  task.deps << [{'Log4J' => '1.0'}, {'jdom' => '0.9'}]
  task.libs << Dir.glob('../lib/**/*.jar')
end

I'm a good hacker.  I routinely swim through things by monkey-see,
monkey-doo methods if necessary.  I don't have to necessarily know
what's going on to use something.  But I find myself asking:

- is a :colon in front of something a great idea?  From other context
I read, it seems to be a decorator for a symbol.  So I guess if you
forgot the decorator, you'd be in trouble.  I hope that always throws
an intelligible error.
- why do I have to type |bars| around something?
- why put both [square brackets] and {curly braces} around something?
Is that so we can be terse about minimum versions?
- how, in any universe, could this possibly be preferable to
add_dependencies(target dep1 dep2 dep3...) ?

Only Ruby people are going to see this syntax as an advantage.  It's
worth remembering that Ruby got popular not because of the language,
but because of the killer app Rails.  This kind of objection, head
scratching, and explanation is noted in the Java universe.


Cheers,
Brandon Van Every


More information about the CMake mailing list