由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 大牛们对Object C有何点评?
相关主题
谁能深入浅出的讲讲protocol和delegate的要点?java抄了很多obj-c好不好
大牛给介绍一下Objective C vs C++ 的优劣吧本版被骂的最多的三个语言
苹果又出新语言了C++糟粕和需要避免的。
C++ 11问题:emplace_back()好的javascript程序员还真不多
最近开始接触Objetive C,发现多年的愿望实现了typescript -- c# 软软的末路
说道startup,最近这些年最神奇的应该是minecraft了吧?python这语言解决了什么问题?
现在如果自学android或者ios哪个靠谱,目标是周末接小活赚外快[合集] 问个javascript的问题
我看swift最显著的特点就是ref counting啊最新葵花宝典排行榜
相关话题的讨论汇总
话题: c++话题: objc话题: ide话题: 语言话题: object
进入Programming版参与讨论
1 (共1页)
q****x
发帖数: 7404
1
还有C#这种独家垄断的语言。形形色色的编程语言,真是不胜其烦啊!
z****e
发帖数: 54598
2
看菜吃饭,先选平台再根据平台选语言
你要做ios开发,不会这个是不行的
b******0
发帖数: 101
3
有C的基础再加上OO的概念理解obj c就没问题。用的时候还要适应obj c的语法习惯,
再熟悉一下IDE(XCODE)齐活。下边就看个人造化了。
q****x
发帖数: 7404
4
语言设计方面有什么特色?和C++/Java的区别之处,设计者的用意何在?是不是就是苹
果公司一群老人搞的?
关键这个语言还和IDE和OS绑定,忒变态了!

【在 z****e 的大作中提到】
: 看菜吃饭,先选平台再根据平台选语言
: 你要做ios开发,不会这个是不行的

z****e
发帖数: 54598
5
让小菊花来说说,他貌似对这个比较推崇

【在 q****x 的大作中提到】
: 语言设计方面有什么特色?和C++/Java的区别之处,设计者的用意何在?是不是就是苹
: 果公司一群老人搞的?
: 关键这个语言还和IDE和OS绑定,忒变态了!

b******0
发帖数: 101
6
我把我道听途说的一些列出来,有错误概不负责。
1.Obj C前身是NextStep。是Jobs离开苹果后另立山头搞出的一种语言,据说综合了C的
语法和基础类型再结合smalltlak的OO。
2.Jobs回到苹果,他的公司被苹果收购NextStep也就成了ObjC。所以ObjectC的根类叫
NSObject。
3.和C++相比他是更标准的OO语言,比如不再允许多重继承。
4.至于说语言和IDE绑定,我觉得好像不是这样吧?准确的说应该是除了苹果自己的IDE
。目前市场上没有出现第三方的IDE。
r***y
发帖数: 4379
7
4 错了, 忘了大名鼎鼎的 jetbrains 的 appcode

IDE

【在 b******0 的大作中提到】
: 我把我道听途说的一些列出来,有错误概不负责。
: 1.Obj C前身是NextStep。是Jobs离开苹果后另立山头搞出的一种语言,据说综合了C的
: 语法和基础类型再结合smalltlak的OO。
: 2.Jobs回到苹果,他的公司被苹果收购NextStep也就成了ObjC。所以ObjectC的根类叫
: NSObject。
: 3.和C++相比他是更标准的OO语言,比如不再允许多重继承。
: 4.至于说语言和IDE绑定,我觉得好像不是这样吧?准确的说应该是除了苹果自己的IDE
: 。目前市场上没有出现第三方的IDE。

S*A
发帖数: 7142
8
声明一下,只是小混混,不是大牛。
ObjC 我觉得是超级优美而且效率又高的语言。
ObjC 和 C 完全兼容,无缝链接。C++和 C99是不可能
能完全兼容的。我隐约记得 template 和 C99 的结构上
的是无法融合的。
ObjC 的 interface 要比 C++ 的多重继承优美很多而且
灵活很多。整个语言也要比 C++简单很多,C++ 的 template
过于复杂。ObjC 的 OO 更接近 Small Talk。
ObjC 的语言本身是多平台的, gcc-objc Linux 也有,
而且 Linux 上面也有 GNUStep 这样的东西。
ObjC 不能很好推广,其中主要一个原因在与库。因为
只有 Apple 一家用,所以语言本身的标准库界定不明显。
很多 Apple 的库在其他 OS 上面运行不起来,给这个语言的
移植性造成了一定困难。单单是语言本身,移植性是非常好
的,基本上和 C 一样,关于 Obj 基本上没有什么变化。
特别是 Clang 以后,很多平台都可以跑。
ObjC 的 Object Call 实现是非常精妙的,用很少的代价和
性能(机器码的数量和复杂度)就实现了非常完美的 OO。
应该说,如果你喜欢 Python + C 的话,那么 ObjC 就是
类似这样的 OO + C Lib 的实现,而且速度高和机器代码量
少很多。
如果 C++ 的发明者一开始用了 ObjC 这样的方案,这个
世界会好很多。现在 Obj C 非常无奈,非常好的语言,只
有Apple 能跑。
q****x
发帖数: 7404
9
怎么无缝啊?语法差那么多。

