Monday, June 18, 2007

Bugs

Well, I'm happy. One of the bugs I filed on sun's java VM's drag and
drop support on windows has been dealt with and fixed.

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6362095

I'm quite proud to have helped improve the robustness of their product.
It makes me wonder, though... Why did this take so long to find?

While trying to figure out what the heck was wrong with my code I posted
a message in the java forums. The only person to reply was someone
wanting to know how the heck I managed to get drag and drop working at
all:

http://forum.java.sun.com/thread.jspa?threadID=567809&messageID=3979708

I'm starting to wonder if drag and drop is one of those technologies the
tends to be badly understood despite the fact it's widely used and very
basic. A few other technologies that have a similar problem are:

1) How various different text encoding work and interact. Everyone
understands ascii and everyone understands that UTF is magic fairy dust
that makes everything work but the concept of a text encoding format and
how it's important to know what text encoding is being used when reading
a string of text seems to be lost on the majority of programmers.

http://www.codinghorror.com/blog/archives/000178.html

2) String escaping. The number of times I've seen code that hasn't been
properly escaped before being processed is uncountable. The basic idea
behind escaping is to allow for arbitrary strings inside another
formated string. The classic example for me is how to display things
like html syntax inside a html document.

http://en.wikipedia.org/wiki/Escape_character
http://en.wikipedia.org/wiki/HTML_encoding
http://amit.chakradeo.net/2005/11/28/escaping-urls-vs-escaping-html/

The reason I mention these two in addition to drag and drop is, is the
one thing they all have in common is the central point of confusion with
these technique/technologies revolves around data formats. In fact,
sometimes I swear that, if I didn't know better, many programmers simply
do not understand what it means for data to be in a format at all.

No comments: