|
Softpanorama
(slightly skeptical)
Open Source Software Educational Society |
May the
source be with you,
but remember the KISS principle ;-)
|
Ten Commandments
of the Softpanorama Software Development Slackerism
Version 1.01
- Stupidity is not the same as the lack of intelligence... It's an
independent dimension, quality of its own. It's unwitting self-destruction,
the ability to act against one's best interests... It's a typical gifted programmers
talent and you need to cultivate skepticism and your sense of humor in order
to fight this disease before it destroys you...
- There is a very fine line between software development as both job
and hobby and mental disease. Thou shalt cultivate other interests
to ensure that evil software development spirits do not fully possess thy
soul. There's much more to life than developing software day and night
including open source software. Remember
about warning signs of a software developer addiction: "My personal appearance
went downhill. I didn't care. My girlfriend left. I lost my job. I didn't care.
I had become, yes, a open source programmer!". Developers pay for OSS, and they often pay a heavy
price. Just ask Larry Wall.
- Value your time and use the highest level of language possible.
Program in scripting language unless it is absolutely necessary to use
compiled language or Java. If your program does not work or is useless
it is not important how efficient it is. If it is useless people will use it
even it is slightly slower then compiled language version. also 20% of code
consume 0% of time so concentrating on them you can speed the program much
more that writing everything in lower level language. Ignore the proliferation of OO programming languages (all of which
seem to have stolen countless features from one another). It makes it difficult
to understand why all those features are needed, and, especially, why the hell
you should study them. That's not a warning sign that you cannot cope
with the University program. That actually may means two things:
- You are still normal despite studying software engineering for some
time.
- In software fashion rulez no matter what.
- Thou shalt know by your heart that all software sucks but Unix sucks
less the other OSes. There is no
silver bullet in software engineering. That includes Microsoft products,
GCC, Linux, Solaris, Java, etc. Most of the books/articles that worship
some fashionable trends that promise some kind of breakthrough are either intentionally
(written by software engineering charlatans) or unintentionally ( written
by religious zealots) misleading and will be forgotten in a decade or so. The
only true revelation of the art of programming is contained in
The Art of Computer Programming written
by Donald Knuth. In operating
systems domain Unix is more elegant and sucks less that other OSes but it
still sucks.
Beware of those
who say that their software does not suck, for they are either zealots or
liars. Both Microsoft Windows and Linux are to operating systems what McDonalds is to gourmet
cooking: too much fat. Thou shalt try other OSes including
Dos, OpenBSD/FreeBSD, Windows, and OS X.
- When people are free to do as they please, they usually imitate each
other. It's better to destroy your health while you are being handsomely
paid, that do it for free. Paradoxically a lot of great software was written by trying to meet
tough deadlines in the commercial project.
- Beware of "this needs to be rewritten" trap.
More often that not this is just a manifestation of "Not
invented here" syndrome, which is a powerful motivator for doing
stupid things. I've never seen an good programmer who examined the code
and did not say or think "Well, this crap needs to be rewritten!"
If code works, it usually doesn't need to be rewritten even though it doesn't fit your prejudices.
- Thou shall never believe that by clapping hands and chanting "La! La!
La! Free/Open Software is the best!" long and loudly enough, it'll come true.
That's Raymondism. Choose free over non-free only when it is better suits
your needs or you have no money to buy commercial software and thou art willing
to fix what is broken. Choose a license of thine liking for software thou writest and do
not blame those who choose differently for software they write.
- Remember that Unix is more than 30 years old, GNU is more
then 25 years old, and Linux
is more then 15 years old. Never refer to anything that is more then
ten years old as revolutionary. You
should just laugh at those poor jerks who call Linux a "the revolutionary operating
system". Linux is "the last century operating system"
and no better or worse then other flavors of Unix; it just more bloated :-).
Ask yourself if it really make sense killing yourself trying make it better
or promoting it in your crazy corporate IT environment. Whatever
flavor of Unix is present in your environment might suit you just fine :-)
- Open Standards are not equivalent to open source and
are more important then open source. Like people benefit from knowing more than
one language, programmers can benefit from knowing and using at least two OSes:
one for the desktop and the other for the server.
- Monoculture of software is bad,
diversity within reasonable limits is good. Never put all
eggs into one basket, be it Windows or Linux, Java or Python.
Acknowledgements
[Sep 21, 2008] Hat tip to Paul Cubbage
who suggested commandment No. 6
Copyright © 1996-2008 by Dr. Nikolai Bezroukov.
www.softpanorama.org was
created as a service to the UN Sustainable Development Networking Programme (SDNP)
in the author free time.
Submit
comments This document is an industrial compilation designed and created
exclusively for educational use and is placed under the copyright of the
Open Content License(OPL).
Original materials copyright belong to respective owners. Quotes are made
for educational purposes only in compliance with the fair use doctrine.
Standard disclaimer: The statements, views and opinions presented on
this web page are those of the author and are not endorsed by, nor do they necessarily
reflect, the opinions of the author present and former employers, SDNP or any other
organization the author may be associated with. We do not warrant the correctness
of the information provided or its fitness for any purpose.
Created June 1, 1998; Last modified:
November 08, 2008