The Artima Developer Community
Sponsored Link

Java Buzz Forum
In Defense of the Wheel

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
Brian McCallister

Posts: 1282
Nickname: frums
Registered: Sep, 2003

Brian McCallister is JustaProgrammer who thinks too much.
In Defense of the Wheel Posted: May 3, 2004 9:56 AM
Reply to this message Reply

This post originated from an RSS feed registered with Java Buzz by Brian McCallister.
Original Post: In Defense of the Wheel
Feed Title: Waste of Time
Feed URL: http://kasparov.skife.org/blog/index.rss
Feed Description: A simple waste of time and weblog experiment
Latest Java Buzz Posts
Latest Java Buzz Posts by Brian McCallister
Latest Posts From Waste of Time

Advertisement

Adrian blogged about a tendency for people to reinvent wheels. He points out that it seems to happen a lot in open source. It does, but I am not sure it is a bad thing. He provides an example, five re-implementations of hypercard, none of which are succeeding, and posits that their lack of progress is due to developer resources being spread too thin because of ego problems.

This is a symptom, I think, not the problem. A massive drive, for as long as I have been playng in the software industry, and I suspect much longer, has been to make programming more accessible to the masses. This has succeeded to amazing levels -- Excel can be seen as an extremely high level programming environment. This is also natural, I think, as programming is simply the most precise way to tell a tool what to do. It is not easy to write good software, however. Doing so takes practice. Much like art students copying the work of masters, novice programmers re-implementing the work of masters is one of the best ways to learn.

It is frustrating to watch people reinvent wheels though -- particularly when you know projects which need help. On the other hand, learning is a process of invention (well, Stefano discusses categorization as invention, not learning, but the two are closely twined, and I did enough research on it back in grad school to be comfortable talking about learning as invention if not categorization =). This means that one of the best ways to understand a wheel is to reinvent it. This is why you do labs in school. It also leads to better wheels, sometimes (who wants a cross section from a tree anymore when you can get an all-weather radial?).

To keep it personal and grounded, I'll use my most recent micro-project as an example. I am pretty sure ObjectFilter has been done before. However, it is one of the low hanging fruit problems that Dion mentions as being fast and easy to do with AOP. I am doing it to learn more about AOP (at which almost everyone is a novice) and applying rules systems (at which most people doing it outside of AI are novices) to fine-grained object problems (instead of the classic application to course grained decision making and behavior control problems) and it just so happens that I need the functionality it provides (win for me). Ideally by sharing it other people can learn something as well, and maybe even make use of it productively (win for them). Possibly the ideas will even lead to something widely useful, but for now I'm aiming for the next problem -- which possibly involves putting some rubber around the outside of that hunk of wood to help it get better traction.

Read: In Defense of the Wheel

Topic: [Apr 22, 2004 03:39 PDT] 17 Links Previous Topic   Next Topic Topic: Mobile TiVo Redux

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use