“高端”的编程语言是否真的高端?

我看到了许多刚接触Ruby、Python和Javascript的新手程序员抱怨这些语言太低端,就好像是在以某种方式欺骗系统一样。他们认为他们没有学习到那些真正“高端”的编程语言。某些语言是否真比另外一些语言更高端?我们一起来研究一下。

从电频层面上看

众多的编程语言在方方面面都有所不同。

但从低级的机器语言到我们大多数人使用的高级语言,都离不开电频这项技术。低使用性的机器语言并没有表现得比那些高级代码更高端或者先进。低使用性是众多语言设计者在完成特定设计目标的长期选择结果。

让我们继续深入,这里有一个用机器语言编程的例子:

这段代码一旦被数字处理器解析为电子信号后就能直接操作数字传感器和电动机了。在#之后的那些人可读懂的东西会被电脑忽略——它们之所以被程序员放在这里是为了让其他人读到这段代码后能知道其究竟在干什么。感谢上帝,我们不用必须像这样来编写代码。

程序要控制电脑的话最后都会转变成机器语言的。但是我们创造了编程语言用来取代那些直接用二进制、十六进制或者十进制代码来编写的机器语言(如早期的计算机科学家像阿兰·图灵和他朋友所做的那样),它帮助我们以更快更容易的方式将自己的想法转化成机器指令。有许许多多种方式都可以生成你在上面所看到的那段机器语言,因此就会有许许多多种编程语言,但是它们全部都会在某处转化为电频频谱。

从这个角度来看,语言的选择其实就是对让电脑帮助你生成机器语言的方式的选择。那么,高端和不高端,区分的依据何在?

从设计角度上看

今天所有的程序语言都是人们为了完成某种用途而设计出来的。这种理解是至关重要的,因为它们的设计目标决定了当程序通过它们运行时用户将得到的体验。

让我们通过设计目标来对比两种编程语言C和Ruby。

        C的目标:接近于机器语言,但能够移植在许多机器架构上。

        Ruby的目标:美丽、简单以及令开发充满快乐。

虽然最终都会生成机器语言,但不同的设计目标使这些语言的使用体验彻底不同。由于C语言结构更接近于机器的实际工作,因此它的机器代码在计算机执行时会更加高效、快速。这里有一个记录了各种可视化程序语言在处理某个简单文本的速度的图表,随着文本尺寸大小的变化,程序语言在处理速度上发生了变化:(纵轴为处理花费的时间,横轴为文本的大小)

由于执行时间很容易衡量(人们喜欢优化他们能够衡量的东西),象C一样“快速”的语言在人们精神层面上就会认为是高端的编程语言。

这其实是虚假的,这与不精确的速度测量密切相关。

速度的测量

C和那些底层语言在计算机硬件迟缓以及系统资源受限的时代是不可或缺的。毁灭战士、雷神之锤以及其它的第一代3D游戏的出现才突破了只能使用注重机器运行速度的语言的限制。

然而在今天,相对于我们在计算机上需要的大部分东西,计算能力是廉价和充足的。在软件开发中真正受限的是开发人员的时间和精力。象Ruby那样的语言可以让程序员用更少的代码做更多的事情,使开发更加快速。增加开发速度意味着可以更快的找出你所做的是否是真正的需求,可以更加简单的添加用户要求的功能以及可以使用更少的开发人员更轻松的完成项目。

下图是多种常见语言的代码复杂度排列:(黑色短横线为平均复杂度,红色字为最热门的一些语言,黑色字为较冷门的一些语言)

这张图可以让我们清楚知道哪些语言学起来更简单,帮助初学者找到易于开始的位置,另外这也可以解释为什么有些人认为某些语言很低端。到这里,你认为哪种方法更“高端”呢?

多元化

这是一个错误的命题,因为问题的答案取决于你的需要。科学家、统计学家和数据分析师仍然需要一门象C语言那样注重机器运行速度的语言来帮助处理他们的工作。大多数网络开发者需要象Ruby或者Python那样注重开发速度的语言来快速满足他们的业务和客户目标。在每个情景中,“最好”的语言都是不同的。

