I initialized Eric Raymond (ESR) as a pompous arrogant prick.. and now I finalize it. His article smart questions encourages other pompous arrogant pricks to answer newsgroups questions with "RTFM". My response to "smart questions" is available in my article called Smart Answers.
ESR also effed up the "Hacker's Dictionary" which was originally written by other folks. He has now injected several inaccuracies into it. His statements are usually dumb, too dumb to even be dumb enough to be funny. For example, this lame article I'm writing now and the program below at the bottom of the screen is funnier than the entire hackers dictionary.
ESR and "Borland" Pascal
ESR chooses to attack Borland Pascal and blame everything on it.
"Part of it may be that Thorpe still thinks in
(Borland) Pascal. In C, libraries don't self-initialize -- that is, we
call library initialization routines explicitly at runtime rather than
implicitly at library load-time." --ESR
Hey, earth to ESR: on some Unix OS's (solaris) in C you can self-initialize a library by using PRAGMA INIT, PRAGMA START, and you can finalize by using PRAGMA FINI. On other Unix OS's in C according to the dlopen manpage, we define a void _init(void) function in the library. The only difference is that in C it is like using an old wood stove and in Pascal it is like using an electric stove. ESR, if you want to use your wood stove and pollute the programming community with it - go ahead - but don't think that _INIT in C is superior to an INITIALIZATION section. And ESR, don't eff up saying that libraries don't self-initialize, because on Solaris and other Unix OS's they do with Pragma INIT. That's nothing to do with C language but to do with operating system specification/standard.
More proof this isn't a language issue but an OS issue:
Priya Narasimhan wrote:
> On a SPARC Solaris 2.x machine, I am able to add custom code
> to the .init section of a library using
> #pragma init (blah-blah)
> where blah-blah() is written in C code. How can I do this on
> an Intel machine running RedHatLinux 6.0 with gcc? I tried the
> #pragma init, and it did not work.
Blaming "Borland" Pascal is immature, and effed up. But who is surprised? We've seen ESR say childish statements before.
In other words: initialization in "Borland" Pascal is the same thing as PRAGMA INIT or _INIT available in ESR's "language". It's just done in a less elegant way in C. Some C/unix stuff is obsolete, and here in "Borland" Pascal they have something called human progress where programming becomes more elegant and less retarded.
ESR, if manually initializing all your routines is the way you think (and you probably still use char* instead of strings too), what on earth are you using Python for? That's a high level language where lots of automation happens, just like in your hated "Borland" Pascal.
Eric advertises Pascal as a high level language in his resume as one of his great skills in his history, yet he knocks at the language and bashes it in Hackers Dictionary, on mailing lists, and in several other places. It obviously wouldn't be worth advertising on a resume if it was negative and detrimental to someone's reputation.
Program for Eric
Here's a little Pascal unit for ESR to understand the usefulness of initialization and finalization:
if pants_up(ESR) then pants_down(ESR);
if not bum_wiped(ESR) then wipe_bum(ESR);
Whether the above code is considered Automatic or Manual is something for idiots to fight about. The difference between putting code in the Initialization section of a pascal unit or a PRAGMA INIT section or _INIT function of a C program is a pretty small difference.. other than the fact that C does it the ugly way, and Pascal does it the elegant way.
By the way, folks, I'm a pompous arrogant prick too, and that is why I wrote this article. No hard feelings, ESR.
It is useful to say Modern Pascal instead of the other million things people call it, such as Borland Pascal (the one ESR used) or Object Pascal.