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.

From a clear technical perspective, what would be easier for an amateur to learn and be immediately productive in: Python or C?

I am not looking for answers based on hype or marketabillity, just plain technical advantages for amateur developers

share|improve this question
1  
this question bad subjective but if you define what you mean by productive then it would be too localized... I do not think this question is salvageable... Neither/Either/Both. – Chad Nov 1 '11 at 16:03
Well it does ask for solid technical reasons from a specific viewpoint (amateurs). It could be productive, if answers are within the limits posed by the question and not stuff like "Python is better, just because". – Yannis Rizos Nov 1 '11 at 16:06

closed as not constructive by ChrisF Nov 1 '11 at 16:04

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or specific expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, see the FAQ for guidance.

1 Answer

Well python or C are hardly comparable and it will depend on what you want to achieve. But no boubt python allow to faster devellopement if execution speed isn't an issue.

Python is an high level language. It means that you don't really need to know what the computer is really doing to build a program (even if it can help). Plus, you'll be in situation where things are safe. It means that your program will work or fail with an understandable error (most of the time) message and in repeatable way. In addition, python identation make usually the code more readable, which is better if you want to ask help. (C can also be indented in a nice way, but this isn't enforced by the language, so beginners code ends up being unreadable most of the time).

C on the other side is close to the hardware. It means that you have to understand how the computeur work in addition of the language itself to use it. Plus, you'll face many unreliable behaviours and unclear error message, sometime in a non repeatable way. Exemple goes from buffer overflow to usage of unitialized variables. This will usually lead to a segmentation fault, or just mess up a part of your memory and crash the application in a totaly different part when thoses messed up data are used.

Thoses part of C are intentionnal. This give the compiler rooms for optimisation, and being close to the hardware allow you to use it to its maximum effisciency. But this is definitively harder for a beginer.

share|improve this answer
2  
Yes, but why?.. – Alex Nov 1 '11 at 16:03
@Alex > is it clearer now ? – deadalnix Nov 1 '11 at 16:27

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