POPPUR爱换

标题: Objective -C语言大踏步前进! [打印本页]

作者: Tempestglen    时间: 2011-12-6 16:14
提示: 作者被禁止或删除 内容自动屏蔽
作者: Tempestglen    时间: 2011-12-6 16:22
提示: 作者被禁止或删除 内容自动屏蔽
作者: acqwer    时间: 2011-12-6 16:59
本帖最后由 acqwer 于 2011-12-6 16:59 编辑

        声明:
         - (void)setColorByRGB:(float)redValue green:(float)greenValue blue:(float)blueValue;
        调用:
         [this setColorByRGB:0.1F green:0.1F blue:0.1F];
         
       声明:
         void setColorByRGB(float redValue, float greenValue, float blueValue);
        调用:
         this.setColorByRGB(0.1F,0.1F,0.1F);

果然是简洁优雅啊
作者: eternal0    时间: 2011-12-6 17:35
acqwer 发表于 2011-12-6 16:59
声明:
         - (void)setColorByRGB:(float)redValue green:(float)greenValue blue:(float)b ...

认真你就输了。
作者: gjj2828    时间: 2011-12-6 22:38
提示: 作者被禁止或删除 内容自动屏蔽
作者: raini    时间: 2011-12-6 22:40
eternal0 发表于 2011-12-6 17:35
认真你就输了。

跟一个不懂编程的果粉认真就真的。。。
作者: nqhjl    时间: 2011-12-7 03:03
提示: 作者被禁止或删除 内容自动屏蔽
作者: Tempestglen    时间: 2011-12-7 08:20
提示: 作者被禁止或删除 内容自动屏蔽
作者: acqwer    时间: 2011-12-7 09:43
Tempestglen 发表于 2011-12-7 08:20
如果想在苹果Mac OSX系统进行开发,Objective-C是最重要的开发语言,现在Apple已经把开发的重点放在了基于 ...

有脑子的人都看得懂我贴的两段代码到底是那个更简洁优美,东西怎么样不是用嘴说的,是看实际的产品。

ObjetiveC的效率与真正的C++比较起来有差距的。尤其是Cocoa推崇KVC模式,效率更不敢恭维。

你转贴的时候都不看贴的吗?

作者: acqwer    时间: 2011-12-7 09:54
另外,你转的那个帖子的作者就是一个SB,纯的

想用和objc一样的方式写代码是很容易的,只是根本没这个必要,为了模式而模式完全是本末倒置。不管是哪种模式,都是为了代码的扩展性和可读性,这两点上烂得像一坨屎的objc根本没资格鄙视其他的语言。
作者: Tempestglen    时间: 2011-12-7 09:56
提示: 作者被禁止或删除 内容自动屏蔽
作者: acqwer    时间: 2011-12-7 09:57
Tempestglen 发表于 2011-12-7 09:56
1)你单独拿出obj C其中有点繁琐的方法和参数的命名规则,全然不顾obj C在整体语法上的简洁。这叫以偏概全。 ...

你写一段objc的代码,我用更简洁的方式实现给你看,敢不敢比?
作者: Tempestglen    时间: 2011-12-7 10:02
提示: 作者被禁止或删除 内容自动屏蔽
作者: acqwer    时间: 2011-12-7 10:09
Tempestglen 发表于 2011-12-7 10:02
就我上面列举的例子,你用C++实现一下。

你看了别人贴的源码没有?



@interface AppDelegate : NSObject {
    IBOutlet NSTextField *inputText;
    IBOutlet NSTextField *outputText;
}

- (IBAction)updateText:(id)sender;

@end

#import "AppDelegate.h"


@implementation AppDelegate
- (IBAction)updateText:(id)sender;
{
    [outputText setStringValue:[inputText stringValue]];
}
@end

还有IB自动生成的一大堆代码,.哪里简洁了
作者: Tempestglen    时间: 2011-12-7 10:46
提示: 作者被禁止或删除 内容自动屏蔽
作者: acqwer    时间: 2011-12-7 11:07
Tempestglen 发表于 2011-12-7 10:46
简洁是指程序员省事,iB产生的 一大堆又不耗费人力。

你不是自称在用osx吗,把那段代码跑跑看是什么结果啊。

