You may not have noticed, but a good amount of the things any decent programming will do normally are design patterns. Just because you didn't write a block of code and say to yourself, "it looks like I am using the visitor pattern!" does not mean you aren't already using design patterns. Last time I checked, many core libraries in several languages comes to mind. The Visitor Pattern as I mentioned is the basis of many Smalltalk methods in the standard libraries in just about every flavor. Have fun writing an interpreter or playing back a series of commands/undo list without design patterns. How do you propose to solve some of the glorious C/C++ pointer issues without things like double-dispatch? It seems to me you are likely one of those people who is bitter that some stupid co-worker decided that every connection known to man must be created using something like the factory pattern. There is a lot more to patterns than cutting and pasting. The reason they work is because they are object-oriented. A good majority of design patterns existed long before Java as well, so are you saying that all languages that use design patterns suck? It seems like you have some buried desire to work in a procedural language rather than an object-oriented one.