美文网首页
我对Objective-C看法

我对Objective-C看法

作者: 我明白了我是一条鲶鱼 | 来源:发表于2019-08-25 16:35 被阅读0次

编程语言是什么?

我理解编程语言就是一种让计算机工作一种工具。在C中有些语法是写给程序员看的,而不是对于机器来讲并没有什么区别。怎么来证明这个观点?把C代码转换为汇编语言。

比如:static关键字。使用static修饰过的函数,其实和没有修饰过的两样,仅仅是是表示当前源文件可见。汇编语言没有具体显示static函数与默认函数的区别。还有指针。指针也仅仅是C语言层面的东西而不是汇编语言有任何的表示。指针变量的类型int,float和char,汇编语言中紧紧表示长度。

所以编程语言更多是的程序员让计算机运行的工具。编程语言包括两个方面,一个是人可以读懂有利于人的编写,然后就是表达最基本的计算机运行逻辑。

对Objective-C的希望

我在一开始学习它的时候,就抱着规避项目经验的心态。我当时对比过C++和Java,发现都是太需要项目经验了。我看过C++编程思想上的一段话,阐述C++设计的理念。书中说到,当有一个项目需要交给你做的时候,你是使用C语言好好写完,还是使用一门语言快速完工即便是有些性能损失。C++对于项目来讲更多的是完成大于完美。包括Java在内,我会对这些语言产生一个疑问。Java中的类究竟是什么东西,能不能真正理解到这个概念还是仅仅为了编程而编程。

在Objective-C我感受到了真的,不需要项目经验。对于Objective-C掌握的程度和项目经验没有关系,其中的语言特性,都是对C封装而来。还有更改一下编译器设置。在Objective-C有代理,代理本质是什么。在《effective Objective-C》书中解释非常清晰。所以,并不需要经过项目经验体会到什么是代理,什么是block。我曾经还看到过解释block使用C++,多么搞笑的事情。使用一件不能理解事情去解释另外一个不能解释的事情。怎么不用C++解释Java,解释python,解释PHP。

Objective是怎么发送消息的,是怎么进行内存管理的。本来就是摆在那里的,不需要经过项目经验也是可以懂得。但是需要强烈懂C,因为如果不懂C函数指针不能正确理解,甚至于指针不能正确理解,那就凉凉了。如果不懂函数,C中为什么会有函数这个概念,为了炫酷吗?当然不是。当把C转化为汇编之后,就可以看清楚函数调用的原貌。main函数和另外定义函数都是在一个区域在栈中,而不是main函数另开辟一块内存区域。如果使用能控制进程在内存中的大小,因为函数能够公用这个作用域的代码。如果不明白还是不明白使用函数和不使用函数的区别,可以百度——C语言函数调用本质。而且在Java可能会学到内存管理吗?所以我感觉如果从一开始学习Java即便学习的很好,学习到也不是完整的计算机知识。

对iOS开发的现状的理解

iOS 开发其实就是从2011年开始,并没有C++和Windows古老。现在开发iOS开发也是异常的简单,各种开源的框架有很多。组织起来一个APP,就是把这些开源框架组织起来就好了。然而,现在有一些声音培训机构,培训高级iOS开发工程师。培训的内容主要包括iOS音视频开发、runtime和iOS安全。iOS音视频开发更多不再是调用API如何工作了,而是使用GPU运算。现在更需要iOS异构运算的APP,大量处理图片音视频。更像是英伟达的CUDA,只不过更偏向于UI。runtime在是开发中在组织大型的软件架构很有用处。以及定制化开源框架。比如:能够解析YYModel,SDWebImage,用来能够达到更加精致的业务要求。

也就是说原来iOS APP开发技术,其实已经老了,烂了大街了。现在正式处于一种新老技术迭代中。

对于跨平台开发的理解

比如:Android开发使用C++可以在iOS上面运行了。我一直很不理解,为什么华为开发一个编译器,让Objective-C运行在Android上面?为什么去傻乎乎优化ART,也不去开发一个Objective-C的runtime?可见,软件开发功力还是不到家。Objective-C动态语言,有一点很厉害的。比如说iOS新增了一个特性,也就是新增了一个软件包。当APP在使用这个软件包的时候,这个软件包并没有加载到内存中。是CPU运行到那里的时候再加载。这个还不是最厉害的。用户在屏幕上点击一个按钮,这个按钮在没有点击的时候。内存中没有存在那个软件包。如果使用C++或者Java情况,就是在编译的时候,已经把各个软件包绑定到一起了。

所以,随着iOS版本更新,app启动速度不会降低。而Android和Windows在低硬件配置下表现极差,升级系统根本就不可能。

我不喜欢项目经验,Java中有一个文件流,C++也有IO流。现在我才懂比如遇到一个直播APP,因为直播需要一直链接网络,必须使用文件流。这就是我一直想摆脱项目经验。

相关文章

  • 谈谈我对懒加载的一点看法 | Objective-C

    谈谈我对懒加载的一点看法 | Objective-C 谈谈我对懒加载的一点看法 | Objective-C

  • 我对Objective-C看法

    编程语言是什么? 我理解编程语言就是一种让计算机工作一种工具。在C中有些语法是写给程序员看的,而不是对于机器来讲并...

  • 我对稳定看法

    所谓稳定,其实是一种动态的平衡,像骑自行车一样,先上车坐稳了,然后慢慢骑脚踏板,掌握技巧了,熟练了,再骑得快。

  • 我对创业看法

    接下来我要说个故事这个故事叫富和尚与穷和尚的故事:有一个富和尚跟一个穷和尚说我要去环游世界,但是我要花好多时间与金...

  • Objective-C如何对内存管理的,说说你的看法和解决方法?

    Objective-C如何对内存管理的,说说你的看法和解决方法? 答:Objective-C的内存管理主要有三种方...

  • iOS 14 苹果对 Objective-C Runtime 的

    iOS 14 苹果对 Objective-C Runtime 的优化iOS 14 苹果对 Objective-C ...

  • Objective-C | 谈谈我对懒加载的一点看法

    懒加载: lazy load,又名延迟加载,需要的时候才加载。 目前对于懒加载有下面三种说法: 1.禁止使用懒加载...

  • 我对整理的看法

    以前的我非常喜欢整理,整理衣物、整理书籍、整理手机信息收藏、整理工作相关事物。 现在的我对整理也进行了改革。因为忙...

  • 我对金钱的看法

    我觉得金钱很重要!如果你想拥有健康的身体,就需要用钱买保健品和支付医疗费。而生活中各种用品,食品都需要钱来对...

  • 我对结婚的看法

    聊一个全民关心的话题,“结婚”。 社会给女性传递的价值观就是年纪越小越值钱,这简直是荒谬。你认可了这种思想就等于认...

网友评论

      本文标题:我对Objective-C看法

      本文链接:https://www.haomeiwen.com/subject/abchectx.html