Hacker News new | ask | show | jobs
by tumult 878 days ago
Is it great? I've never liked it. It has downsides of assembly programming, like unnamed (but persistent) values stored in temporary "register" slot output pins, some additional own-goal downsides like "significant whitespace" of the positioning of wires and port output ordering, and all of the downsides of an oldschool scripting language like TCL, with terrible performance characteristics, buggy implementation, an editor that crashes pretty regularly in normal use, and incomplete documentation.

In the long history of Max, I can only think of a couple of things I've liked that were made with it, and they were both for Max for Live. I think the fact that they were made with Max was just incidental — it's the easiest way to add MIDI effects to Live.

(For anyone who answers with "but you can just write JavaScript now to do everything in it" — running MIDI events through its JS nodes defers the events to the non-timing-critical thread, ruining the timing of the MIDI events.)

2 comments

Well, it is great, just not great for you. :-) It's a low code environment built to allow non-developers to develop! It is undoubtedly great for many, many people.

BTW, my Scheme for Max extension does run in the timing thread, if you want to write sequencing code in Max. I basically did the same thing they did with JS (lock it to one thread) but let the user choose the thread and let the user control when the GC runs. It works suprisingly well for sequencing - locks in with Live completely if you trigger things with plugsync~

I don't know any non-programmers who can successfully use it to make anything that isn't a glitchy mess. It's not really a low code environment. It's a "code but it's in squares with lines connecting them" environment. You're still writing code, but unlike some systems which can successfully use this model to try to make some parts easier, it's made much harder because of how much hidden, weird, and counterproductive stuff Max does. I had a much easier time teaching people to use ChucK or just C. Of the people I've showed Max and something else, everyone preferred whatever the other thing was.

Your thing sounds cool, though.

Well I agree that programming Max is weird. And if I didn't like code better, I wouldn't have made Scheme for Max or the csound~ max object. :-)

But... we teach max to a high level at the university where I'm doing my Phd in music and CS, and I have seen tons of great stuff built with it by non-devs. I would argue Max is counterintuitive to programmers. My experience with non-coders is that they take to it usually better than to things like Chuck, Csound, SuperCollider, etc.

As a programmer, Max and Live provide me with an outer container layer and environment that is far more productive compared to code-only. but this of course depends on what you are trying to do and how you like to do it!

I addressed all those points in my post, some implicitly and some explicitly, did you read the whole thing? I really don't think it was too long for you to read...
Which post? Is the original articles yours? It doesn't mention anything I complained about. I don't see anything about the crashes, the bad performance, the bugs, the incomplete documentation, the design problems with the significant whitespace and unnamed values stored on output ports. I'm confused by what you've said.

Edit: I think you just meant your comment. I don't really see those things mentioned there, either.

My post implicitly addresses those things, hence my comparison to C++ and my complaints about it. It seems like you only read "Max and Max for Live are great" and got upset. Please read my posts more charitably in the future. It's fine for you to add extra information, but you must do so in the context of agreeing with me, not disagreeing. It is rude to be like "how is what you said true? I'm going to repeat what you said back at you"
What? I never disagreed with you, except for your opening statement of "Max and Max for Live are great," which you provide no further reasoning for in your comment. And I agree with most of the rest of your comment.
If you start your comment with a disagreement then why would I read the rest of your comment as an agreement if you did not state so?
If you can realize that your opening statement was a 'backhanded-compliment' towards MAX, you would see that you both functionally said the same thing.

"It's great, but..." and "Is it great?" both convey the message that MAX gets a lot of praise/recognition that maybe isn't deserved or warranted, at least anymore. They're much more in agreement than disagreement when taken full context.