【外刊IT评论网】为什么我喜欢富于表达性的编程语言

标签: 心得体会 富表达 | 发表时间:2011-08-17 00:54 | 作者:Aqee 洋白菜
出处:http://www.aqee.net
本文是从 My love… for Expressive Programming Languages 这篇文章翻译而来。

我的编程之旅从少年时代就开始了,那时学的是GW-BASIC。很快,我学习了C语言,之后是C++。C++里提供的面向对象的语法结构让我印象深刻,但是,对于有些像定义范围控制的概念我还是觉得有些复杂。接着开始学习Java。我立即被它从C++提炼出的更优秀、更简练的语法所吸引。

那时我还在上学,所以,肤浅的学习(准确的说是试图学习)一些编程语言是一项有趣的事情。我翻看了一些PHP和Javascript资料。我又开始跟C#接触。这种语言还在发展进化。网上盛传C#是微软的Java。这让我更让我想学C#和深入的了解.NET框架。这时LINQ(语言集成查询)出现了,这个东西很不错。我很高兴它能被简洁的引入到C#中。C#3.0中增加的各种对LINQ的支持,包括lambda表达式,隐式类型变量,匿名类型,查询表达式等等,使LINQ架构更加完美。到我毕业时,我已经是一名经验丰富的面向对象开发人员了。

最近,我考虑学习一些语法更加晦涩的语言,就像Jquery的“write less, do more”的口号(尽管Jquery并不是一种语言)。我研究过Python和Ruby,但没有发现什么令人兴奋的。我偶然发现了Scala语言,决定下一个任务就是学它。

通常在学习一门新的编程语言时,我很少去注意这些语言的句法结构(for,if,function/class定义等)。经过了很长一段时间后,我越来越注意一种语言这方面的特点。所以看书时,关于这些结构方面的章节不再轻易跳过。

我正在阅读Scala编程,作者是Martin Odersky,他是这门语言的缔造者。到目前为止,Google Books里已经有很多关于学习Scala的教材。如果你已经学过Scala,你现在应该能理解我为什么说这种语言神奇了。

使用富表达性语言的原因

  • 代码的陈述很自然。少了那些讨厌的语法结构,让你更集中精力关注逻辑问题。
  • 让程序员开发时更有效率,更容易修改代码。
  • 调试起来超级简单。
  • 个人认为,开发人员更容易利用这些语言编码方式来优化他们的程序。

当实现某个任务时,唯一能让我拒绝使用富表达性语言的理由是,也许你也猜到了,是性能问题。你拿LINQ和通过循环收集数据进行比较,循环会更快些。你需要根据自己的情况来判断,除非有很高性能要求,其它的问题可以忽略不计。


本文来自外刊IT评论网(www.aqee.net),原始地址:为什么我喜欢富于表达性的编程语言

相关 [it 我喜欢 编程语言] 推荐:

【外刊IT评论网】为什么我喜欢富于表达性的编程语言

- 洋白菜 - 外刊IT评论
本文是从 My love… for Expressive Programming Languages 这篇文章翻译而来. 我的编程之旅从少年时代就开始了,那时学的是GW-BASIC. 很快,我学习了C语言,之后是C++. C++里提供的面向对象的语法结构让我印象深刻,但是,对于有些像定义范围控制的概念我还是觉得有些复杂.

[转][转]Clojure 编程语言

- - heiyeluren的blog(黑夜路人的开源世界)
简介: Lisp 是一种编程语言,以表达性和功能强大著称,但人们通常认为它不太适合应用于一般情况. Clojure 是一种运行在 Java™ 平台上的 Lisp 方言,它的出现彻底改变了这一现状. 如今,在任何具备 Java 虚拟机的地方,您都可以利用 Lisp 的强大功能. 在本文中,了解如何开始使用 Clojure,学习它的一些语法,同时利用 Eclipse 的 Clojure 插件提供帮助.

如果编程语言是汽车……

- 康爷 - Wow! Ubuntu
原文: If programming languages were cars... http://www.cs.caltech.edu/~mvanier/hacking/rants/cars.html,有筛减. 本文是一系列把编程语言和汽车对比的老笑话合集,添加了几种最近流行的语言. 注:似乎 Digg/Reddit/StumbleUpon 对本文进行了挖掘/阅读/踩,结果我收到了一大坨儿的新建议.

如果编程语言是一条船…

- will - cnBeta.COM
Turing绝对是一个双人皮划艇.

杂谈现代高级编程语言

- 卡飞菲 - Yi Wang's Tech Notes
几个月之前,Slashdot转载了Robert Harper教授的一篇博客,说卡内基梅隆大学计算机系把”面向对象编程“从大一新生的必修课中删掉了,其原因是. 这两个原因(anti-modular和anti-parallel)都是很重的指责了;尤其是anti-modular,因为OO的基本思想通常被理解成“封装”,从而实现模块化.

你喜欢什么编程语言?

- Sean - 不周山
OpenParty回来,重看了一下自己的讲稿,觉得还是挺乱的,想传递的东西很多,仓促之间也没有把内容组织好,对周六冒着桑拿天赶到现场,还在一间没有空调的挤了一百多号人的房间里听我唠叨了近一个小时的同学们深感有愧. 这里摘要一下,也许能同时弥补一下因为我口音不纯带来的表意不清. 其实主要是两部分的内容,一是我认为R能极大提高算法与数据工作人员的快乐程度及工作效率;二是R的发展历史中呈现出来的六张面孔.

年度编程语言锁定Objective-C

- ndv - 《程序员》杂志官网
虽然2011年才刚过半,但随着iPhone和iPad平台市场领导地位的确立和Apple各系统不断推陈出新,从市场占有的趋势来看,Objective-C成为年度编程语言无疑. TIOBE编程语言排行榜每年初都将统计评出上年度的最佳编程语言大奖,获奖的编程语言被认为在该年度市场份额增长及用户认可度方面获得了最为突出的成绩.

Google将宣布新编程语言Dart

- 李龑 - Solidot
Google的两位工程师将在下个月举行的Goto软件开发会议上宣布一门全新的编程语言Dart. 这门新语言是为结构化的Web编程设计的,适用于开发基于浏览器的Web应用. Google还没有透露Dart的任何技术细节. Google在2009年曾发布了主要针对服务器端的Go语言.

编程语言之间的界限

- - ITeye资讯频道
Cory House是一个软件开发者,笃信清洁代码和务实开发. 最近他总结了不同的编程语言之间存在的界限规则,他还认为不了解编程语言之间存在的界限无异于选择错误的开发工具,要想简化、加快软件开发过程,了解语言之间的异同是必不可少的. 如今开发者有很多种途径去解决编程问题,不管是利用大量的类库还是各种各样的技术工具.

异步编程语言的常见坑

- - idea's blog
天生支持异步编程的语言如 NodeJS, Golang 等, 创建一个异步 routine 的成本非常小, 这确实是一个非常方便的功能. 比如用在网络爬虫程序的开发, 对于每一个要抓取的 URL 就启动一个 routine, 类似启动一个线程, 既能充分利用 CPU 多核, 代码也很简洁.. 正因为太方便, 所以常常被滥用, 并引发许多严重坑.