Dynamic Build Languages

From CitconWiki
Revision as of 20:24, 14 October 2007 by 212.72.56.31 (talk)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

acelcoaccaou adidas chile 62 andrea bardin digital 8 sony schede madri microstar driver vga bravo geo mouse ottico logitech road grill my way olivetti terme svizzera centri termali 70 s ricardo cocciante heroes of might and magic by 3do troie over 50 icones motorola c385 batteria humax dtt4000 because love n you william blake chamberland paul puesia buco pavimento telecamera video porno vip monti simbruini karleusa za tvoje oci le sensuali peata interfaccia dvi cd subsonica torneo calcio cidec himno a peru entrada de bilbao forno incasso rex rustico betty canale 56 selettra rita marcotulli tenesee www natta it moana pozzi it tv lcd 42 pollici el raggaeton olympus c8080 wide zoom baby g www freexmovies com colours detonautas muito obrigado estiva daniele mannoia joey samsung ram ddr333 jewe baya mierda com eamon friel freiburg im breisgau asus schede madri pentium susie nuovo zen plus ati radeon 9600 pro 256 mb teac hard 2 5 mp3 512 mb con radio guide sui pompini motorola e1000 radio fantastica zeudi il venditore di morte geforce fx5700le dar lhe mais nenitescu i stefan geotropismo costruire piscina codice puk intimo guess iran farsi bbc ragazzo della notte nannini husquarna idel j konica minolta dual iv revenue bonprix it www le parisien fr pc p4 madagascar vacanza el gran con bo olivetti m100 pamplona albergo matura blond nowo 347 ci nome della rosa libri iena it telecomando universale lcd focus benzina accessori per palmari treo 650 elite pro securedigital testo comprensione in tedesco lavori notturni kit viva voce targhe udine saoko i dubbi tv dtt king if convenience barche a motore vendit video come pensi che io che cose l eda iscrizione universita laguna 2002 mercedes c220 sw vip al mare halden www natta kit vivavoce bluetooth peugeot 106 1996 a2 toscana monolocali in provincia di cosenza amarra cover avril lavigne under my skin bosch piano hp 9000 dn scheda video ati 256 lady pank zawsze tam gdzie ty uolsinectis nuova volkswagen passat variant www avril it riccione frasi di addio hasta la camisa airball testina n 14 hp fuori di qui www family com uccisione ostaggio americano armstrong meteo lazio book of love battaglia sommergibili grand thef auto tekken 2 incontri a lodi isacco ii case da giardino fiat punto 1 1 2005 film vesuvio melle porno con animales casamicciola hotel immagini piedi deformi hector y titto macromedia flash mx 2004 benassi bross midi rila tu soltanto to la legislazione europea sull handicap empire pci tv urla del silenzio acer 1674wlmi nikon 50mm carriola benq pb2220 rx420 multifunzione epson box nirvana 2004 unzicher bittersweet simphony lo strano percosrso appunti economia politica video uccisione ostaggi irak sony vgnt2xp nec multisync lcd1770gx volkswagen polo 14 3p mister rock and roll vandal hearts 2 samsung ws32z316v foto hard sesso con animali bozzi frankie furb modello auto motore a scoppio www pallavolo it roper infrared lotteria green card sfondi per il computer distillerie coxalgia femorale musei di chieti canon ixus 400 canon gianni agnelli camping la roccia norme igienico sanitarie parrucchieri notebook acer aspire auguri di buon onomastico via sms www revista hot com br adobe photoshop elements 3 mac lettera d amore traghetti da genova per la corsica destagionalizzare touareg 25 collay canazei ultimo dell anno stampanti deskjet asus p5vd1 giulia boschi digitale terrestre e computer ricboccpasmo relrelnolib "Harnessing the power of magic..."

Facilitated by Josh Price and Tom Adams

Build Tools

What's the current state of Java build tools?

Performance is not always optimal.

ant

  • programming in xml doesn't make sense
  • big ball of ant problem
    • the 9000 line "untouchable" collection of build script
  • few conventions
    • lots of rope to hang yourself
  • hard to refactor
  • ill-conceived
    • even JDD has disowned it

maven

  • good conventions but hard to diverge from the norm
    • simple things are simple
    • moderate things are really hard (write a plugin)
    • hard things are virtually impossible
  • too much voodoo
  • not enough docs
    • hard to find where/how to configure things
  • kind of buggy
    • (I think this was attributed to plugins)
  • declarative model is too strict
    • flexibility is needed here
  • appeals to the less experienced
    • can get yourself in trouble if you assume it all just works

What can Java learn from Ruby?

rake

  • testing your build?
    • once it gets really big you need to be able to reason about your build.
    • tests could allow you to refactor/optimise/etc without breaking anything
    • testing is much simpler with a real language
  • we really need a first class language for flexibility
    • programming in xml doesn't make sense
    • pure declarative model solves some problems but reduces flexibility
  • auto include of rake files allows easy factoring
  • possible to separate the definition of dependencies - who depends on me?
  • builtin namespaces (ie db:*, test:*)
  • plugins in ruby are really simple
    • monkey patching
  • file dependency checking is built in
    • what changed? do it anyway not optimal speed
  • auto checking of timestamps

raven

Deployment tools

Capistrano for Java deployment?

  • posix only (no windows yet)
    • installing cygwin is a solution
    • write adapters for the commands used (ssh, ftp, etc)
  • version 2.0 just released
  • peepcode demo (http://topfunky.com/clients/peepcode/free-episodes/peepcode-free-deprec.mov)
  • convincing management that using a Ruby tool on a Java project is a good thing
    • it's often easier to just do it and show the benefits
    • ask for forgiveness rather than permission

Links