Tell me more ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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

6 Answers

up vote 23 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  
+1 - agreed, the extra baggage is what makes things complicated. – A----------------------- ----- 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

definition

  • Complexity refers to a system, complicacy to parts of a system or the logical correlation between the parts.
  • Something complicated can be simplified without loss of function, unlike something complex.
  • With knowledge, you can solve complicated tasks, but only with skill, you can solve complex tasks.

quote

Technology develops from the primitive via the complex to the simple (Antoine de Saint-Exupéry [1900 – 1944])

fun fact

i² = -1 (complexity squared equals -1)

links

share|improve this answer

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

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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