When attempting to figure out which language I should learn I heard from coders. “It’s best to know what kind of project you need to make.” I began learning C because I wanted to ultimately help with Blender development & I understood that’s what the core is developed in. My dilemma now is: I wish to recreate the “stabilisation” feature from After Effects CS 5.5. (*It makes jittery video look like it was shot on a dolly track.) Now, do I want to do this with C or Python? Remember I’m new, so if it sounds like I don’t know what I’m talking about, it’d be a good guess that I do not.
Thanks Richard. That’s exactly the information I needed.
C is a good language to start with. Many languages were inspired by C and have similar Syntax. C++ is another common option as on a basic level, it is just an extension of C.
Python is a very easy to learn language. If you decide to go this route, learn Python 3.0 rather than the 2.x series. 2.x is still more popular, but Blender uses 3 IIRC.
There are a world of resources available on the internet. One I’ve heard good things about is: http://learncodethehardway.org/ They have both Python and C.
C ≠ Object C ≠≠ C++
recommend C++ to a beginner is not Sparta, is madness!!
C may be a good choice, but the pointer concept to a complete beginner can be hard to understand! Python is definitely the best option(more easy!) Once you grasped the concept of programming, you can start with C. But not!!! C++ as a first choice!! You’ll take years to forget the bad habits you’ll get while programming with it without knowing the best practices™
if C++ is on a “basic level”, what it is advanced? Functional programming? Assembler?
This is taken out of context (provided that you are quoting me).
It is not uncommon for CS students to learn C++ first. That is what I did. I’m not entirely sure what is so mad about this?
CS = computer science?
This is a particular case, since you have a teacher that tells you what is right and what is not, what will bring to a right design, and what will make you cry blood tears if you’ll try to extend the current implementation.
For a self-taught it is mad because of the many powerful features of C++. “C makes it easy to shoot yourself in the foot. C++ makes it harder, but when you do, it blows away your whole leg.” (C++ has type checking)
For a beginner that learn programming on spare time shooting at his own feet is common practice, you do not wont to end up with the leg blown up.
Learn C++ is mad because of :
-oop logic, so
-inheritance (multiple)
-extension
-operator overriding
-abstraction
-polymorphism
-templates
Learning C++ as a first language you’ll need to learn function programming, object oriented programming and paradigms, generic programming all in one.
With C just functional programming (precompiler and pointer’s logic, but this is needed in C++ as well), so learing C++ is like learning C plus a lot of other stuff. I think it is better to separate the 2 things.
This is why i said it was madness. If you don’t have a guide in the learning, you’ll probably end up with a lot of difficulties( i’m not saying this is impossible, i’m saying it is by far not the best suited language for a beginner). And as a plus, it doesn’t have a good error handling
unless… …you learn how to use exceptions, so another thing to learn.
To conclude with a quote
“C++ is a language that was designed to cater to everybody’s perceived needs. As a result, the language and even more so its implementations have become complex and bulky, difficult to understand, and likely to contain errors for ever.” Morris, Richard (2 July 2009)
Python will make starting easier and more rewarded. The you can move to C/C++
They are both needed in blender
ps: i’m not making it into a war, i was just replying, but i’m still curious about what it is on an advanced level if c++ is on a basic level 
A question of this nature is always down to a number of factors, including but not restricted to the following:
- What you plan on doing with it.
- How much time you have to devote to it.
- How fast you want some results.
I prefer c# and as a hobiest it allows me to do pretty much all I want. It satisfies my goals, in other words.
I would agree that learning c++ outside a formal environment would be very complicated. Not impossible but certainly you’d be in for some interesting times (in the chinese sense of the word.).
You are probably right, specifically for a self taught person.
Moving from c++ to python for me was heavenly. I wouldn’t want anyone to miss out on that. lol
I’m learning c++ in college right now and someday I would like to give back to the community.
Can addons be written in C++ or only in Python?
you can do c/python i believe, maybe c++ too, look at the (old) cycles addon.
Writing python modules in C is really straightforward, but if you have C++ knowledge you can start working on bge(it is written in c++). Ask for the module owners about little bug or todo you can start working on to familiarize with code