【在 S*A 的大作中提到】
: 声明一下,只是小混混,不是大牛。
: ObjC 我觉得是超级优美而且效率又高的语言。
: ObjC 和 C 完全兼容,无缝链接。C++和 C99是不可能
: 能完全兼容的。我隐约记得 template 和 C99 的结构上
: 的是无法融合的。
: ObjC 的 interface 要比 C++ 的多重继承优美很多而且
: 灵活很多。整个语言也要比 C++简单很多,C++ 的 template
: 过于复杂。ObjC 的 OO 更接近 Small Talk。
: ObjC 的语言本身是多平台的, gcc-objc Linux 也有,
: 而且 Linux 上面也有 GNUStep 这样的东西。

S*A
发帖数: 7142
10
无缝就是你可以直接调用 C 的函数,
不用包装也不用 C++ 的 extern "C" 定义。
C 的头文件,直接 #include 就可以了。
除了class 定义以外, 凡是方括号里的都是 ObjC.
方括号外的就是普通 C。看代法非常清楚。
在 C 函数里面也可以直接调用 ObjC.

【在 q****x 的大作中提到】
: 怎么无缝啊?语法差那么多。
相关主题
说道startup,最近这些年最神奇的应该是minecraft了吧?java抄了很多obj-c好不好
现在如果自学android或者ios哪个靠谱,目标是周末接小活赚外快本版被骂的最多的三个语言
我看swift最显著的特点就是ref counting啊C++糟粕和需要避免的。
进入Programming版参与讨论
S*A
发帖数: 7142
11
简单的补充一下,C 是 Obj C 的一个严格 Subset.
但是 C 不是 C++ 的一个严格 Subset. C99 里面有
些东西和 C++ 有比较严重的语法冲突。
d****i
发帖数: 4809
12
C++03以后对于C的一部分不同是个大问题,皆是因为C++这个语言设计的ambition太“
大”,想什么都做什么feature都包括进去,最后变的异常复杂。如果定位于系统编程
,那么pure C加上一小部分C++98(如果需要OO的话)的东西足够了。

【在 S*A 的大作中提到】
: 声明一下,只是小混混,不是大牛。
: ObjC 我觉得是超级优美而且效率又高的语言。
: ObjC 和 C 完全兼容,无缝链接。C++和 C99是不可能
: 能完全兼容的。我隐约记得 template 和 C99 的结构上
: 的是无法融合的。
: ObjC 的 interface 要比 C++ 的多重继承优美很多而且
: 灵活很多。整个语言也要比 C++简单很多,C++ 的 template
: 过于复杂。ObjC 的 OO 更接近 Small Talk。
: ObjC 的语言本身是多平台的, gcc-objc Linux 也有,
: 而且 Linux 上面也有 GNUStep 这样的东西。

S*A
发帖数: 7142
13
说的很对,几乎所有的大点的 Open source project 用 C++
的都说,我们不用 fancy 的 C++, 我们只用小部分 C++ 精华
不部分。但是每个不同项目选定的可以接受的界定又不一样。
C++98 是不是已经有模版了,有模版就和 C99 不能兼容了。
C++ 是个典型的 committed 搞出来没有灵魂的东西,
东西多复杂,最后谁都不好用的。
所以世界如果一开始没有 C++, 只有 ObjC,而且不是苹果一家
用 ObjC,世界会好很多很多。

【在 d****i 的大作中提到】
: C++03以后对于C的一部分不同是个大问题,皆是因为C++这个语言设计的ambition太“
: 大”,想什么都做什么feature都包括进去,最后变的异常复杂。如果定位于系统编程
: ,那么pure C加上一小部分C++98(如果需要OO的话)的东西足够了。

