Я читаю книгу о Smalltalk (Charmond Liu Smalltalk, объекты и дизайн). Он рассказывает о том, как сообщения работают в Smalltalk с помощью объекта HomeBudget
в качестве примера того, как отправлять одно сообщение с несколькими параметрами:
HomeBudget spend: 229 on: 'VCR'
Objective-C использует много идей от Smalltalk, таких как объекты обмена сообщениями и двоеточия для параметров, но всегда включает сообщение отправки в квадратных скобках. Тот же вызов будет:
[homeBudget spend:229 on:@"VCR"];
Почему Objective-C использует квадратные скобки (вместо того, чтобы оставлять сообщения наподобие Smalltalk)? Требуется ли синтаксис из-за того, что он основан на C? Это стилистический выбор? Предлагает ли он больше выбора в том, что вы можете выразить? Есть ли другая причина?