
Many who have read my blog about the
death of Erik Naggum have asked me; "Who was this guy?"
I think Erik deserves a little bit more than those small words I previously wrote about him, and I think that the legacy of Erik Naggum is important to preserve, so therefor I will throw another blog [way longer] out there to try to answer that question.
(Disclaimer; I never really knew Erik Naggum personally, and I have never in fact actually met him, we did however clash together several times in USENET discussions, so I still feel I know him quite well)My first "meeting" with Naggum was in the USENET days, where everyone interesting in debating programming and other IT-related questions would fire up their own personal installation of some USENET reader and look for groups like
comp.lang.c++ and such. At the time I started using USENET (in about 1998) Erik Naggum was already a living USENET legend and held more then 10,000 USENET postings, most of them filled with brilliance, beautiful rhetoric and jaw-dropping thougts. However if he disagreed with you, he did *NOT* hold back ANY of his bullets. If you were a little bit inaccurate or did post something that was even just slightly wrong, he would come down on you with *FURY*. First pointing out gently that you were wrong, and if that didn't help you'd be completely strapped! This guy to a large extend personified the entire era of the USENET as a communication medium.
I "clashed" with him several times, like for instance here where me an Erik (among a lot of other people)
discussed the topic of whether or not UML was God's gift to mankind. Other times we agreed more like here where we are discussing the
topic of whether or not programming related IT words should be translated. Unfortunately for my English readers, both of those threads are in Norwegian ... :(
In fact in the late 90s I am willing to bet that it was more or less impossible to be a programmer and participant at USENET discussions without at some point meeting this extremely charismatic character that was named Erik Naggum.
And if there was some subject he was extremely interested in, it has more then once happened lately that his thoughts have "broken out" of the conventional USENET and into more "modern" communication channels like for instance this one where more than 200 comments exists about
Erik Naggum's rantings about XML. Or like this one where more then 170 comments are being made about
Erik Naggum's death. Some of them quite evil in fact.
However Erik Naggum was this kind of person that everytime he opened his mouth or wrote something - unless you made him loose his balance - in which case he would go "berserk" on you and start name-calling you and insult your intelligence etc - he was perfectly prepared! Most of the times he spoke or wrote anything he would be 100% certain about that he had all the facts before he posted anything, and guess what...
...99% of his ideas are dead fucking *RIGHT*...!Today I recaped some of the discussions
me and Erik had years back on the USENET and in fact even the places where I make the strongest case AGAINST him I can see today that he was right and I was wrong...
Naggum was a true brilliant genious, maybe born a couple of centuries too early, and unfortunately quite too often he would "go personal", but he was mostly *ALWAYS RIGHT*...!
And Erik's biggest obsession was that mankind should build on top of existing knowledge and use the scientific way of discovering and researching the truths out there. And I am 100% positively sure about that if Erik Naggum would have taken pleasure in one thing happening after his death, it would have definitely been the
preservation of his ideas and thoughts...
So I would hereby encourage eveyone who knew him or have references to his ideas and thoughts to help create a
wikipedia article about his person, thoughts and ideas... Why on *EARTH* doesn't there already exist one...? This guy was a *legend* *LONG* before he passed away...!
And I would also encourage everyone to collect his ideas and help preserve them in any way possible. Here are some of his quotes;
Erik Naggum Quotes.
And what should we do with his *website*...?
Obviously
Naggum.no will not live forever...? Someone should somehow rescue that website!
I'll start in fact by rescuing the stuff that can be found at
naggum.no/erik and paste in below. I know that would have pleased him a lot!
Epistemology
Knowledge about reality comes in two flavors: positive (what's true), and negative (what's false). Positive knowledge is hard to establish, certainty more so, but where it can be obtained it is usually worth the investment. Exclusive positive knowledge, such that everything else must be false, is probably impossible even in theory, and we should always keep an eye open for the unexpected truths that go against established truth and methodology. Negative knowledge is easy to establish, certainty is cheap, but its acquisition is always a loss, as it is obtained from mistakes and errors, pain and suffering, betrayal and disloyalty. Because negative knowledge is a drain on the individual and mankind in general, it must be minimized: mistakes should not be repeated, and should cause investigation into what went wrong and why, and we should endeavor to learn what is right.
Knowledge and Information
People search for the meaning of life, but this is the easy question: we are born into a world that presents us with many millenia of collected knowledge and information, and all our predecessors ask of us is that we not waste our brief life ignoring the past only to rediscover or reinvent its lessons badly. The purpose of human existence is to learn and to understand as much as we can of what came before us, so we can further the sum total of human knowledge in our life. I believe the computer is the most significant tool invented, as it is unique in mechanizing part of the process of learning and understanding, or at least giving us that potential. All other tools have been extensions of muscles and limbs, whereas the computer is an extension of the brain, and it is that which we make of it.
Fundamentally, the knowledge and information collected by humanity is much more important than human life. When people kill each other in mass destruction, there will at least be hope for a future if the knowledge and information is not destroyed with it.
Programming
Programming is a form of art. Not only is elegance and beauty possible in programming computers, these are at the core of a good programmer's value system. Computers present to mankind the first opportunity to do what religions all over the world have failed to present: the ability to receive unambiguous answers to incantations and prayers -- computers are the man-made gods who listen. I am, of course, talking metaphorically about instructing computers to create what we want to exist.
Just as other information should be available to those who want to learn and understand, program source code is the only means for programmers to learn the art from their predecessors. It would be unthinkable for playwrights not to allow other playwrights to read their plays, but only be present at theater performances where they would be barred even from taking notes. Likewise, any good author is well read, as every child who learns to write will read hundreds of times more than it writes. Programmers, however, are expected to invent the alphabet and learn to write long novels all on their own. Programming cannot grow and learn unless the next generation of programmers have access to the knowledge and information gathered by other programmers before them.
Good and Evil
The spread of knowledge and information so people can save time is good. The spread of guesswork masquerading as knowledge and disinformation that waste people's time is evil.
Some programs can destroy information, and drain it of its force by making it impossible for other programs to use it outside of that one program. Programs must present information to people so they can make the most use of it in all respects, particularly those that the programmer could not anticipate. Programs that speak languages that other programs understand are good. Programs that create their own languages and block understanding are evil, and must be terminated.
Understanding, Agreement, and Acceptance
How these three approaches to foreign ideas are ordered is a significant indicator of personality type and personal qualities. Those who are unable to discuss an issue without feeling that they accept it before they even investigate it are useless to Knowledge and Information, as they judge before they know. Those who seek agreement before they understand are likely to agree to things they do not understand the consequences of, and will only cause serious damage to Knowledge and Information. Only those who seek to understand, and when they understand, determine whether they can agree, and only when they agree, will accept, can bring human Knowledge and Information further. Anything else is destructive to human life and to the value of each generation building upon the knowledge of previous generations.
The Foolish and the Unintelligent
Many net.users have noticed that I suffer fools hardly at all. It is necessary to point out that I make a sharp distinction between behavior and inherent or innate characteristics. First, people should not be criticized only for what they cannot change. Second, people should be criticized for what they should not do.
Intelligence is probably a genetically determined characteristic. The benefit of intelligence is that the range of one's thinking is longer than is necessary for day-to-day living, and thus that one may see further into the future based on one's perception of relationships between issues and things that are not easy to discover. The unintelligent will have to spend more time getting to the conclusions because they will have to trace each step more carefully. The highly intelligent will, on the other hand, have to be careful that they don't skip necessary steps. The fools, in contrast, are those who skip necessary steps on purpose, or just plain don't care whether they do or not. This is intolerable. No genetically determined characteristic should allow people to make destructive mistakes that should be avoided at all cost.
Small and Big Lies
If a lie is obvious, people will understand it right away, or as soon as they try to act on it, tell it to someone else, etc. This makes big lies harmless; they can even safely be used as humor. In contrast, small lies are capable of serious, long-term damage, and even if it is uncovered, people may have based too much on them to be able to correct it. In a sense, small lies may become truth because people act as if they are. This is why they must be stopped, and stopped in time. Stopping a small lie may require much effort, especially in alerting the complacent masses of its falsity, but stopping it now will require less effort than stopping it later, especially if it spreads.
This is not unlike how we deal with physical dangers. If a substance is known to cause death, it will be withdrawn, banned, or criminalized only if it does so sufficiently fast. A substance that kills a person 30 to 50 years after starting to use it daily, may, at most, not be sold to children. A substance that kills immediately will be subject to intense reactions. This is why smoking can continue to kill millions of people and remain an industry while dissemination of sarin in a subway will cause a historic man-hunt for the perpetrators, even though many more people died from smoking-related ills the same day than were even hurt from the sarin.
Perception, Abstraction and Communication
The process of abstraction consists of rejecting irrelevant data and selecting relevant data to form an idea. The more concrete an idea, the easier it is to see which was the relevant and which was the irrelevant data, the easier for others to judge why each was discarded or retained, and the easier to communicate it. Conversely, the more abstract an idea, the harder.
When communication with other people becomes the primary source of new ideas, there is a danger that we receive "destilled perception", where it is no longer possible to know what was rejected or retained to arrive at it, nor why. Given that we are moving into an Information Age where communication of ideas takes an ever bigger share of our new ideas, losing track of the rejected data is a major problem. I do not believe humans are prepared to handle the lack of rejected data. That is, the validity of our ideas rests on knowledge of the information that argues for and against it. If no such knowledge or information exists, our ideas are not valid. In particular, the lack of verifiable, rejected data, leaves us no means to examine the conditions on which it was rejected.
Security and Censorship
To feel secure is a fundamental psychological need, the lack of which leads to serious personal problems. I think security can be expressed as the belief that what you do not see or know of will also not harm or threaten you. When this belief is challenged, most people will work to reestablish security, but some acquire psychological disorders, instead. Perhaps religious beliefs are based on the premise that something or someone will ascertain that the unknown is harmless, and that religious doubt is precisely inklings of the threat that the unknown is harmful.
Censorship is founded on the premise that if you can hide it, then it also ceases to be a threat, even if it does not go away. Many actions taken by politicians are aimed at showing the public that visible problems are taken care of, to imply that invisible problems are also taken care of. I think cries for censorship surface when the belief that the unseen is harmless breaks down and instead turns into paranoid delusions that nothing unseen is safe. This naturally happens on computer networks, where it is very hard to find the rejected data, which would tend to reinforce any paranoid beliefs in the evils of the unseen.
Size and Complexity
Most systems worth working with vary from huge to gargantuan in size. What makes them worth working with is that this size can be mastered. What makes it possible to master size is human intelligence applied to reduce the complexity caused by lack of understanding. This is true for almost anything in this world except software.
Computers have generally been puny in capacity, but have still solved huge problems. Computer and software engineers have been able to make do with underpowered systems and have managed to squeeze the last drop of usefulness out of machines. This is a very valuable ability, but its main problem is that it works well only as long as the size of the system they squeeze performance out of is so small that they can keep all of it in their memory, i.e., it does not scale very well. When this methodology is applied to larger systems, the usual method of dealing with size and complexity is to partition systems into "modules" that are believed to reduce the complexity faster than they reduce the size of each module, evidence to the contrary notwithstanding. I think this is the reason for our failure to handle large systems in computers: size and complexity in information is not modularizable.
Reduction in complexity in information may be obtained when two or more ideas that are combined to produce a desired result are shown to have a commonality that makes each an application of a unifying principle. Science is rife with such developments -- indeed, it is this that is science. In brief, one may say that scientists take things apart, while engineers put things together. The effect of having engineers work on problems of science should be obvious, and vice versa.
For decades, we have been able to put things together, and Software Engineers have succeeded in solving tremendous problems. Since the engineers have been so succesful, and the Computer Scientists have been unable to reduce the insidious complexity of software systems, it has become customary in some quarters to ridicule the abstractions that Computer Scientists work with, while seemingly small problems are solved with incredible amounts of code and and unbelievable hardware capacity.
Underneath all the complexity in these huge, ever-expanding systems, there must be many unifying principles struggling to get out. If we hope to be able to cope with the size, we must deal with the complexity the right way: by discovering those unifying principles.
The Market
The market is not a force. The forces involved are those of the creative designers and marketing departments. The market is the momentum resulting from the successful application of these forces. The market has no will of its own that could even make it a force: buyers do not cause products to exist; they are forever limited to choose among existing ones, and which they choose is not random. If they cannot choose reasonably good products, such as when the choice is severely restricted by vendors who produce dirt cheap and low quality goods that cater to the immediate needs and wants of the mass market to the exclusion of robust, safe products, we need to react because the products are harmful to users and they no have means to know it until it's too late.
When deficient products are sold outside the software industry, customers sue for damages and the government sets quality standards through laws and regulations to protect users who cannot be expected to have the technical knowledge required to judge the quality of the goods they buy, or whether statements about the quality are honest, so that a baseline quality exists above which to choose products. When deficient products are sold in the software industry, they are hailed as if the "market as chosen", and as (de facto) standard-setting. Why is this? When will the first class-action suit be brought against a software vendor who has knowingly sold deficient products for the past 15 years? (And not just this one vendor -- with the increasing popularity of the Internet, products that offer "internet access" show a surprising disdain for the specifications and the protocols they claim to implement.)
Optimization
Optimization is generally viewed as the purposeful act of improving something under a set of circumstances. It is also generally viewed as a beneficial and useful process. I take exception to this. Optimization is good only when important choices are final -- and they usually aren't. An optimized system has lost some of its freedom to become something else. Any choice that is optimized for a particular set of conditions will be harder to adapt to other conditions than if it were not as optimized.
Optimization can only take place in one direction at a time (although that may consist of several conditions). If you want a change of direction, you will need to backtrack somewhat and start over. If you want a radically different solution, you may need to backtrack very far, or even start all over again. The further you have progressed in this one direction, the harder and more costly the change will be, because you may need first to backtrack and then to progress equally far in another direction before you get a system that is equally "good". This is why software systems are often discarded instead of attempted improved in a different direction. This is why software systems should be discarded instead of improving them in unintended directions.
Optimization means loss of freedom to navigate the solution space. As such, it should not be performed prematurely, and if at all possible, should be done by machine, such that whatever the human being sees is more intent than implementation. Examples of premature optimization include: explicit typing in programming languages, and explicit layout specification in electronic documents, both in office documents and on the WWW.
Unfortunately, designing any kind of system that is intended to be optimized by machine brings the implementation to a much higher level of abstraction, and few people can handle it unless trained not to think in terms of direct manipulation of the objects of the final product.
finished...I read all of these small texts today, and I felt as if I was finding "hidden gems" to be honest. Sure a lot of the stuff which is above is stuff we take for granted today, but remember that this was written in 1996. Like for instance his ideas about programming being an art-form predates
Paul Graham with almost 10 years...!
Which other ideas did he have?
Here's a short list of what I know about what Erik Naggum believed;
- That no programming book should be translated to Norwegian, and (Norwegian) companies should NOT be forced to translating documentation or other materials to Norwegian against their will. And possibly also he argued against Norwegian as a concept. At least he "silently agreed" with me on a debate about that on the USENET about 5 years back.
- Stupidity (in a subject?) and not being able to realize it was a crime and should be punished
- He was actively participating in a HUGE bunch of different science forums, and thought that science and "learning from History" was a *must*. He had nothing good to say about people who were not carefully checking their facts or exaggerated (which was probably a large reason to why I clashed with him so often - as in I do exaggerated...)
- He believed strongly in "Nocebo" which is kind of like the "evil brother" of Placebo. Where you believe that you're sick and hence become so.
- He believed that Lisp was the superior programming language and that all other programming languages was inferior to Lisp. And Perl he saw as *EVIL*. C++ was not directly "stupid", but so complex that no more then 5 people on the planet could truly understand it - and hence it was a bad language.
- He saw it as his mission to teach the world and to make the world evolve.
- He saw religion as *EVIL* and purely believed in science as an explanation.
But there are probably many more out there, and I think Erik (especially now that he is dead) deserves his ideas to be preserved, because as I said, 10 years ago I disagreed with him on 90% of his thoughts, 5 years ago I disagreed with him on 50% of his thoughts, today I disagree with him on 10% of his ideas, and when I come to discover that also his last 10% of thoughts are gems 10 years from now I would really like to be able to go to the source and check out what he has to say about the subjects...
Erik was a brilliant shiny beacon of light and knowledge in this world, and these types of people are the ones building the future for the rest of us, but if we're to have their thoughts comforting and teaching us also millenniums from now, we need to preserve their ideas. And Erik's ideas really deserve preservation...
So can someone with some sort of "pull" at WikiPedia please create
Erik Naggum's WikiPedia Article. If someone deserves it, truly it must be Erik! Controversial, highly intelligent, never afraid to speak his mind, and more often then not 200 years ahead of time...
This guy was a living legend before he died, and now he is only a legend. And humanity needs legends like this to grow, prosper and evolve...
Read his
rant about XML - to understand this man in 5 minutes...
Quote me;
"People are born, they live and they die. The same is true for empires, warlords, kings, queens and fools. But ideas live forever, and for every good idea the gloomy parts of this world becomes a little bit less dark and the world becomes a little bit less frightening and personal freedom and individual enlightenment becomes a little bit closer for all of us to reach."I'll give you one more quote from Erik before I let you go which is...
On elegance
the clumsiness of people who have to engage their brain at every step is unbearably painful to watch, at least to me, and that's what the novice-friendly software makes people do, because there's no elegance in them, it's just a mass of features to be learned by rote. however, this suits people a hell of a lot better than setting out at age 6 to become a great ballet dancer and achieving their goal 20 years later after every tendon and muscle and joint has been asked to perform just a little bit more than nature ever intended over and over and over again. to most people, this is insanity. but in reality, it's art, and it's the _art_ in what we do that makes us human.
PS!
The small letters at the beginning of his sentences and the two spaces after the dots are a *conscious* choice. He felt that it was easier to read text which had small letters in the beginning of the sentences, and since it was easier to grep text written with two spaces after each dot he did so... ;)
As I said, controversial but brilliant to the last bit...
Goodbye Erik, and hello again...
.t