Learning a text based programming language


    Dec 08 2014 | 8:56 pm
    I've used Max for years now, done some pretty cool stuff, but now I want to learn a text based programming language and I don't know which one. There are two things I would like to achieve:
    1) Develop apps for ios, android, osx and windows 2) Write my own externals for Max
    I started to learn Processing quite a while ago, I've worked alongside OpenFrameworks users in the past. Am i right in thinking that c++ would serve me better than a Java based language?

    • Dec 08 2014 | 11:52 pm
      Thanks for the reply. This is where some of the confusion starts to creep in for me in regard to choosing the best language to start to learn. Max externals are in C (I think?), ios/osx uses objective-c (or Swift now isn't it?) - if I learn c++ will the skills be easily transferable? Should I start with c++, C or one of the other C derivatives? Really appreciate the help on this!
    • Dec 09 2014 | 12:03 am
      Barry, Objective-C is fun to learn, a lot of the skills you acquire with ObjC can be "transferrable" to the other C derivatives, including C++. I did the same thing you are doing and started with ObjC (though I did that because my Max/MSP patches were originally for iOS patches), have been working on the rest ever since. C is a bit different and harder to begin with if you haven't done much OOP programming.
    • Dec 09 2014 | 8:30 am
      Swift could be a fun starting point. It is more fun to learn than Objective-C and just as powerful. It is by comparison a more modern language, and Apple obviously wants you to move away from Objective-C to Swift. Worth a look!
    • Dec 09 2014 | 9:06 am
      Raja as always has superb input on the matter. What I would like to add is that I would recommend not overflowing yourself with too high expectations and/or too many languages at once. Choose a domain (e.g. iOS apps, or OSX apps, or simple command line fun, or crafting your own max externals, or web pages... but not more than one to begin with!) and choose a fitting language to learn and then be easy on yourself. If you commit yourself to learning something new and try to spend a little time on it every day, eventually you will get comfortable with it. If it's OSX or iOS, I would definitely go for Swift. It's free and easy, definitely more easy to learn than Objective-C. If you are a math inclined person and would just love to learn programming for the sake of it, I would look at Python. You will find a Python implementation on every platform, even running on iOS. But don't expect to build GUI apps with it from the start. If, however, you would like to build your own max externals, start with C. Don't dive into the Max SDK right away. Just do simple C things and get comfortable with that first. It will never hurt to learn C, because all kinds of languages borrow from it. If you are already deep into Arduino coding and Processing, you might want to look at C++. At any rate, have fun!
    • Dec 09 2014 | 9:25 am
      Hallo Barry it would appear that you and I are on a somewhat similar learning trajectory, even if our end goals differ. I posed this question some months ago and received a lot of good advice:
      FWIW, I have decided to teach myself Supercollider first while hacking away at gen in Max, then later I plan to investigate Eric Lyon's book on Designing Audio Objects; let's see where that takes me.
      Brendan