今天说什么计算机语言最快,以及这和手机快慢的关系。全文不改,不回读,不编辑。纯为打发20130127 1:54这段无聊至极的时间。
最快是0101,现在用二进制去写程序除非是高端黑客用于一些局部破解之外,用它来正儿八经写软件是非常不切实际的,尽管它可以做到,但是时间耗不起。
然后是汇编,同样是程序规模问题,除非高手,基本上也没人用汇编写程序。这里强调一个规模问题,从前的人只能用汇编,也不见得就说从前的人全是牛人,因为当时的程序规模不能和今天相提并论,如今的规模越来越大,纯粹用汇编去写软件变得非常困难。Linux在早期是发誓要用纯汇编完成的,但随着规模的扩充,最终还是放弃了。
最后是各种高级语言,码农的专用,这里面又分为两种:
1. 程序写完之后由编译器翻译成计算机能读懂的汇编码,生成可执行文件,只翻译一次,以后直接运行可执行文件。
2. 程序一边翻译一边执行,每运行一次程序,编译器都要介入翻译一次。
第一种方式有点像印书,比如一本英文书,现在要翻译成中文,那么组织人手翻译一次之后,印刷厂开动,中文版就出来了,最后书到了读者这里,读书的人可以一目十行,效率很高。第二种模式有点像现场翻译,比如一个英国人和你说话,他说一句,翻译官听完后再用中文转述给你听。因为中间插了一个翻译官转述这个环节,所以效率肯定不高。
综合起来讲:
第一种方式效率很高,但是几乎没有可移植性,比如一本英文书翻译成了中文版,你让一个泰国人去读毛啊?
第二种方式效率很低,但有极高的移植性,同样的场合你只需要更换一个懂泰语的“翻译官”,就能解决问题!
普遍来说像C/C++这些语言,都是编译型语言,拥有很高的效率,而像Java,Perl这些则是所谓的解释型语言。
问题来了,为什么iPhone和WindowsPhone比Android快?这个又和每个厂商的市场定位和营销模式有关了。
iPhone是一个纯封闭的平台,其操作系统IOS只服务于iPhone这个唯一的硬件!你什么时候听说IOS能运行在三星的机器上了?因为Apple压根不考虑别的硬件平台,也就是说本大爷的著作只发行中文版,至于其他语种,本大爷压根不予考虑!类似的WIndowsPhone也属于封闭式平台,尽管各个厂商都在推出WindowsPhone手机,但是微软对他们所采用的硬件有着严格的规范和限制,这是为了确保微软的代码能够最终在手机上顺利运行的前提。这就是为什么WP手机,一定是高通的CPU而不可能是别家的一样,编译型语言对硬件的敏感度是非常大的,有时候甚至压根就是唯一的。
Android是一个开放式平台,这个操作系统要面对的是各种各样五花八门的硬件,各种不同的CPU,或大或小的屏幕等等等等,Google的商业策略本身也并非希望直接通过Android赚钱,他需要的是装机量,而装机量本身则是Google赖以生存的核心:广告收入的必要前提!所以Android选用了Java语言,这是一种解释型语言,正如前面我说的那样,他的效率不高,但是移植性超强,Google早已准备好了各种翻译官去迎接不同的硬件平台。
正如阅读和现场同声翻译一样,同等环境下,阅读的效率肯定比现场同声翻译要高!也就是说同等硬件指标下,iPhone和WP平台一定比Android快!我毫无贬低Android的意思,反之,正因为Android凭借强大的可移植性和开放性,让更多的应用能更快推陈出新,从软件生态圈这个宏观概念上来说,它的整体效率反而会比IOS或WP更高。这也正是Google商店能够以火箭般的速度追赶AppStore的原因之一。另外,当今主流的程序设计圈是倾向于解释型语言的,而编译型语言慢慢地在式微,大家可以关注一下近几年来冒升起来的新秀,几乎无一例外全是解释型语言。
最快是0101,现在用二进制去写程序除非是高端黑客用于一些局部破解之外,用它来正儿八经写软件是非常不切实际的,尽管它可以做到,但是时间耗不起。
然后是汇编,同样是程序规模问题,除非高手,基本上也没人用汇编写程序。这里强调一个规模问题,从前的人只能用汇编,也不见得就说从前的人全是牛人,因为当时的程序规模不能和今天相提并论,如今的规模越来越大,纯粹用汇编去写软件变得非常困难。Linux在早期是发誓要用纯汇编完成的,但随着规模的扩充,最终还是放弃了。
最后是各种高级语言,码农的专用,这里面又分为两种:
1. 程序写完之后由编译器翻译成计算机能读懂的汇编码,生成可执行文件,只翻译一次,以后直接运行可执行文件。
2. 程序一边翻译一边执行,每运行一次程序,编译器都要介入翻译一次。
第一种方式有点像印书,比如一本英文书,现在要翻译成中文,那么组织人手翻译一次之后,印刷厂开动,中文版就出来了,最后书到了读者这里,读书的人可以一目十行,效率很高。第二种模式有点像现场翻译,比如一个英国人和你说话,他说一句,翻译官听完后再用中文转述给你听。因为中间插了一个翻译官转述这个环节,所以效率肯定不高。
综合起来讲:
第一种方式效率很高,但是几乎没有可移植性,比如一本英文书翻译成了中文版,你让一个泰国人去读毛啊?
第二种方式效率很低,但有极高的移植性,同样的场合你只需要更换一个懂泰语的“翻译官”,就能解决问题!
普遍来说像C/C++这些语言,都是编译型语言,拥有很高的效率,而像Java,Perl这些则是所谓的解释型语言。
问题来了,为什么iPhone和WindowsPhone比Android快?这个又和每个厂商的市场定位和营销模式有关了。
iPhone是一个纯封闭的平台,其操作系统IOS只服务于iPhone这个唯一的硬件!你什么时候听说IOS能运行在三星的机器上了?因为Apple压根不考虑别的硬件平台,也就是说本大爷的著作只发行中文版,至于其他语种,本大爷压根不予考虑!类似的WIndowsPhone也属于封闭式平台,尽管各个厂商都在推出WindowsPhone手机,但是微软对他们所采用的硬件有着严格的规范和限制,这是为了确保微软的代码能够最终在手机上顺利运行的前提。这就是为什么WP手机,一定是高通的CPU而不可能是别家的一样,编译型语言对硬件的敏感度是非常大的,有时候甚至压根就是唯一的。
Android是一个开放式平台,这个操作系统要面对的是各种各样五花八门的硬件,各种不同的CPU,或大或小的屏幕等等等等,Google的商业策略本身也并非希望直接通过Android赚钱,他需要的是装机量,而装机量本身则是Google赖以生存的核心:广告收入的必要前提!所以Android选用了Java语言,这是一种解释型语言,正如前面我说的那样,他的效率不高,但是移植性超强,Google早已准备好了各种翻译官去迎接不同的硬件平台。
正如阅读和现场同声翻译一样,同等环境下,阅读的效率肯定比现场同声翻译要高!也就是说同等硬件指标下,iPhone和WP平台一定比Android快!我毫无贬低Android的意思,反之,正因为Android凭借强大的可移植性和开放性,让更多的应用能更快推陈出新,从软件生态圈这个宏观概念上来说,它的整体效率反而会比IOS或WP更高。这也正是Google商店能够以火箭般的速度追赶AppStore的原因之一。另外,当今主流的程序设计圈是倾向于解释型语言的,而编译型语言慢慢地在式微,大家可以关注一下近几年来冒升起来的新秀,几乎无一例外全是解释型语言。