Softpanorama
(slightly skeptical) Open Source Software Educational Society

May the source be with you, but remember the KISS principle ;-)

Google   


Ten Commandments
of the Softpanorama Software Development Slackerism

Version 1.01

  1. 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...
     
  2. 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.
     
  3. 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:
  4. 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.
     
  5. 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.
     
  6. 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.
     
  7. 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.
     
  8. 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 :-)
     
  9. 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.
     
  10. 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