prophet621 said:
I've been considering learning a programming language for a while now, despite being told I'm probably too old to learn (I'm 33) I have narrowed down my choices to Python, C or Java. There are a few types of apps I would like to write for OSX but also be able to use them on Linux as well. As for using my created apps in OSX I read that Java can be used but is slower and not as efficient with memory. I also read that I can import Python code to Objective-C to use.
What is the difference between C and Objective-C? I have searched on Google but not knowing anything about either the answers seem to be a bit too technical. If I learn C will Objective-C be fairly easy to grasp? My concern with C is it looks confusing. Everytime I look at a C book I can't help but wonder how anyone remembers all of this and that's just the early learning parts.
You're never too old to learn something new. Programming is no different. The other posters have given a broad overview of the differences between the languages you mention so I won't repeat that stuff.
Your concern with C being confusing is strange since the "early learning" parts of a book on C will be almost identical in the details to the early parts of learning Objective C and Java. Python has a few small differences but basically all the languages you mention have broadly the same syntax.
You remember the details as part of the learning process. If you don't feel that you are able to get this stuff straight then maybe programming is not for you. On the other hand, it is possible that the C book you were looking at was intended for people who already have coding skills and thus was explaining things in terms that an experienced programmer would understand. If this is the case then you should look for another C book to start with.
In terms of language choice, Java is probably your best bet as a starting language. Python is good but there are a limited number of books on Python coding. C is a little raw and quirky in many respects. Objective-C is a nice language but the dirth of introductory programming books may make it hard to get started with.
The basic syntax and concepts from Java are mostly the same as the syntax in C and Objective-C. If your aim is Mac programming then starting with Java you will get to understand programming and get an understanding of object-oriented programming. Then, if you find that Java is limiting you the jump to Objective-C is relatively easy.
Claims that Java is slower and less efficient with memory are technically accurate in some cases. But in practice you are very unlikely to find this a problem. Also, the way Java deals with memory means that there are many programmer errors that come up in C and Objective-C that are impossible to make in Java. The result is that the programmer is more efficient since there are fewer possible errors to be made in Java. Java also mostly helps you avoid the difficulties associated with writing applications to run on different operating systems (such as Linux and OS X).