我经常听说Objective-C是C编程语言的"严格超集".C有几种方言/标准(即K&R,ANSI C,C90,C99,GNU扩展...); Objective-C最早是在20世纪80年代初开发的,所以它必须先于这些标准.然而,Objective-C 2.0是从2006年左右开始的,所以它可以基于更现代的C语言.那么,哪个"C"是Objective-C的超集?
Objective-C是一种面向对象的编程语言,它将Smalltalk样式的消息传递添加到C编程语言中.我理解学习Smalltalk可能与学习Lisp对一个人的知识有益的方式相同,但我想知道学习Smalltalk特定的概念是否会帮助我更完整地理解Objective-C,因为Smalltalk在其"origin"中的作用故事".如果是这样,具体是什么?
假设一个人已经知道C编程,我们可以从Smalltalk学到什么?显然,Objective-C中有很多概念不在C语言中(即消息传递,接口,协议,动态类型,委托,反射;它是面向对象的!)但是源自Smalltalk.
编辑:我已经在问题中添加了C编程语言,因为普遍的共识是学习C比学习Smalltalk更好地利用一个人的时间(当谈到Objective-C编程时).