NeXT used Objective-C + events. The concurrency model is the major unforgiving factor, though apparently the NeXT Objective-C language and tools were ahead of the time in many ways as well.
I grant that NeXT would have been more difficult for develop for when you did require parallelism for running compute intensive tasks on multiprocessor systems, but this was not the NeXT target market. BeOS got the ability to do parallelism by choosing the more fragile concurrency model, and apps paid for it in all cases. NeXT didn't do parallelism in the GUI apps, and was easier to develop for as a result.