f*******t
发帖数: 7549
14
我觉得NS那套东西不错,但基本只能在苹果的系统上跑?语言还是要靠各种库的支持,
就像C#作为语言比Java好,还是打不过Java。
q****x
发帖数: 7404
15
为何搞一套新的语法呢?扩展C的语法不是更自然?
两个截然不同的语法混在同一个程序里,可读性很差啊。

【在 S*A 的大作中提到】
: 说的很对,几乎所有的大点的 Open source project 用 C++
: 的都说,我们不用 fancy 的 C++, 我们只用小部分 C++ 精华
: 不部分。但是每个不同项目选定的可以接受的界定又不一样。
: C++98 是不是已经有模版了,有模版就和 C99 不能兼容了。
: C++ 是个典型的 committed 搞出来没有灵魂的东西,
: 东西多复杂,最后谁都不好用的。
: 所以世界如果一开始没有 C++, 只有 ObjC,而且不是苹果一家
: 用 ObjC,世界会好很多很多。

q****x
发帖数: 7404
16
C#怎么个好法?

【在 f*******t 的大作中提到】
: 我觉得NS那套东西不错,但基本只能在苹果的系统上跑?语言还是要靠各种库的支持,
: 就像C#作为语言比Java好,还是打不过Java。

c*********e
发帖数: 16335
17
C++ 的发明者把語言搞得太复杂了,一个c++就要学5年。

【在 S*A 的大作中提到】
: 声明一下,只是小混混,不是大牛。
: ObjC 我觉得是超级优美而且效率又高的语言。
: ObjC 和 C 完全兼容,无缝链接。C++和 C99是不可能
: 能完全兼容的。我隐约记得 template 和 C99 的结构上
: 的是无法融合的。
: ObjC 的 interface 要比 C++ 的多重继承优美很多而且
: 灵活很多。整个语言也要比 C++简单很多,C++ 的 template
: 过于复杂。ObjC 的 OO 更接近 Small Talk。
: ObjC 的语言本身是多平台的, gcc-objc Linux 也有,
: 而且 Linux 上面也有 GNUStep 这样的东西。

d****i
发帖数: 4809
18
客观的说Obj-C和C#都是被苹果和微软的自私恶名给连累了。C++和Java因为都是可以在
不同的OS上跑,而且分别有ANSI/ISO和以Sun为核心的JCP这样的“民主委员会”,所以
成了主流语言。

【在 f*******t 的大作中提到】
: 我觉得NS那套东西不错,但基本只能在苹果的系统上跑?语言还是要靠各种库的支持,
: 就像C#作为语言比Java好,还是打不过Java。

d****i
发帖数: 4809
19
high-tech这行还是认历史传统的,操作系统的黄金准则是UNIX,那么由于C++和Java一
开始都是在UNIX上跑,自然就被认为是血统纯正的语言(参见UNIX下的编译器名字: cc
(这个在Solaris下恰好和C编译器同名)和javac)。C#从Windows下面开始,Obj-C从
Nextstep下面开始(虽然NS也是一种类UNIX系统),但是已经失去其血统纯正性。

【在 f*******t 的大作中提到】
: 我觉得NS那套东西不错,但基本只能在苹果的系统上跑?语言还是要靠各种库的支持,
: 就像C#作为语言比Java好,还是打不过Java。

c*********e
发帖数: 16335
20
windows,mac是同期竞争对手,他们发现,只有用自己的語言,才能把自己的产品牢牢
控制住。比如,要用objective c,就必须用xcode做ide.这样用户必须买mac的产品,而
不是象java那样,用dell卖的win7或者macbook pro,都可以用eclipse做ide.
apple做得更绝,连iphone充电线都是自家的。android的好歹可以用黑莓的充电线。

cc

【在 d****i 的大作中提到】
: high-tech这行还是认历史传统的,操作系统的黄金准则是UNIX,那么由于C++和Java一
: 开始都是在UNIX上跑,自然就被认为是血统纯正的语言(参见UNIX下的编译器名字: cc
: (这个在Solaris下恰好和C编译器同名)和javac)。C#从Windows下面开始,Obj-C从
: Nextstep下面开始(虽然NS也是一种类UNIX系统),但是已经失去其血统纯正性。