需求的多样性支撑了一个在不同设计目标下,程序语言多元化的重要性的强力论证。程序设计中永远不会有一门人人都采用的世界语,甚至是机器语言也非潜在的通用语言,因为每台电脑的架构都采用了略有不同的机器语言。对于对软件有不同需求的我们来说,这是一件好事。

独立的认识

在新手程序员阅读到这篇文章的时候:我希望它可以帮助你对所学习和所书写的语言代码有自己独立的认识。对于C语言,你需要知道它更贴近于机器语言而不需要了解它是看起来更“高端”的语言。我们创造编程语言的目的是为了减轻自己的负担,能够更加快速方便的创造想要的东西。

如果你要选择学习C语言,你选择的目的应该是它擅长对Arduino和嵌入式单片机编程或者是它能够快速编译机器算法,而不是你认为它比你已经学过的语言更加“高端”。 让你想从事的项目来决定你要选择学习的语言。因为毕竟它们都只是机器语言中的其中一种方言。

合适的选择

我所认识的最高端的那些程序员从从事编程工作开始就爱做一些很浅显的事(他们中的很多人如今仍然保持这种习惯)。他们会自己做一些很简单的游戏,或者做一些搜索和可视化的实验。他们所做的每件事情都来自于他们对此的兴趣,编码对他们来说就像是在玩耍一般,这非常的有趣。

不断重复对相关问题的反馈是掌握任何技能的关键。无论你选择的语言或项目是什么,请确保花费大量时间来学习它并听从指导者的建议反馈。代码语言产生的真正目的是为了帮助别人建立或者完善那些很棒的东西。无论什么语言,你的选择应永远是能够为你提供最快捷、最有效帮助的那一种。

