Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Unix philosophy
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
=== Eric Raymond's 17 Unix Rules === In his book ''[[The Art of Unix Programming]]'' that was first published in 2003,<ref>{{cite book |title=The Art of Unix Programming |first=Eric |last=Raymond |author-link=Eric S. Raymond |date=2003-09-19 |isbn=0-13-142901-9 |publisher=Addison-Wesley |url=http://www.catb.org/~esr/writings/taoup/html/ |access-date=2009-02-09 }}</ref> [[Eric S. Raymond]] (open source advocate and programmer) summarizes the Unix philosophy as [[KISS Principle]] of "Keep it Simple, Stupid."<ref>{{cite book |title=The Art of Unix Programming |first=Eric |last=Raymond |author-link=Eric S. Raymond |date=2003-09-19 |isbn=0-13-142901-9 |publisher=Addison-Wesley |url=http://www.catb.org/~esr/writings/taoup/html/ |chapter=The Unix Philosophy in One Lesson |chapter-url=http://www.catb.org/~esr/writings/taoup/html/ch01s07.html |access-date=2009-02-09 }}</ref> He provides a series of design rules:<ref name=taoup-ch1s6 /> * Build [[Modularity (programming)|modular]] programs * Write readable programs * Use composition * [[Separation of mechanism and policy|Separate mechanisms from policy]] * Write simple programs * Write small programs * Write transparent programs * Write robust programs * Make data complicated when required, not the program * Build on potential users' expected knowledge * Avoid unnecessary output * Write programs which fail in a way that is easy to diagnose * Value developer time over machine time * Write [[Generative programming|abstract programs that generate code]] instead of writing code by hand * [[Software prototyping|Prototype]] software before polishing it * Write flexible and open programs * Make the program and protocols extensible.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)