tag:blogger.com,1999:blog-32881756.post1426440211700420316..comments2024-03-28T18:01:16.461-04:00Comments on Code Master Blog: NIH Syndrome or Blowing Reuse Out of Proportion?Andy Malehhttp://www.blogger.com/profile/10268484073612495328noreply@blogger.comBlogger5125tag:blogger.com,1999:blog-32881756.post-88049396487929375222008-12-08T06:34:00.000-05:002008-12-08T06:34:00.000-05:00An example that came to light recently is the larg...An example that came to light recently is the <A HREF="https://bugs.eclipse.org/bugs/show_bug.cgi?id=253798" REL="nofollow">large number of SWTUtil copies</A> that are floating around in various projects. Another example, perhaps not as direct,is the number of different ways of implementing commands/actions (which is actually more of a moving design target problem). Of course I look at many things in Eclipse and see models that are implemented in specialized ways, e.g., <A HREF="https://bugs.eclipse.org/bugs/show_bug.cgi?id=255371" REL="nofollow">preferences</A>. It also seems to me that things like IConfigurationElement exist only to avoid a dependency on DOM, yet of course most applications depend on DOM in the end anyway.<BR/><BR/>In the end, I'm not sure it's primarily so much a matter of NIH but a sense of complete control and total understanding that drives many people in this direction. It's much the same as people who would rather write 100,000 lines of code by hand than let a generator do it for them because that way they understand the code. Of course when you get 100 such people and they write 10,000,000 lines of code no one understands it all and there might not even be good common underlying patterns to help produce the kind of regularity that would make total understanding possible.Ed Merkshttps://www.blogger.com/profile/05000982591510437551noreply@blogger.comtag:blogger.com,1999:blog-32881756.post-10543330459935073362008-12-08T01:51:00.000-05:002008-12-08T01:51:00.000-05:00Thanks for your comments. Ed, could you give me a ...Thanks for your comments. <BR/><BR/>Ed, could you give me a concrete example in the Eclipse platform where dozens of different simple small solutions to the same problem yielded an end result that's neither simple nor small? I'm curious if you're referring to Eclipse in general or just some projects within it.Andy Malehhttps://www.blogger.com/profile/10268484073612495328noreply@blogger.comtag:blogger.com,1999:blog-32881756.post-8094277266860018262008-12-07T21:05:00.000-05:002008-12-07T21:05:00.000-05:00Andy, while inventing the simpler smaller wheel mi...Andy, while inventing the simpler smaller wheel might well make sense if you're developing a simple small application that will always stay that way, but looking at Eclipse, it's become clear that avoiding bloat, i.e., focusing on a simple small solution, can actually cause bloat, i.e., when dozens of different simple small solutions to the same problem are all combined to yield an end result that's neither simple nor small.Ed Merkshttps://www.blogger.com/profile/05000982591510437551noreply@blogger.comtag:blogger.com,1999:blog-32881756.post-85705829549979835952008-12-07T16:04:00.000-05:002008-12-07T16:04:00.000-05:00Yes ..I agree too . But, abstractions are designed...Yes ..I agree too . But, abstractions are designed to solve more generic class of problems and are usually designed to solve 50 other problems along with your 1 specific problem.<BR/> For example .. weight ( and size) of a JavaScript library might not be worth it if you are using it for few very simple cases..in which case one might be better off handrolling your library ( until you hit that point of diminishing returns ).<BR/>I guess in short "it depends" ;)Anonymoushttps://www.blogger.com/profile/13790165452739314976noreply@blogger.comtag:blogger.com,1999:blog-32881756.post-47860016388117533802008-12-07T12:42:00.000-05:002008-12-07T12:42:00.000-05:00Totally agree with you.With Ruby I learned to stri...Totally agree with you.<BR/><BR/>With Ruby I learned to strive for minimalism, maintainability and full control, so I rather develop small functionality myself, rather than use existing libraries.<BR/><BR/>Whereas in Java I mostly look for existing functionality somewhere, because writing something yourself takes considerably more effort with static typing and all the long method names and stuff :)Soleonehttps://www.blogger.com/profile/12479812548612664672noreply@blogger.com