文章转载自 开源中国社区 [http://www.oschina.net]

时间: 2024-11-10 00:55:44

“高端”的编程语言是否真的高端?的相关文章

“高端”的编程语言是否真的是高端?

某些Ruby.Python和Javascript的新手程序员常常抱怨这些语言太低端,感觉他们没有学习到那些真正"高端"的编程语言.本文将详细讨论"高端"的编程语言是否真的高端? 我看到了许多刚接触Ruby.Python和Javascript的新手程序员抱怨这些语言太低端,就好像是在以某种方式欺骗系统一样.他们认为他们没有学习到那些真正"高端"的编程语言.某些语言是否真比另外一些语言更高端?我们一起来研究一下. 从电频层面上看 众多的编程语言在方方

高端超市:下一个高毛利零售战场

文/熊 杰 试想一位习惯肩挎LV包或出入高档国际名店的女士,在闹哄哄的大卖场排着大长队等着结账,她会获得快乐的购物体验吗? 雨后春笋般的高端超市 2004年12月7日,华润集团深圳万象城Ole'店开业,成为国内首家高端超市.Ole'在西班牙语中是"兴奋.快乐.开心"的意思,Ole'超市则定位于都市白领.财富新贵以及外籍人士等目标消费群. 数年过去,这种定位于高端生活消费品市场的高端超市,如零售市场的一匹黑马脱颖而出.如:在上海以外籍人士为主要顾客群的城市超市.打造舞台概念的中百生活剧场

高端超市:下一个高毛利零售战场?

雨后春笋般的高端超市 2004年12月7日,华润集团深圳万象城Ole'店开业,成为国内首家高端超市.Ole'在西班牙语中是"兴奋.快乐.开心"的意思,Ole'超市则定位于都市白领.财富新贵以及外籍人士等目标消费群. 数年过去,这种定位于高端生活消费品市场的高端超市,如零售市场的一匹黑马脱颖而出.如:在上海以外籍人士为主要顾客群的城市超市.打造舞台概念的中百生活剧场.定位于白领女性的屈臣氏.黄埔旗下的Taste.台湾远东国际生鲜超市.韩国C-mart.北京华联旗下的BHC以及武商量贩的超

淘宝网为对食品安全质量有较高要求并且有较高购买能力的淘宝高端客户设立了淘宝生态农业频道

在市农业局等单位牵头下,丽水27家拥有农产品有机认证有效期内的企业与丽水讯唯电子商务公司就入驻丽水有机生态馆有关事情进行了洽谈,陆续办理入驻手续. 近年来,食品安全问题层出不穷,纯天然.无污染.安全营养的有机农产品愈加受到了人们的欢迎.作为中国生态第一市的丽水,截至今年5月,全市拥有农产品有机认证有效期内的企业46家,其中认证产品为鲜活农产品的生产企业15家. 随着互联网的普及,网络购物不受地域限制等优点消除了以往丽水区位劣势给农产品销售带来的影响,丽水一些企业自己上网打拼做网销."我们的精力重

百度高管解读财报:移动端流量年内将超PC端

摘要: 北京时间4月25日早间,百度公布了截至3月31日的2014年第一季度未经审计的财务报告.财报显示,2014年第一季度,百度总营收为94.47亿元人民币(约合15.28亿美元), 同比增长59.1%:净利 北京时间4月25日早间,百度公布了截至3月31日的2014年第一季度未经审计的财务报告.财报显示,2014年第一季度,百度总营收为94.47亿元人民币(约合15.28亿美元),同比增长59.1%:净利润为25.35亿元人民币(约合4.078亿美元),同比增长24.1%. 财报发布后,百度

视频-求助:急求啊!在Android端取得手机位置在服务端的匹配问题

问题描述 求助:急求啊!在Android端取得手机位置在服务端的匹配问题 小弟java程序猿,最近在做公司两个项目,一个是视频APP,它在后台上传的视频有一个地区属性,比如 湖南-长沙 : 那么在Android客户端用户登录时,可以通过GPS取得用户登录所在地,比如取得:湖南长沙望城县xxx区xxx街道...:那么需求就是在哪个地区登录的用户只能看哪个地区的视频:这样子我在服务端录入的时候给视频的地址是 "湖南-长沙":那么怎么跟Android端给我的地址来匹配判断呢? 当然我也想到先

从搜索引擎和用户体验分析为什么相关性高的外链权重值高

摘要: 外链这一块相信很多朋友都对它它兴趣,因为它是网站优化不可缺少的一部分.发外链要到相关的网站去发布,这样的权重值就会更高,比如我们网站是有关seo的,那么我们就到相应的 外链这一块相信很多朋友都对它它兴趣,因为它是网站优化不可缺少的一部分.发外链要到相关的网站去发布,这样的权重值就会更高,比如我们网站是有关seo的,那么我们就到相应的网站去发帖,这样权重值就会更高,相信很多站长都知道这个说法,但是却不知道为什么到相关性的网站发布外链权重值就高,今天我就用两方面来剖析下为什么相关性高的外链权

windows-[求助] 自建遠端關機程式,Client端遇到了困難

问题描述 [求助] 自建遠端關機程式,Client端遇到了困難 不好意思想請教一個技術問題,我這裡有自建一台Amazon的EC2主機,我想透過網頁去遠端關機控制我所有的電腦,家裡有3台,桌機.2台Windows筆電,公司有兩台,一台桌機.一台筆電,系統都是Windows. 我打算建一個網頁,然後每台電腦都安裝一個小程式Client(用內建的shutdown作一個執行檔),以網頁上的帳號密碼登入然後下指令關機,可是我在Client遇到了一些問題,我該怎麼去確認server發出了指令關機!?? 公司

informatic 端没有这样的问服务端切换之后调用存储过程一直running状态。

问题描述 informatic 端没有这样的问服务端切换之后调用存储过程一直running状态. informatic 端没有这样的问服务端切换之后调用存储过程一直running状态.切换之前线上一直都是没有问题!很苦恼希望救世主解救一下我把