相关主题
好的javascript程序员还真不多[合集] 问个javascript的问题
typescript -- c# 软软的末路最新葵花宝典排行榜
python这语言解决了什么问题?问问g++, gcc, cc之间的关系
进入Programming版参与讨论
b******0
发帖数: 101
21

C 到C++是一个演化过程C-》C+(c with class)-》C++。C++不象java最初就本着oo的
基础设计出来的,C++包含太多不同时期加进去的东西。

【在 c*********e 的大作中提到】
: C++ 的发明者把語言搞得太复杂了,一个c++就要学5年。
S*A
发帖数: 7142
22
ObjC 本来就是扩展啊。C 里面本来没有 class object 这些东西,
肯定是要引入新的语法的。至于是方括号还是什么的。
其实我觉得现有的ObjC 就很好,看着很清楚。
不会搞不清这个是 Obj Call 还是普通 C 调用。

【在 q****x 的大作中提到】
: 为何搞一套新的语法呢?扩展C的语法不是更自然?
: 两个截然不同的语法混在同一个程序里,可读性很差啊。

S*A
发帖数: 7142
23
不是,可以在 Linux 下面跑。 GNUStep 就是这么跑的。
CoreFoundation 这些应该是可以的。
ObjC 的好处是你可以直接用 C 的库。
加上 CoreFoundation 也基本够用了。
苹果自己的库就不行了。

【在 f*******t 的大作中提到】
: 我觉得NS那套东西不错,但基本只能在苹果的系统上跑?语言还是要靠各种库的支持,
: 就像C#作为语言比Java好,还是打不过Java。

S*A
发帖数: 7142
24
object C 可以用自己的 IDE。就是个命令行编译的东西。
我以前项目是自己写 Makefile 的。

【在 c*********e 的大作中提到】
: windows,mac是同期竞争对手,他们发现,只有用自己的語言,才能把自己的产品牢牢
: 控制住。比如,要用objective c,就必须用xcode做ide.这样用户必须买mac的产品,而
: 不是象java那样,用dell卖的win7或者macbook pro,都可以用eclipse做ide.
: apple做得更绝,连iphone充电线都是自家的。android的好歹可以用黑莓的充电线。
:
: cc

q****x
发帖数: 7404
25
函数定义都变了。你是习惯了,对新人来说这就是个障碍。就像vi用熟的人觉得它很强
大,可还是有越来越多的人用IDE。
C++更流行不是没有道理的。

【在 S*A 的大作中提到】
: ObjC 本来就是扩展啊。C 里面本来没有 class object 这些东西,
: 肯定是要引入新的语法的。至于是方括号还是什么的。
: 其实我觉得现有的ObjC 就很好,看着很清楚。
: 不会搞不清这个是 Obj Call 还是普通 C 调用。

b******0
发帖数: 101
26

C++更流行恐怕不是函数定义的方式导致的吧?
如果说新人是指没编程基础的,ObjC绝对比C++更适合。

【在 q****x 的大作中提到】
: 函数定义都变了。你是习惯了,对新人来说这就是个障碍。就像vi用熟的人觉得它很强
: 大,可还是有越来越多的人用IDE。
: C++更流行不是没有道理的。

q****x
发帖数: 7404
27
当然。但我认为C++延续C的语法,而OC另起炉灶,是一增一减。
Java和C#也比OC这一点上强啊。

【在 b******0 的大作中提到】
:
: C++更流行恐怕不是函数定义的方式导致的吧?
: 如果说新人是指没编程基础的,ObjC绝对比C++更适合。

1 (共1页)
进入Programming版参与讨论
相关主题
最新葵花宝典排行榜最近开始接触Objetive C,发现多年的愿望实现了
问问g++, gcc, cc之间的关系说道startup,最近这些年最神奇的应该是minecraft了吧?
apportable可以把ios native app转成android native,什么原理啊?现在如果自学android或者ios哪个靠谱,目标是周末接小活赚外快
看来语言必须有google的endorsement啊我看swift最显著的特点就是ref counting啊
谁能深入浅出的讲讲protocol和delegate的要点?java抄了很多obj-c好不好
大牛给介绍一下Objective C vs C++ 的优劣吧本版被骂的最多的三个语言
苹果又出新语言了C++糟粕和需要避免的。
C++ 11问题:emplace_back()好的javascript程序员还真不多
相关话题的讨论汇总
话题: c++话题: objc话题: ide话题: 语言话题: object