IB拖线不费人力?你到底用的是那个位面的IB啊
作者: Tempestglen    时间: 2011-12-7 11:17
提示: 作者被禁止或删除 内容自动屏蔽
作者: acqwer    时间: 2011-12-7 11:23
Tempestglen 发表于 2011-12-7 11:17
拖线就拖线,vb,C#,C++双击按钮就可以显示代码框,就简单了这一步, 然后就是繁琐。

你用C++和MFC库 ...

之后不是都一样吗?
p.OutputText = this.tbInputText.Text;

[outputText setStringValue:[inputText stringValue]];

作者: deadmeat    时间: 2011-12-7 11:42
提示: 作者被禁止或删除 内容自动屏蔽
作者: FENG950    时间: 2011-12-7 13:47
Tempestglen 发表于 2011-12-7 10:46
简洁是指程序员省事,iB产生的 一大堆又不耗费人力。

这么简单的东西都看不懂还来谈什么面向对象?这段代码如果有人觉得比较难,那不是初学者,是纯外行。

还有,简洁是程序员省事?还能再白点不?
作者: Tempestglen    时间: 2011-12-7 13:48
提示: 作者被禁止或删除 内容自动屏蔽
作者: acqwer    时间: 2011-12-7 14:01
Tempestglen 发表于 2011-12-7 13:48
我之前是用Fortran,C,编一些自用的命令行工程小程序,后来决定学习面向对象走图形界面道路,发现C++、MFC对 ...

你学objc的时候还对比MFC?编故事的时候先翻翻资料好不好。
作者: coolhair    时间: 2011-12-7 14:18
论优美,java比OBC强多了
作者: KeyGen    时间: 2011-12-7 14:33
都快别吹牛B了,拿出你们的东西来。以上只证明了你们会打字。
作者: tedsun    时间: 2011-12-7 14:40
纯程序猿飘过。。。

我的看法:所有的所谓简洁、强大、支持什么OO什么Design Pattern的语言,
都只不过是为了容易找到更弱、更蠢、更容易用两块钱打发掉的码畜而已。。。。
作者: Tempestglen    时间: 2011-12-7 14:47
提示: 作者被禁止或删除 内容自动屏蔽
作者: lotuis    时间: 2011-12-7 15:10
Tempestglen 发表于 2011-12-7 14:47
工程师不需要高深的编程知识,按说fortran足够,弄几个对话框、菜单,捕捉输入的几个数值,然后就算数,大 ...

你究竟想表达什么?从你的文字中丝毫看不出一丁点从事码农这个可悲而又可爱的职业的素养。

你贴图中的软件和你又有什么关系呢?这个程序的源代码网上到处都是,若干年前就有了,你贴个图是何故?暗示这是你的作品?

你文字中错漏百出,既然你认为Fortran足够,那敢问这位大牛,您给用Fortran做个Win Form给咱们见识下如何?听您的语气,不过是分分钟的事情,不耽误你太多功夫的。


作者: KeyGen    时间: 2011-12-7 15:12
原来是一群把计算机当计算器用的人啊。真是太失敬了。用Excel就搞定了。
作者: acqwer    时间: 2011-12-7 15:19
Tempestglen 发表于 2011-12-7 14:47
工程师不需要高深的编程知识,按说fortran足够,弄几个对话框、菜单,捕捉输入的几个数值,然后就算数,大 ...

如果用wp的手机,微软自然有完整的解决方案,水果的解决方案能解决水果系统之外的问题吗?

而且你说的这些和你扯的什么优雅简洁什么关系都没有,你就继续转进吧。
作者: lotuis    时间: 2011-12-7 15:20
KeyGen 发表于 2011-12-7 15:12
原来是一群把计算机当计算器用的人啊。真是太失敬了。用Excel就搞定了。

即便是当计算器用,那也得会用才行。连用都不会用,还扯什么计算机功能高级呢?
正规软件公司做码农,除了是游戏公司,其他时候基本不会看到开发者名单,而且,软件公司,特别是那些互联网公司,根本不会让一个码农完成一大块功能,只不过是很多模块的几个而已,且不说公司的规章限制员工把代码贴出来,就算贴出来,还不是你眼里的计算器吗?

其实,谁想当码农呢,要不是当年被计算机专业误导了,出来不是修电脑,就是码农,其他再无出路,谁没事干这个?码农又不是高级的行业,不至于非要让人贴个代码来证明自己,就算我从Linux源代码里贴一段出来,你也未必看出来。
作者: lotuis    时间: 2011-12-7 15:23
acqwer 发表于 2011-12-7 15:19
如果用wp的手机,微软自然有完整的解决方案,水果的解决方案能解决水果系统之外的问题吗?

