One of the major differences between the first versions of Delphi and Visual Basic was Delphi’s ability to create components (VB’s VBX components were built using Delphi, C, Assembler, and other compiled languages). Delphi shipped with a large number of components (with source code). Many of the components were use to build Delphi itself (the team continues to ship new components as they add features to Delphi). Because Delphi came with so many useful components, I remember thinking that what we needed were some useless components.
What is a useless component? What would one do with a useless component? Could there actually be a useless component? If you could drop the component on a form or instantiate it with code, wouldn’t it then be used (and therefore be useful)? Somewhere along the way, I was giving some presentations at user groups and mentioned that we needed some developers to create useless components. One developer originally took up the challenge.

As far as I know, the first useless component for Delphi was TSmiley written by Nick Hodges. Nick even wrote an article about TSmiley for Delphi Magazine. At one user group stop, I created a program called Multi-Smiley that created a random number of TSmiley components on a form and used a TTimer component to randomly change the mood of each of the Smileys. I could quibble about the usefulness of TSmiley - you could use it as a status indicator of the success or failure of a calculation or process, but I won’t besmirch the legacy of TSmiley. I’ve been bugging Nick to create TSmiley for .NET (the managed code version of TSmiley).
Marco Cantu gave two talks at the annual Borland Conference in the US titled "The Fun Side of Delphi" and the "Bride of the Fun Side" where he presented several useless components including "The Nothing Component", "The Screen Virus Component", and some useless Data-Aware components.

What other truly useless components do we need? Does anyone want to build a Douglas Adams calculator component (all results end up with a value of 42)?
How about a grafitti painting component for coloring the backgrounds of your forms with things you see on highway walls and railroad train cars? Would a component that converts text in one language to the same language be considered useless?

I also think a Tribble census taker component might enter the world of useless components (this might be considered useful if you were trying to control a lot of Klingons).
It’s been some time since I put out a call for useless components. So I am here today to request ideas for other truly useless components. So come one, come all, post a comment to this blog with your ideas.
{ 3 } Comments
I really like the idea of a graffiti component. I checked, and indeed, a lot of artwork can be found on www.graffiti.org. Someone should help them provide a webservice that serves out a random image, then write a component that consumes this service and paints it on the mainform, startup screen or whatever. Makes the useless component quite advanced, but that doesn’t disqualify it, right?
–Jesper
I am thinking the Heisenberg uncertainty dataset ™.
http://www.bsdg.org/2004/12/useless-components.shtml
FWIW, I once provided Nick with a .NET version of his component. Even a C# version, IIRC.
Rudy Velthuis
Post a Comment