4 ms·
I don't hate djb, but I won't run his code. If you should happen to get involved in IETF discussions, I believe you will still occasionally find him there disc
by PaulRobinson 12y ago
I don't hate djb, but I won't run his code.
If you should happen to get involved in IETF discussions, I believe you will still occasionally find him there discussing how to fix various protocols. Back in 2002 I was witness/participant to one discussion involving djb that made me think twice.
Because a great deal of software will not be able to handle Unicode (even now) there was some discussion back then about how to handle domain names in older software once domains with non-ASCII characters were allowed. If your software is assuming all ASCII characters, how do you display/handle a domain with greek or cyrillic characters? This obviously affects DNS and Mail software, so djb's contribution should have been valuable.
The consensus from everybody else was a temporary hack: Punycode. http://en.wikipedia.org/wiki/Punycode http://en.wikipedia.org/wiki/Punycode
djb did not like this. He suggested all software should instead represent the actual characters rather than changing them because humans should be able to read them. He proposed this should be done through ASCII art. So if you were to register ααα.com (that's three greek alphas if your browser can't render them), all software should display this as:
_
/\/ /\/ /\/ / /\ /\/\
\/\ \/\ \/\ o \_ \/ | |
We has very serious, and got very upset when we pointed out this would require re-writing all software deployed to date, and if we were going to do that we'd just make it support Unicode properly.
My problem was that this idea was so batshit crazy I had to then question how crazy his actual implementations were. I dug into the source code of several of his tools.
I came away feeling that the reason bugs had not been found in his code were not because his code was bug-free, but because it is impenetrable noise.
As others have suggested here, it is uncommented, he uses a lot of pointer arithmetic, some parts don't make sense. Making a contribution to improve it is difficult. Identifying if the code is correct or not is near impossible.
DJB's code might be bug free, but it is also quite likely to be bug-ridden but nobody has been brave or bored enough to figure out where those bugs are.
I expect it does not have the same holes as BIND or sendmail (both of which are awful), but it will have holes.
The wonderful beauty of open standards and the work that the IETF has done of course, is that it means we have choices and if you want to run djb's code, you can go and do that. If you don't - and I do not - you have choices of other software that will inter-operate with it as expected.
I don't hate djb, but I don't trust the claims made about his code being watertight, and I do not believe somebody who writes code that is hard for others to understand is worthy of the title "greatest programmer who has ever lived".
Good luck to him and all who use his code, but no thanks, not for me.
P.S. - if you want to see what good code does look like in an MTA, take a glance at the source for exim one day. It is very clear and well structured, I think.
- oskarth 12y agoWhile this [the ASCII art story] is an amusing anecdote, it seems highly unlikely that the reason qmail and djbdns don't have any bugs is because "nobody has been brave or bored enough" to look. Could there perhaps be some other interpretation of his stance in that debate? For example, maybe it was an elaborate joke about the SNAFU that is maintaining compatibility between ASCII and Unicode?
- icebraining 12y agoI found djb's message is which he proposes this (in a reply to parent): http://www.ietf.org/mail-archive/web/ietf/current/msg21058.html http://www.ietf.org/mail-archive/web/ietf/current/msg21058.h... I think parent is very much misrepresenting djb's position. The ASCII art was a (off-hand) suggestion to display UTF-8 domains in a VT-100, not a general implementation.
- mhd 12y agoIf you're referring to this old thread[1], I would say you're misrepresenting things a bit, especially the "all software" and "very serious" parts. 1: http://www.ietf.org/mail-archive/web/ietf/current/msg21058.html http://www.ietf.org/mail-archive/web/ietf/current/msg21058.h...
- electrum 12y ago"There are several options. One option is to work around the hardware limitations in software, displaying something like | /\/ /\ | /^ /\ /\ /\ \/\ \/ | * \_ \/ | | | Another, much more popular, option is to move your email reading, web browsing, etc. from your 1970s-vintage VT100 to a graphics terminal. Have you considered the VT340, for example? Or an IBM PC, model 5150?"
- mhd 12y agoJust for completeness' sake: The 5150 came out in 1981, the VT340 in 1987. The thread was from 2002. I'm German, so take this with a grain of salt: I think there might've been humor involved.