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
|
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.
|
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. |
||||