|
Softpanorama
(slightly skeptical)
Open Source Software Educational Society |
May the
source be with you,
but remember the KISS principle ;-)
|
Ten Commandments of 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 useful,
people will use it even it is slightly slower then compiled language
version. Also 20% of code consume 0% of time, therefore concentrating on
those
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 despite the fact that it doesn't fit your prejudices.
Value your time and don't rewrite things that does not make sense in
any language...
- 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 than 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
[Aug 14, 2009] Hat tip to Mikkel Alan Stokkebye Christiansen
for several spelling corrections...
Copyright © 1996-2009 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).
Site uses AdSense so you need to be aware of Google privacy policy. Original materials copyright belong to respective owners. Quotes are made
for educational purposes only in compliance with the fair use doctrine.
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
- In no way this site is associated with or endorse cybersquatters
using
the term "softpanorama" with other main or country domains (e.g. softpanorama.com) with
bad faith intent to profit from the goodwill belonging to
someone else.
Created June 1, 1998; Last modified:
August 15, 2009