What is everyone's programming background on this forum?
Hey everyone,
Just curious to what everyone's programming background is before they went to study Max, or if you are like me and beginning to learn Max.
Many years ago I learnt Pascal and VB and a little bit of C. I mainly use Reaktor in UNiversity, and I am now starting to learn C++ from the ground up which is taking a while, and am also learning Max on the side.
Would you recommend putting all effort into C++ at the moment as it is basically the fundamental of all programming or just try sticking to Max?
Which appreciate it if everyone could post a reply as to what they can suggest and also an insight into their previous programming experience; beginner, intermediate and advanced a like.
cout << "Thanks ";
return 0;
}
i learnt basic in the 80's. :-)
was vb released in 80s? thought it was early 90s?
on a zx spetrum... :-)
http://www.artofsilence.fr/wp-content/uploads/2009/12/spectrum_1.jpg
I started programming actually with max few years back, and gave up short after, due to the failure of making simple video sequencer. (that now I can make in 10 minutes! haha!) I had no notion of programming whatsoever, and it was too much just to follow max tutorials. I hated max and PD for a long time! yeah!
Then Processing came over, and I believe that this is the best educational tool I've ever seen, I could finally learn basic programming skills and understand some concept like iteration, OOP...etc. while drawing stupid circles on the screen...really good way to learn basic programming.
(as many of my generation got familiar with programming while playing with 'action script' that came with Flash 5...I guess.)
Then I met a friend who helped me a lot to make sounds and stuff in Supercollider. It is amazing DSP monster, you can do everything if you are willing to burn your brain out. I was using ONLY SC until this July.
Then, for some reason, I bought a copy of Max, and in a month of time, I'm surprised that I can do and I'm doing EVERYTHING with max now. crazy...
so...before became max newbie, I did learn programming with Processing and Supercollider. but I like max now because I don't want to spend too much time programming and learning theories. Max's advantage is, I guess, you can ignore as much theorical part as you wish and save your time for making art.
somehow, I wish to learn openGL to use along with max in the future.
Hehe, basic is not vb :)
BASIC was there years before there was a GUI for it (the visual part of vb).
I started with BASIC on the MSX as a kid. Now I know Java, some visual basic, some C, some php and some javascript.
Knowing some language with which you can extend the functionalities of Max is certainly recommended. Though with my limited knowledge I will not say anything about whether this should be Java or C or something else.
For ease of use, I agree with the above poster that Processing is very nice.
I have been programming since I was about 12. I am self-taught and very interested in programming language theory.
I have used C, Java, JavaScript, PHP, SuperCollider and some Common Lisp. My current focus is learning Clojure and Haskell. I am also developing domain-specific languages for music-making.
I have been studying composition for 5 years and used Max/MSP extensively during this time, often mixing in Java and JS.
@dthomas86 C++ is a widely used langauge, but by no means fundamental to programming. Personally I think it has some very great flaws, in particular the complicated syntax, and unstrictness in memory and concurrency management. There are two widely used C++ clones targeting virtual machines, namely Java and C#. These fix some issues of C++ but not all.
Haskell and Lisp are some languages you should look into for a very different notion of programming compared to C++. These are so-called functional languages (very simply put, they are more mathematical). Other well-known functional languages are F#, Scheme and Clojure.
There are also many widely used dynamic languages, often called scripting languages; notably Ruby, Python, Perl and JavaScript. Most of these incorporate some important features from the functional languages.
By all means learn C and C++, but be aware that there are many other languages out there worthy of your attention.
I was one of the first people in the UK to fail Computer Studies 'O' Level, which was all Basic ('76?).
Since then, I have also failed to learn Fortran, Pascal, Java and Javascript.
However, Max is not like any of the above, which is why I like it, and I'm happy to say I've enjoyed messing around with it on an almost daily basis since first discovering it some time in '98.
Max is for people who don't get on with 'real' programming ( as well as those that do, obviously) ;-)
cheers
Roger
Little bit of everything, but Max motivated me to dive into programming. Programmed in Basic when I was a kid (launching rocketships that never seemed to launch properly), took a Comp Sci course (101, learned the basics of Machine language, assembly and then C) and excelled in it but didn't apply it.
Started learning Director which tuned me into Javascript (bypassed lingo), and learned Max at the same time (but just tinkering), then it was Actionscript, php, Unix shell scripts. Then realizing I already had a idea about how C worked, I decided to start playing with SDKs in C and started building externals in Max. Now I program just about everything in Max/Jitter because I enjoy it so much and find it's the only programming that doesn't feel like work (whereas Cocoa, Processing, and Java all drive me to drink).
Now I'm learning ObjC 2.0. I find there's a zen to Objective C that I wouldn't have otherwise made sense of had I not been exposed to Max/MSP.
cheers everyone for the reply, especially Hans loads of information there.
I wish I started learning programming ages ago I am 24 now and I am only really now starting to get into it again, its been roughly 5-4 years since I have last programmed in a high level language, and most critical elements have been forgotten.
Plus if I want to get into audio programming there is all the maths involved with digital signal processing which I have barely touched on my degree in music technology. As I have stated in a previous forum I am looking a Masters when I graduate either in Sound Design but I am mostly interested in Audio Programming. But I bet that there are people who are on the audio programming course who have been programming for years.
I saw somewhere that it takes the average person at least ten years to learn something that they are confident in for example; math, programming and even music.
My first programming experience was with JavaScript. When my technical writing career turned even more technical in 1998, I began programming in Visual Basic, and then taught myself how to do C++. When C# came along that was a very exciting time indeed! Love the .NET framework. Nowadays my job requires mostly JavaScript and PHP, with a bit of .NET thrown in for good measure. I am coming up on my first year as a Max license holder, and it's really great to feel the gradual improvement as I continue learning and playing. It does require patience!
I started by learning BASIC(the real kind) on an old AppleIIe drawing graphics using 'hplot' and making simple video games(choose-your-own-narrative-adventure style). Eventually when I tried to make music using BASIC(using 'poke' and 'peek'), it was too tedious so I left BASIC and focused more on music composition and performance. But this was centered around piano(played from when I was 3 'til I was 18). Eventually, I grew tired of the old jazzy/classical sound of a piano in general and wanted to return to computer-generated sounds as they seem the most flexible and diverse of any instrument i've ever heard(not just synthesis but also digital signal processing of audio input).
Eventually, I returned to programming with SuperCollider at the same time picking up Max and CSound. Someone once told me that C(not C++) is the basis of all programming these days(Java, C++, and many other languages stem from C, although they are all finding their own life now and perhaps implemented in better ways...). So I began learning C within the context of programming Max externals(this was about 4 years AFTER I began learning Max in the 1st place).
From what I've seen, it is just as helpful to be well-versed in the arts as programming. In fact, most of the developers I've ever seen on these forums and on the site do not create as nearly interesting of a wholistically designed piece of art or music as people trained particularly in music or arts do. The only exception i've ever seen was Joshua Kit Clayton who actually DID create 'maturely-developed' music long ago. The rest of the music I've heard by the likes of Andrew Pask, Emmanuel Jourdan, Darwin Grosse, Gregory Taylor, etc. seem more like concept pieces(not fully developed to the same degree as people with full arts/music education or experience). If these people do have full arts/music education and experience, then it seems their work for Cycling74 has caused that to diminish slightly. It is not meant as an insult, just to point out that there is a big difference between merely playing with experimental concepts in a research context, and actually conceiving art in a well-developed, wholistic, and mature way.
But hey, I look forward to being proven wrong ;)
________________________________
*Never fear, Noob4Life was never here!*
When I was 12 or 13 or something, I got a book "Programing C on the Macintosh" (I think?) and tried to start learning that. Learned the basic syntax and programming concepts but never made it all the way through the book the few times I started to go through it (don't remember for sure, but maybe I got stuck on pointers, who knows).
In highschool I took a Java course (J2SE had just come out I believe) through a University of Maine extension school. Other then messing around from time to time, I didn't end up using Java for much of anything for a while, but what I learend about encapsulation and object oriented design added some elegance to my Max patches down the road. The only other programming I did in highschool was web based stuff (HTML, CSS, JavaScript, PHP, blah blah blah). My freshman seminar in college (Intellectual Property in the Information Age) was taught by a CS professor who tried to encourage me get back into programming but at the time I told him that I wasn't interested as programming seemed to promote unhealthy sleep and work habbits for me (probably true when I got into it later--I should really email him and let him know that my musical goals have made me take my programing skills out of retirement).
The next summer, a friend of mine showed me Max/MSP 4.3 and told me about Pd. I downloaded Pd and started learning how to make patches and some basic DSP skills from drafts of Miller Puckette's book (which was unpublished at the time). Pd seemed pretty neat, but it wasn't until I started taking the electroacoustic composition/history classes at my school that I started to do anything interesting with Pd (also picked up a little bit of CSound skills in one of those classes). During my senior year, I was using Pd-extended for external (that was built into Max/MSP) I needed for a piece I was working on (I usually used vinilla Pd) and got hooked switching as soon as the demo expired.
Sometime after I was finished with my B.A. I brushed up on my Java and JavaScript skills for object and script development to extend Max. Later I officially finished teaching myself C, learned enough C++ to get by, and started teaching myself Objective-C for iPhone development.
In the past year, being back in school working on my master's degree, I've taken a few CS classes to continue my training (first time learning some coding skills in a class environment since highschool). First I took their low level CS class in Java just to get someone grading my code to improve my style (did help, and picked up some new concepts of how to use inheritence). At the same time I was learning MATLAB for prototyping some DSP ideas. The other CS courses I took were focused around numerical computation and machine learning. I've also been focusing a lot recently on working with one of my professors developing my DSP coding skills in C.
I recently took a stab at learning LISP, and I must say I find it a very interesting way of programming but I'm not really sure what I'd use it for.
Would you recommend putting all effort into C++ at the moment as it is basically the fundamental of all programming or just try sticking to Max?
As others have said, no particular reason to study C++ to do Max (although learnign C++ first would mean you would be ready to start making your own externals with the Max SDK). That being said, even though Max isn't really object oriented, what I learend about encapsulation and object oriented design from learning Java was helpful in making my patches. If you are going to learn a language to learn programming concepts, my vote would go for Java and then look into C/C++ because of Java's memory management and that it is strictly object oriented by design (where as C++ can operate under a few paradigms).
Now I'm learning ObjC 2.0. I find there's a zen to Objective C that I wouldn't have otherwise made sense of had I not been exposed to Max/MSP.
I agree, Objective-C is indeed very elegant, but what is the connection you are drawing with Max? I haven't seen that before.
Wow, that ended up long--sorry for the rant!
Great replies guys cheers,
also how do you all cope with the complex math involved in programming? I used to be pretty confident in math but like everything in life if you don't keep practicing then you are going to forget things. I am sill struggling with dealing with hex and octal numbers :( any books you can recommend to brush up on maths in either the programming world or music world? I found this book on amazon that seems alright but pretty complicated : http://www.amazon.co.uk/Music-Mathematics-Pythagoras-John-Fauvel/dp/0199298939/ref=wl_it_dp_o?ie=UTF8&coliid=I31SBH6YRR62AH&colid=SD6ZU1CJ6ZEX
erm
I've got a sega mega-drive, does that count?
Seriously, I don't qualify as a programmer I think. My background is in composition and performance, so I had to learn programming concepts (syntax, logic etc) in order to use Max/Processing/Arduino.
If wasn't busy with a fulltime PhD, I would love to learn C/C++ (?), to open up the worlds of SuperCollider/CSound et al
Brendan
also how do you all cope with the complex math involved in programming?
Hmm, good question. Math has always come easily for me, although that started to change when I encountered some linear algebra in this Numerical and Computational Systems course I took in the winter. I haven't been using that too much recently in the past couple months and will need to do some refreshing. Whatever topics you are less confident in, I would try to pick up some math textbook covering that area (one with solutions to at least the odd problems or something in the back); that way you have information in the chapters to refresh you and problems to practice. I've got one linear algebra book, but will probably buy myself a second one for that reason (found one in my school's library that seemed easier to practice with, so if you have a university library nearby you might want to browse there before buying).
Google is my other source for refreshers. If I need to double check that I'm remember some rule I haven't used in a while correctly, I will search and can usually find some forum post with somoene asking a similar question. I will admit I do that quite frequently with log rules/identities--even with my natural talent for math, that has been one thing since highschool (or middleschool, can't remember when I first learned them) that just won't stick in my brain.
I am sill struggling with dealing with hex and octal numbers
Usually to be sure I'm not screwing up base conversions in my head, I use a coding calculator that has buttons to switch between binary, decimal, hex. (I use Coder Calc on my iPhone, but I'm sure there are other similiar desktop programs out there or even real world calculators that do this)
I found this book on amazon that seems alright but pretty complicated : http://www.amazon.co.uk/Music-Mathematics-Pythagoras-John-Fauvel/dp/0199298939/ref=wl_it_dp_o?ie=UTF8&coliid=I31SBH6YRR62AH&colid=SD6ZU1CJ6ZEX
Looking at the table of contents, that book seems all over the place (in a good way!), so I'm not sure it would be your best but for programming oriented math specifically. At the same time, it does seem to provide an overview of all sorts of different ways that math is involved with music so looks like it may be an interesting read.
Seriously, I don't qualify as a programmer I think.
It still shocks me sometimes how much I do qualify--I still prefer the title "composer/improviser who programs".
@Roth I always find it sad that people feel they need to disqualify themselves from anything. There are many different criteria of skill. I think that practical and creative programming require very different outlooks. In practical programming, you have a goal, while in creative programming you have to reflect over what is interesting or meaningful to do.
Anyway, it is better to know little and be willing to learn than to know much and be ignorant, right?
@dthomas86 There isn't that much math in programming actually. Basic arithmetic, logic and set theory is what you need to learn any language really.
Things like audio processing require calculus, and writing compilers and such may require some formal language and graph theory. The real peculiarities of modern math (combinatorics, game theory, category theory, linear algebra) are rarely used by programmers except in specific cases.
dthomas86 wrote:
"also how do you all cope with the complex math involved in programming?"
The book, 'Design Patterns...' is also helpful.
HansHoglund wrote:
"Anyway, it is better to know little and be willing to learn than to know much and be ignorant, right?"
"Knowledge speaks, but wisdom listens" -Jimi Hendrix
________________________________
*Never fear, Noob4Life was never here!*
@roger
"I was one of the first people in the UK to fail Computer Studies 'O' Level, which was all Basic ('76?). Since then, I have also failed to learn Fortran, Pascal, Java and Javascript".
This gave me a hoot!
As people seem to be recommending texts/resources, has anyone used Gareth Loy's "Musimathics"?
Brendan
@Hans Oh, of course: just making my own little strange joke because for some reason recently I've been reminded by the number of people I have encountered who like to put people into one of two bins: composer or technician. Recently though, I've had the pleasure to be hanging out and working with peope who are in the "both" category, and that is always a cool thing.
I've been reminded by the number of people I have encountered who like to put people into one of two bins: composer or technician
Sad but true. I spoke to a guy who worked at IRCAM in the 90s, where the division was especially prominent. People were admitted as either composer or researchers, and crossovers was a no-no.
"I've been reminded by the number of people I have encountered who like to put people into one of two bins: composer or technician"
sorry to drop in on the convo-
I'd have to disagree. I believe one's passion leads them to their destination. Look at the guy who put together CV.JIT and his compositional work.
Drawing lines between the two is only restrictive of one's potential. The drawback to being a "crossover" my preference is "hybrid" is that things may take twice as long. The benefit: less hands in the pot + the potential to put together pieces a predominately left- or right- brained individual might not be able to, because of the their "status quo restricted" tool kit.
Basic
QBasic
VisualBasic
Pascal
C
C++
Objective-C
Java
JavaScript
AppleScript
Hardware Development - digital and analog
Software Integration with hardware
iPad software
Acoustic Guitar 8 years
Electric Guitar 6 years
Ableton Live 4 years
Reason/Cubase 6 years
studied mech. eng. for my b.s. w/ min. in electronics/acoustics.
MAX/MSP has prompted a lot of my self-education...
My background is Basic -> VB -> Java -> C# -> BIG GAP -> Max -> Obj-C
In all my learning I still believe C# is the most elegant language, but it's not natively supported on my mac, so unfortunately I have to put up with Obj-C which I'm just starting to tinker with. I have actually just started experimenting with JavaScript inside of Max and am contemplating whether to concentrate on using that or Obj-C for externals. I think if Cycling update the JavaScript engine with one of the new breeds coming from Google/Apple/Moz I will probably settle for that.
Have you guys found that previous programming experience has helped you in the learning of max?
My programming experience is..........1.5 years of Max :) I want to start learning C++, it's a little daunting.
"Have you guys found that previous programming experience has helped you in the learning of max? "
not really, it is more likely that Max can help you get introduced to basic programming concepts(not that you need Max to do that, but many people who get introduced via Max would never get introduced to programming unless it was made so appealing by Max). a visual way as opposed to a coding way seems more clunky and unpredictable after coding(my continued learning of C and C++ is handicapped now by Max especially when I leave behind the coding for awhile just to get used to Max... it's best to use JS, or MXJ, or keep writing externals in C and C++ WHILE you're learning Max so that you don't allow the fantastical full graphical way to cloud the reality which is code(being the basis of it all))
________________________________
*Never fear, Noob4Life was never here!
Hans and Noob sorry this sounds a bit personal but how old are you guys? Because you both seem to be really accomplished at those programming environments at a young age.
How long would you say it took you guys to gain confidence in max or any other language: supercollider, java, c etc?
Sorry if it's a weird question.
Actually practically everyone in this thread seems really accomplished/confident with max at least or any other language this question goes out to everyone how long would you say it took you guys to learn a language object orientated or graphical?
For me, learning seems to be a continuous process these days (API's change day to day and new hardware and software is always coming out to mess with) At univ. I had a semester of C++ my freshman year (was already decent @ VB at that time) My opinion is that, once you learn the core concepts of any subject, the true test of understanding is measured by ones ability to:
1. Apply the concepts you have learned in a totally new setting.
2. Utilize these core concepts and add to them when learning a new language. (It sounds corny but think:virtual toolkit)
In other words, memorization won't get you too far, you gotta understand what's actually going on in the code line by line
I will admit, though, obj-c took me by far the longest to wrap my head around.
So to respond to d-tom, it depends on how your head is wired - like Max/MSP Graphical interface was immediate understanding (because of coding background.) I'd say @ about the 2000 hour mark I could seriously rock the application.
I think I began writing externals in C for max at that point. I knew the things I wanted to do and from there, with help of the most-excellent Max SDK (seriously, well commented and tons of examples), it probably took 500-1000hrs to cover the expanse of the various API's.
@d-tom graduated univ in 04 in 4yrs after hschool - how about u?
***One awesome resource I found was iTunes U. It blew me away - free classes from univ's like MIT. You wanna learn Java - there's a Java Coarse on there (at least there was a few months back.) It starts at total noob level and the proff. was kinda entertaining.
***Also, I stumbled onto a-bit-more-obscure resource - (not sure about outside the US but) - check your city/local library to see if they have any online library accounts (E-Library) for patrons to use. I have found this helpful at 3AM when I wanted a chapter on a certain topic rather than a blogpost.
@DigitalFX
Nice foresight with respect to the future implementation language of the MaxSDK-this would be good to know.
re: C# - what makes this stand apart from the others (I have 0 experience with it)
I am 22, born december 1987.
The first languages I learned was php and javascript, about 8 years ago. I encountered Max when I began studying composition and started to learn C to be able to write my own objects, but switched to Java because I needed it to be cross-platform.
I would say confidence is a relative thing. I find it easy to learn languages as far as syntax and such go, but learning how to interact with environments, shells, tools APIs etc is different matter, these things always takes time.
Age 26. Took 2 years to build something I liked, 5 years to gain confidence in Max(and counting ;) I still don't have confidence with C(after 3 or 4), but C++ only took me 1 year to have confidence(i prefer OOP i think...). I also have not always been able to afford a comp, sometimes must use others or take a break so my learning goes up and down in acceleration. Hans is probably much more experienced, what he says is very true: learning APIs is the trick and varies like learning someone else's specific vocabulary and the inflections with which they use it, not just the general semantics of a general language.
I'm still no expert in anything. I just like to talk alot ;)
________________________________
*Never fear, Noob4Life was never here!*
Hey guys, sorry for commenting again but I have found this thread extremely helpful.
On the subject of maths again I know it has been pointed out that for programming the book Design Patterns was recommended and for music Gareth Loy's Musimathics.
Would would you recommend for books on the Maths involved in DSP, rhythm and note generation, as well as a broad knowledge of math's involved in music?
I am on my third year now in Music Technology and have found that we have hardly touched on the correlation of maths and music, we have barely touched on DSP and Fourier analysis, although most of the first year was talking about MIDI I still do not feel overly confident in its study.
I have Curtis Roads book on The Computer Music Tutorial and found that was pretty handy, also I have a PDF of Miller Pucket's The Theory and Technique of Electronic Music (want to get a hardcopy of it but lacking money at the moment ).
Cheers once again
I guess you know that Gareth Loy has got 2 volumes of Musimathics. The first one is more music (loosely) based (as you note), and the second one covers the maths behind the DSP things that you are interested in.
@dthomas86 I'd suggest
"The Scientist's and Engineer's guide to DSP" http://www.dspguide.com/
(I believe you can download it free (or could at one point)) and I think I found out about it from C74 somewhere along the way.
If the math gets to be to much for you I'd suggest seeking help from a professor at your school. If u r layin down the dough for higher education make sure you get your moneys worth while you are there!
Best of luck - sounds like you will figure these things out soon enough.
Cheers
BTW - It amazes me recalling the dates when Fourier was alive : (1768 -1830)...granted, many others have spent years bringing his work into the digital realm.
I've been an application, DSP and server-side programmer for 20+ years.
Fortran (yes, punch cards)
Forth (Forthmox, HTML)
Motorola/PPC assembly
C/C++ (also taught), Obj-C
Lisp, Prolog
Java/JSP/Javascript/HTML
dBase and scripting (SQL, Perl/CGI)
I suspect the above is a fairly typical bio for grey-haired Max users (in the old days, you had little choice but to hand-code computer music), but probably daunting for a beginner.
Both C and Java are extremely useful in extending MaxMSP; I can't imagining writing anything complex in Max without resorting to custom external objects. Plus, let's not forget the thousands of library examples available in C.
I'm also a fairly competent musician (classical guitar, composition) and audio engineer.
If I were to start today, I'd learn C/Java and study some DSP, electronics and audio engineering, as well as computer music algo's (synthesis, filtering, stochastic processes, et al), networking basics, sensor and input gear, and, of course, *music*.
My background was in stuff like Hypercard, FileMaker and HTML. I was introduced to Max in 1997 and wasn't immediately interested, since the music I heard made with it consisted almost entirely of Apple's Quicktime piano sounds.
Almost 10 years later, in 2005 I started again, this time bought Max (a year later) and started struggling.
My breakthrough came after a few workshops and trying out Processing, which taught me a lot of things. Then I read the book "Loadbang" by Johannes Kreidler, a tutorial about PD (an HTML-version is online on his website).
Also switching to Max5 and starting over with the (cleaned up) tutorials and help patches got me going.
Now I doN't consider myself a programmer, but I am having a lot of fun using Max, instead of it being an uphill struggle on shaky frozen ground with one hand tied to my foot, or something...
Perhaps i am unique in the sense that i never had a programming background until i started using Max/Msp, which started off as a major struggle for me, but now makes a bit more sense (been using it for about a decade now).
@Mr. Banshee That would be true for many of my composer friends.
I rather think the most active forum posters are those involved in other kinds of programming as well ;)
Hmm, quite a bit of background to be honest. Fun part is that I'm not even a programmer (as profession) but a sysadmin (my background isn't musical; its fully IT).
I'm from '70, my first experience was on C64 basic, which quickly turned to assembly (final cartridge was awesome for that; I could even access the drive memory banks and write programs on the fly there).
Then education came along and I got deeper into PC 8086/8088 assembly (which never could really interest me) and more into Pascal. That went on for a while, used Pascal (Turbo Pascal 6 for starters and Borland Pascal later, all DOS based back then) for private purposes too.
Then for a while nothing; no more programming but maintaining several Unix (-like) environments. So I did get a load of shell scripts (Bash & Korn), perl, a little bit of python and some awk.
Then once again nothing new for a while and I finally went head first into Java due to me having to maintain several Solaris servers. That started approx. some 5 years go. I'm still not a real programmer but when it comes to languages I have a very weak spot for Java, really like working with it.
I began using Max around january this year (2010) through 'Max for Live' (and quickly discovered options which allowed me to use the full Max (runtime) while only having a M4L license). *grin*
Right now I've become quite used to M4L & Max/MSP (eventually got myself a license for that too) and I just love it. I guess its obvious by now that my DAW of choice & preference is Ableton Live, and I truly think that 'embedding' Max into that was the best thing that could happen to Live!
oh; btw.. I'm not so much a musician, more a tech guy who has a passion for synths and sound design (while attempting some musical approach every now and then).
Took me a while to get used to Max, but not that long; I *love* the way the documentation is setup. Easily accessible, copyable, and well... Right now I feel very comfortable with Max, yet I still have a lot to learn (but lets face it; same goes with any serious language. Usually you never stop learning).
And for the record.. Although I admire the project (don't take this the wrong way) I am very glad to have jumped on the Max/MSP wagon instead of Pure Data (which I discovered only a few weeks ago).
No bad words about the project, nothing bad about 'open source' as a whole for that matter, but IMO it does give you a good impression on some of the limitations of 'open source'. Picked up a book not too long ago; "The computer music tutorial" by 'Curtis Roads' (love that book, C'74 made me do it! ;-)).
Try to picture my surprise when I discovered that the most recent release of "Pure Data" on Linux looks and feels (according to that book) like Max did 10 years ago ;-)
Alas, I guess that sums it up for me. A total Max fanboy :-)