学习不同编程语言的重要性.docx_第1页
学习不同编程语言的重要性.docx_第2页
学习不同编程语言的重要性.docx_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

学习不同编程语言的重要性引子今天选了下学期要学的一门课,叫做编程语言。据说是两周学习一门新的语言,很有挑战性。以及这门课的课本是MIT出的Concepts, Techniques, and Models of Computer Programming(一下简称CTMOCP),今天看了一部分它的前言部分,联系我以前读过的黑客与画家里面有两章对编程语言的讨论,发现学习不同的编程语言还是相当有必要的。第一,学习多门编程语言可以避免自己的思维被一种语言所限制。黑客与画家:如果你长期使用某种语言,你就会慢慢按照这种语言思维。在CTMOCP一书也有一个例子:学习Java的人认为concurrency很难操作,并且很消耗计算机资源,于是会尽量避免使用concurrency;但实际上,如果语言本身能够很好的处理concurrency,就可以把它变成一个很好的工具比如Unix的“管道”就是一种很好用的concurrency形式。这和生活中实际用着的语言很类似不同文化语言的差异,会限制这个文化中的人想问题的方式(这里有很多例子:/index.php/archives/501)。更激烈的一个例子,是在小说1984里面,当局通过限制人们的用词来限制人们的思维所以大家都被强迫讲“新语”。第二、学习多门编程语言可以找到更加适合解决问题的那一种语言在CTMOCP一书中,对于一个编程语言中一个新概念出现的原因,做了很好的说明:a new concept is added when programs become complicated for technical reasons unrelated to the problem being solved(在编程语言中一个新概念的出现,通常是因为在要解决的问题中,出现了一些 和问题本身无关的 需要用复杂的技术手段解决的问题)。我想,这种“新概念”,在浅层次可以是一些人们常用的API,在深一点的层次,可以是一种大的编程概念,比如面向对象,递归,解释性编程。通过合适地利用这些新概念、API,可以更加容易的解决一个现有问题。第三,一门良好的语言能更清晰的描述问题,从而加快编码和沟通的速度。在黑客与画家里面,这句话写得很好:“一个操作所需的代码越多,就越难避免bug,也越难发现它们”。对于我的一些低级应用来说,在用惯了Java的高级库函数之后,如果去用C做一些ACM题目,是一件很困难的事情(同时也是因为自己对于C+不够了解)算法可以想出来,但对于基本的数据结构,比如哈希表、树、栈 等等,都需要自己来实现随便一个小错误都会导致bug,无疑增加了debug的难度。语言是一种抽象形式。理想状态下高级语言的抽象,可以清楚地展示解决问题的思路本身。最后,展望一下理想的状态。编程实际上是在创造一个工具去解决用户的问题。面对一个要解决的问题,对于将要使用的编程语言的分析,应该像算法分析一样,知道一个语言的优势、劣势;使用这个语言能够带来的好处,以及产生的副作用。而要实现这些分析,需要对不同类型的编程语言有充分的了解,才能事半功倍。总之,没有最好的语言,对于一个特定的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论