而且你说的 ...

MonoTouch可以在iphone上跑C#,不知道那位高人对此如何评说,可能又要归结为Apple的技术高级,连MS都按耐不住了……
作者: doocoo    时间: 2011-12-7 15:24
其实吧,C#的Event Handler本身就是delegate。
从语法上说我更喜欢C#,其实VB我也蛮喜欢。
搞计算机语言最怕的就是完美主义者,特别是面向对象简直成了宗教信仰。很多时候只是把事情弄得更复杂而已。

有一点是C#比不了的,那就是ObjC是基于Cocoa的,编译出来的东西不需要其它的中间层。而C#编译出来是IL中间语言,运行效率上比ObjC肯定要差一截子。

微软这些年确实有点奇怪,VB C# ……全部都是基于.Net,这个真不好。要想编本地代码只能用VC++。.Net用起来确实方便,就是效率还是差一点。
本来有个Borland还被他搞死了。开发平台那可是一个操作系统生存的重要一环啊。当年要不是VB,微软有没有今天还不一定哪。
作者: lotuis    时间: 2011-12-7 15:28
doocoo 发表于 2011-12-7 15:24
其实吧,C#的Event Handler本身就是delegate。
从语法上说我更喜欢C#,其实VB我也蛮喜欢。
搞计算机语言最 ...

你能写个展示所谓托管与非托管程序的执行效率差异的例子吗?
作者: doocoo    时间: 2011-12-7 15:30
lotuis 发表于 2011-12-7 15:28
你能写个展示所谓托管与非托管程序的执行效率差异的例子吗?

都不用写,你用Sisoft的测试软件就行了,人家分本地和.Net两种CPU性能测试的。效率差好多哦
作者: lotuis    时间: 2011-12-7 15:43
doocoo 发表于 2011-12-7 15:30
都不用写,你用Sisoft的测试软件就行了,人家分本地和.Net两种CPU性能测试的。效率差好多哦

你指的是Benchmarking : OpenCL CPU Performance (OpenCL vs native/Java/.Net)这一项吗?似乎这一项里,.Net还压倒Java呢……但是Java的应用场景远比.Net要广的多……
作者: doocoo    时间: 2011-12-7 15:47
本帖最后由 doocoo 于 2011-12-7 15:53 编辑
lotuis 发表于 2011-12-7 15:43
你指的是Benchmarking : OpenCL CPU Performance (OpenCL vs native/Java/.Net)这一项吗?似乎这一项里, ...

我的那个版本里面有算术运算和浮点运算的测试单元,分别有本地的和.Net测试。Java应用是比.net广泛,主要人家是正儿八经的跨平台,.net基本上还是在windows上面跑,mono也不是微软自己搞的东西,问题肯定多。java出来得早,培养了一批程序员、代码库,还有hibernate等等。
再一个就是你用C#写网站只能在IIS上跑,好多服务器又不是windows的,Linux+Apache Tomcat显然比较受欢迎啊。

作者: catty7073    时间: 2011-12-7 15:54
珍惜资源,拒绝版聊......
作者: Tempestglen    时间: 2011-12-7 15:57
提示: 作者被禁止或删除 内容自动屏蔽
作者: doocoo    时间: 2011-12-7 16:04
COBOL这种极其丑陋的语言都还有市场,何况是Fortran。
作者: Tempestglen    时间: 2011-12-7 16:08
提示: 作者被禁止或删除 内容自动屏蔽
作者: acqwer    时间: 2011-12-7 16:26
本帖最后由 acqwer 于 2011-12-7 16:26 编辑
Tempestglen 发表于 2011-12-7 16:08
如果哪款手机支持fortran开发GUI程序,我连 objC都不需要学习了,直接去买。

好歹大学学过C,所以就去找 ...

就你贴的那种程度的程序,js比较合适。如果运算比较复杂,上asp.net,大部分手机都可以用。
作者: kof2003    时间: 2011-12-7 17:45
gjj2828 发表于 2011-12-6 22:38
怎么没有lua?

头像何许人也?求套图
作者: Tempestglen    时间: 2011-12-7 19:58
提示: 作者被禁止或删除 内容自动屏蔽
作者: InuYasha    时间: 2011-12-7 21:01
Tempestglen 发表于 2011-12-7 19:58
搞工程设计的人对编程要求不高,也不必像IT人士那样密切跟踪潮流,知识更新太快,压力大。有一种语言如果能 ...

