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

从电频层面上看

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

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

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



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



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

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

从设计角度上看

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

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

  • C的目标:接近于机器语言,但能够移植在许多机器架构上。
  • Ruby的目标:美丽、简单以及令开发充满快乐。

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



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

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

速度的测量

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

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

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



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

多元化

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



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

独立的认识

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

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

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

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

本文翻译自The Myth of‘Serious’Code
  • 大小: 164.9 KB
  • 大小: 268.6 KB
  • 大小: 120.8 KB
  • 大小: 80.5 KB
  • 大小: 168.8 KB
来自: 慧都控件网
4
1
评论 共 2 条 请登录后发表评论
2 楼 programmonkeyer 2015-03-06 09:54
那些争论谁是第一语言的人可以闭嘴了。
1 楼 white_crucifix 2015-03-05 23:10
第一句写反了吧。。。大多数写ruby、python的都觉得其他语言好低端。。。
而javascript。。。确实容易成为受气包。。。

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 编程语言发展史之:编程语言的未来趋势

    编程语言”这个概念在近几年间已经成为现代科技领域的一个热门话题。它从诞生到今天已经经历了几百年的历史,各个编程语言都各不相同,但其中的共同点无疑就是可以实现一些程序功能。而“未来趋势”,则指的是这一...

  • 基于C语言和GEL语言的Flash编程新方法

    以TMS320VC5402为例,探讨一种综合运用C语言、数据文件及GEL语言的Flash编程新方法。  该方法完全采用C语言编写烧写程序,解决了指针不能访问高端Flash的问题;把引导表作成数据文件,可实现大引导表的分批次加载;...

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

    本文将详细讨论“高端”的编程语言是否真的高端? 我看到了许多刚接触Ruby、Python和Javascript的新手程序员抱怨这些语言太低端,就好像是在以某种方式欺骗系统一样。他们认为他们没有学习到那些真正“高端”的编程...

  • 当下最实用计算机编程语言,目前最流行的计算机编程语言是什么?

    之所以有那么多种不同的编程语言存在的原因是,编写程序的初衷其实也各不相同;新手与老手之间技术的差距非常大,而有许多语言并对新手来说太难学;还有,不同程序之间的运行成本(runtime cost)各不相同。 有许多...

  • 编程语言是怎么发展的?

    说到编程语言,我们通常会想到JAVA、C#之类的。不知道你有没有好奇过,编程语言到底是怎么发展而来的。别急,听小编慢慢道来。编程语言的定义为计算机和人都能识别的语言,通过编程语言,程序员将指令发给计算机,让...

  • D 语言是否可作为入门级的编程语言?

    由于 D 语言是他们接触的第一种类型语言,所以首先我必须解释类型是什么,以及为什么类型很重要。

  • python编程语言优点有哪些_学习Python究竟编程语言有哪些优势?

    被看做人工智能时代最佳的编程语言Python究竟有哪些优势?越来越多的人选择参加上海Python培训班真的有必要吗?且看小编的分析。Python为什么这么火?这依赖于它独特的优势。一、入门简单、语法简洁Python 语言相对于...

  • 十大热门编程语言的介绍

    小编给大家分享一篇关于现阶段十大热门编程语言的文章:经过流行的搜索引擎,如谷歌,必应,雅虎,维基百科,亚马逊,YouTube和百度,用于计算评级;得出十大热门编程语言排行榜的榜单: 根据百度百科以及网上查阅...

  • 不要学习“网红”编程语言

    ”人类不停发明编程语言本身就是件蠢事,我希望世界上就只有c这一种高级语言就够了“看到网上有这样的评论,回复的朋友也挺有意思的"平庸的C程序员绝大多数时候都在解决机器问题,而不能好好思考业务问题。编程语言...

  • 程序初学者推荐学习的三种热门编程语言

    对于初学计算机语言的小白的推荐!希望我的总结能对大家有所帮助!

  • Tiobe最新:8月编程语言排行出炉!有哪些新变化?

    Tiobe编程语言排行榜一月一更新8月数据已新鲜出炉和播妞一起来看看有哪些变化吧8月Tiobe编程排行前20名历史变化趋势年度最佳编程语言2021年Python编程语言比较强劲...

  • python是什么类型的编程语言-Python是个什么语言?

    利利:Python是什么样的一门语言,又是因为什么,从众多编程语言当中"杀出重围”,成为了大家的选择?Scratch、Python、C++三门语言,被众多少儿培训机构,选做"少儿编程课程”的语言。Scratch是一种图形...

  • 2020年10种最佳移动开发编程语言

      Photo by Alexander London on Unsplash  Kotlin Kotlin是一种静态类型的编程语言,旨在消除JAVA在Android应用程序开发中的缺点。 Kotlin可以与JAVA结合使用,以制作更高效和高性能的应用程序。 Kotlin具有非常...

  • 为什么要使用 Rust 语言?Rust 语言的优势在哪里?

    Rust 是一种快速、高并发、安全且具有授权性的编程语言,最初由 Graydon Hoare 于2006 年创造和发布。现在它是一种开源语言,主要由 Mozilla 团队和许多开源社区成员共同维护和开发。 虽然 Rust 是一种通用的多...

  • 大学选编程语言C#、C++、Java、Python 选择哪个好?

    c#微软弄的,我没有用过,不过待过c#后台的公司,写起来都是面向对象的语言,跟java差别不大,相信其它方面其实也相差不大,但是就是用的人少,并且感觉是越来越少,大概是生态圈打造的不好吧。在我工作过的几家公司...

  • 编程语言的发展史

    编程语言处在不断的发展和变化中,从最初的发展到如今的2500种以上的,每种语言都有其特定的用途和不同的发展轨迹。编程语言并不像人类自然变化一样的缓慢而又持久,其发展是相当快速的,这主要是计算机硬件、互联网...

  • 2020年,急需提及的十大最受欢迎的编程语言

    技术是通过编程语言来实现的,技术领域中有600多种编程语言。编程语言的命令和识别每年都在变化。此外,新的编程语言还具有引人注目的特性和功能。 为了促进软件开发服务和Web应用程序的需求,以下急需提及的十大最...

  • WebAudioAPIError(解决方案).md

    项目中常见的问题,记录一下解决方案

  • avnet(安富利)网站详情页数据样例

    avnet(安富利)网站详情页数据样例

Global site tag (gtag.js) - Google Analytics