Периодически делается неоднозначное утверждение, что цель-c была необходима для создания UIKit. & его предшественник Какао, однако это редко разъясняется или уточняется. Что-то неопределенно связанное с пересылкой сообщений. Но все пользовательские интерфейсы пересылают события независимо от того, на каком языке они написаны. Поэтому я спрашиваю сейчас: какие конкретные аспекты Objective-C были критически важными для реализации UIKit или его предшественника Cocoa, который C ++ или Java также не могли бы обеспечить ?
Аспект заключается в способности поздно связываться и динамически печатать.
Есть несколько примеров необходимости, но самый ясный — цепочка респондента. Попробуйте написать его на языке Swift (без использования Objective-C или RTE Objective-C.) Вперед!
И нет, не на каждом языке. И. е. в C ++ они должны были добавлять сигналы и слоты, чтобы сделать язык полезным для современного программирования пользовательского интерфейса. В принципе, любой язык без динамического связывания — по крайней мере, как запасной вариант — для этого бесполезен.
Кстати: концепция GUI и концепция динамической диспетчеризации были изобретены в одном месте в одно и то же время. Может быть, есть причина для этого.
Других решений пока нет …