为什么我喜欢富于表达性的编程语言

我的编程之旅从少年时代就开始了,那时学的是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和通过循环收集数据进行比较,循环会更快些。你需要根据自己的情况来判断,除非有很高性能要求,其它的问题可以忽略不计。

[英文原文:My love… for Expressive Programming Languages ]
分享这篇文章:

5 Responses to 为什么我喜欢富于表达性的编程语言

  1. 二胡 says:

    文中那本书我看了两遍,SCALA作为学院PAI语言, 非常地灵活, 语法糖多. 但是感觉就像PERL一样, 看别人写的代码太费劲了, 没有PYTHON 简洁.

  2. momo5269 says:

    作为一个lisp传销者 建议他去学lisp

  3. haitao says:

    富于表达性?是不是就是语言功能强?
    比如拼凑字符串,c需要先分配空间,再加上源1,再加上源2
    char buf[128]; //如果不够用,会很惨!
    strcpy(buf,s1);
    strcat(buf,s2);
    如果是delphi,则直接源1+源2(s1+s2)或s:string; s:=s1+s2;
    功能弱就不得不繁琐,那么就写起来累,代码行数多,容易错。。。

  4. sandartist says:

    C#很不错了
    纯粹的表达性强,针对人的抽象多而脱离了机器的本质,也是不合适的,既能很底层也能很抽象才会最强大!

发表评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据