自Windows 7发布以来,微软售出了5亿台PC机
----------
微软卖PC?他统计的是Windows7的销量吧,所有的盗版都没算进去.
作者: slime    时间: 2011-12-7 21:04
汇编仔无力爬过。。。。。。
仍然坚持认为苹果只是暴发户,没有iphone的话现状远不如索尼。
作者: xeon-pan    时间: 2011-12-7 21:05
本帖最后由 xeon-pan 于 2011-12-7 21:08 编辑
Tempestglen 发表于 2011-12-7 16:08
如果哪款手机支持fortran开发GUI程序,我连 objC都不需要学习了,直接去买。

好歹大学学过C,所以就去找 ...

我本以为你是程序员,后来又以为你是技术型果粉
但是看到你几次居然 连 obj-c是smalltalk系的而不是c++系的这一点都没搞清。
我真不知道一个非专业程序员是怎么能得出语言优胜论这种结论的,我Java转.net就用了1个月,身边不少人 .net,java转obj-c就2周,说真的,语法有什么难的,难的是其他配套的东西。难道你用obj-c,就不用设计模式了?就不用数据结构了?
现在哪个小牛程序员不会1-2门“外语”的

作者: xeon-pan    时间: 2011-12-7 21:10
本帖最后由 xeon-pan 于 2011-12-7 21:11 编辑
doocoo 发表于 2011-12-7 15:47
我的那个版本里面有算术运算和浮点运算的测试单元,分别有本地的和.Net测试。Java应用是比.net广泛,主要 ...

.net本身很优秀,windows做服务器糟糕而已。另外认识一个搞语言设计的大牛聊过,他却认为.net java这样中间层的很好,方便以后转函数式。。
作者: Tempestglen    时间: 2011-12-7 21:44
提示: 作者被禁止或删除 内容自动屏蔽
作者: yoyofuture88    时间: 2011-12-7 21:46
其实对于高手来说,语言都是类似的,所谓的哪种语言绝对比哪种语言好都是那种一知半解的程序员而已。每种语言都有他适合的独特的地方,我相信如果苹果的系统开放,很快就有其他语言做的比objective-c 做的好。你要是觉得 objective c好那你可以用objective-c开发下购物商城、或者web前台看看比C#、php能好的到哪里去?
作者: doocoo    时间: 2011-12-7 22:25
Tempestglen 发表于 2011-12-7 19:58
搞工程设计的人对编程要求不高,也不必像IT人士那样密切跟踪潮流,知识更新太快,压力大。有一种语言如果能 ...

微软的.Net战略其实一直都没有改变过。Web开发方面,前台是升级到了HTML5,XAML,但后台过去是VBScript(ASP),后来一直推的都是C#。桌面程序VC++一直都还在用啊,与其说C++变C#,不如说VB变C#,都是RAD的东西。前台的HTML5 XAML等等在可视化工具的帮助下学习起来也没有什么大问题。
开发库总在变,这个我同意,MFC ATL COM .Net……多得不得了,这倒真是个问题。
至于通吃,这就是微软想做的,Visual Studio最新版就包含了桌面、平板、手机甚至游戏主机的开发,用的语言也是一样的。不过所支持的库大概有一些差别。基于平板、手机那点可怜的存储,用一样的库有点不现实吧。具体的还得再考证。


作者: sagecao    时间: 2011-12-7 22:31
只懂ASM的路过.............哎,老了
作者: Tempestglen    时间: 2011-12-7 23:39
提示: 作者被禁止或删除 内容自动屏蔽
作者: doocoo    时间: 2011-12-7 23:45
Tempestglen 发表于 2011-12-7 23:39
平板和手机应该不会用桌面的图形库。苹果的cocoa库的构成,在mac 机上是foundation和appkit图形库,iphon ...

我个人认为这个排名其实有点问题,应该按照门类来排顺序。比如做网站的绝对不会去用C++,做驱动的绝对不会用c#,像你这样用fortran编图形界面应用程序的应该也是少之又少。这怎么比呢?
另外VC++失势,我觉得也不太可能。凡是性能敏感的软件应该不会在.Net上做的。要消灭本地代码?不会吧。.Net反向工程太容易了。




欢迎光临 POPPUR爱换 (https://we.poppur.com/) Powered by Discuz! X3.4