On Mon, Jun 13, 2011 at 1:16 PM, Jean-Sebastien Delfino < jsdelf...@apache.org> wrote:
> On Wed, May 25, 2011 at 6:19 AM, Nirmal Fernando <nirmal070...@gmail.com> > wrote: > > Hi Jean, > > > > Please see my comments in line. > > > >> > >> Another way to ask the question is: What if you spend time to master > >> Graphviz (1.6Mb) and Batik (1657 classes, 8Mb) and build something > >> nice with them, and then somebody else just tries without these big > >> dependencies, at the expense of some hard (but interesting) work to > >> craft and tune the necessary algorithms, and produces a similar result > >> with a few pages of lightweight code? Which one will be more > >> successful? > > > > Reusing is good other than building one from scratch not knowing what > will > > be the outcome, don't you think? > > Sorry for the delay, I've been really busy recently. In a way it's > good that I didn't reply too quickly as that allowed you to figure > part of the answer yourself :) and I see that you've given up on > Graphviz after running into some limitations. > No problem! :) > > I think my main observation is reusing software requires to evaluate: > a) the useful function provided by that software that'll help you; > b) its baggage, limitations, bugs, operational constraints that'll get > in your way; > c) the effort to understand how to use it to your advantage; > d) the effort to adapt and glue it to the pile of other software > you've decided to reuse. > > ... and put that in balance with: > e) not reusing that useful function; > f) but spend the effort you'd had spent to (b), (c) and (d) on writing > the exact function you need. > > Often people only look at (a) and then struggle with (b), (c), (d). I > think this is a problem in particular on the Java platform, where the > development community is very quick to reuse giant piles of code just > because they're available, without measuring all the implications (as > opposed to C or C++ where developers tend to think more before making > a move, or Python for example where libraries are typically smaller or > much easier to re-implement). > Thanks for the explanation! > > I looked at the code you've started to commit in the collaboration > area. Looks like a good start to (f) -- spend quality time to > implement the algorithm you need :). I started on layout algorithm and send a progress diagram to the dev list, hope you saw it! > I have a few review comments: > > - it's good that you have Apache license headers in some files, would > be even better to have them in all the files; > Just now committed! :) > > - a few more comments in the code will help others in the community > review and understand your code, and perhaps even come and help you; > Added few, but will add more in coming days! > > - a Maven build and automated JUnit test cases will help you and > others exercise your code and verify that it works. > I will try to provide them as soon as possible! Thanks. > > -- > Jean-Sebastien > -- Best Regards, Nirmal C.S.Nirmal J. Fernando Department of Computer Science & Engineering, Faculty of Engineering, University of Moratuwa, Sri Lanka. Blog: http://nirmalfdo.blogspot.com/