笔记:编写OC程序的61个建议-1-将其视为动态语言

养成把学到到东西记录下来。。。。。。。

Objective-C是一门动态语,它和C++是兄弟,老爸就是牛逼的C,至于它们为什么造出来,是因为有人受不了C的面向过程开发方式(时代在进步),所以基于C加入了面向对象特性扩充而成。

虽然两者的父亲是一样的,但两者点机制差异很大。OC基于动态运行时类型,C++基于静态类型。

运行时类型的语言,其编写的程序不能直接编译成可令机器读懂的机器语言(0 1 ),而是在运行时把程序转译成可令机器读懂的机器语言,这也是OC作为动态语言的标志;(JAVA和C#也是),每一种运行时语言,都有自己对应的运行环境,它负责来运行并执行你的代码。如:java-jvm,c#-clr,oc-runtime;

静态类型的语言,其编写的程序编译时能直接生成可令机器读懂的机器语言;

 

动态语言的优点:

灵活性:随着时代进步,对原来语言在做项目时表现的不满,进化而出。。。3阶段(隔半年后再回看,会修改这些内容,提升角度观点都不同,现在还是有点理不清原文内容)

a,传统的面向过程对语言开发,如c语言:函数调用很直白,直接调用内存地址,虽然这样很好,但是太死板

b,改进的开发面相对象的语言,如c++语言:相对面相过程,面相对象的语言更加灵活,增加了类的概念,使本来直接返回内容,增加啦变化性,导致同样的方法,在不同的类有不同的方法,虽然进步啦,但还是有些死板,因此称C++为静态语言

c,动态开发语言,希望更加灵活,把类的实现更加抽象化,做成一套完成运行阶段的检测环境,形成动态开发语言。动态语言是会尽可能将编译和链接时要做的事推迟到运行时,只要有可能,就会把问题放到运行时来解决。所以更灵活

动态语言的缺点:

1,执行效率,因为不是直接生成机器码,需要在运行环境进行解释编译等,所以才有啦一句"静态开发语言执行效率要比动态开发语言高",也正因此,开发语言的人要付出很大一部分努力来保持运行时系统的小巧。

2,安全性,动态语言编译的程序时需要运行时进行解释编译等,所以其编译后的源码可被反编译出来,让人得源码。

posted @ 2015-11-20 17:57  xuzn  阅读(190)  评论(0编辑  收藏  举报