Sign up ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

In Tim Peters's poem "The Zen of Python" (PEP 20), there is a line that goes:

Complex is better than complicated.

I like the theme of the poem, but this particular line has always vexed me. What exactly does this mean in the context of Python and programming?

share|improve this question

closed as primarily opinion-based by MichaelT, gnat, Kilian Foth, Bart van Ingen Schenau, Michael Kohne Mar 2 '14 at 14:04

Many good questions generate some degree of opinion based on expert experience, but answers to this question will tend to be almost entirely based on opinions, rather than facts, references, or specific expertise.If this question can be reworded to fit the rules in the help center, please edit the question.

This type of question is now being discussed on our meta-discussion site. – user8 Dec 5 '11 at 20:18
Complexity is part of the problem, complicated is the wrong solution. – Gilbert Le Blanc May 29 '12 at 14:55

5 Answers 5

up vote 30 down vote accepted

The apparent differences between the two words are as follows

Complex is defined as:

composed of many interconnected parts; compound; composite

Complicated is defined as:

difficult to analyze, understand, explain, etc.: a complicated problem.

Note: complicated has the same definition as complex but also has the definition displayed here.

So it means that it can be composed of many parts but not difficult to understand and comprehend.

share|improve this answer
The line of the poem is hard to understand because in normal English usage we don't really make this distinction between complex and complicated. Mirriam-Webster dictionary complex "a whole made up of complicated or interrelated parts" (emphasis mine). Programming works better in prose than poetry. Poets don't write to be understood. – MarkJ May 29 '12 at 12:19
Where were these definitions from? The OED makes no such easy distinction. – Paddy3118 Jun 6 '12 at 21:36

One could say that having the entire Python library separated into hundreds of modules and packages is "complex". There's a lot to it.

But the language itself is not "complicated" because it's stripped bare of all that extra baggage.

share|improve this answer
+1 - agreed, the extra baggage is what makes things complicated. – Otávio Décio Mar 1 '11 at 19:54

In my understanding, complicated means being unnecessarily complex; there are plenty of things that are complex and still useful, fourier series, integrals, etc. "Complicated" for me brings me the image of entanglement, confusion.

share|improve this answer
+1: Nice. "Complicated" == confusion. – S.Lott Mar 1 '11 at 19:58

Complicated: tangled ball of wires connecting massive numbers of computers together.

Complex: same wires with same network topology, but carefully wound, labeled, tied, and documented.

share|improve this answer
So basically, the difference between how the wires were run at the time of installation/setup. And how they are today... – CaffGeek Dec 5 '11 at 20:06

I'm going to go WAY out on a limb, and dust off some fundamental English grammar.

"Complex" is an adjective. It describes an inherent property. Example: Some systems are complex.

"Complicated" is used as an adjective, but it is in fact the past tense of a verb, "to complicate". Example: This mess is complicated because 47 different managers all worked overtime to complicate what should have been a simple CRUD app.

When something is complicated, it is because some other agent has worked hard to complicate it. (This usage also appears in the medical field.)

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.