• 2008-01-28

    跨越语言

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
    http://www.blogbus.com/dreamhead-logs/14643453.html

    PreferDesignSkills
    InfoQ评论英文版:Prefer Broad Design Skills over Platform Knowledge
    InfoQ评论中文般:丰富的设计技能胜过特定于平台的知识

    我对程序设计语言有着偏好,所以,我喜欢不断接触各种新语言,喜欢研究语言背后的实现。

    最近一段时间,我做的项目用到的几乎都是对我而言的新语言:C#、ActionScript、PHP……,这等价于我要不停的学习自己新语言。

    我很享受学习新语言的过程,因为它们会带给我一些不同的体验。每一种语言都有自己不同的适用范围,这一点在学习像ActionScript和PHP这种有很强领域色彩的语言时,体现得尤为明显。运用这些语言写程序的过程中,很容易体会到语言作者在设计时的侧重。

    学习新语言,某些情况下也有一些让人难受的地方。经常是,程序出现了语法错误,却瞪眼看不出来,突然意识到错误所在,原来自己用的是熟识语言的语法,不禁莞尔。有时,语言或程序库与自己熟悉的习惯不相一致,经常会被绊住一段时间。

    好吧!回到开头,Martin说,设计技能更重要。我想说,设计技能只是很重要的一方面,更多的还是自己做事的方法和习惯。跨越语言时,对此体会会更加深刻。

    最近是在写一些PHP代码,我完成一个功能的过程大致如此;弄清楚自己要做的是什么,想一下大概应该如何实现,用PHPUnit编写测试,然后完成功能,运行所有测试,确保这个实现正确以及没有破坏任何已有的东西。把PHP换成其它语言,相信过程是类似的。

    如果你有机会像我一样在语言之间穿梭,在度过最初的痛苦期之后,你会发现一切会回到自己熟悉的轨道上。设计、编码、查文档、测试,没有什么不同,所做的一切,都是把自己的想法落实成代码,只不过,由于语言的差别,落实成具体的代码,形式上略有差别而已。

    当然,我们不是教条主义者,不只是简单粗暴的知识映射。语言和语言之间是有差别的,所以,学习语言时,我们会注意到语言为我们提供的便利,比如,动态语言的特性,比如,函数的抽象等等,这样我们可以更好更优雅的完成我们的工作。
    分享到:

    历史上的今天:

    引用地址:

    评论

  • 站主:

    您好! 我是英语博客网 的博主,现在我更换了域名,能否

    交换链接?博客 名称是:英语博客网,新域名是:

    http://www.52enblog.com 新的LOGO在

    http://ghb.blogbus.com/logs/1481179.html选择一个。

    谢谢!
  • 设计是从各个语言中抽象出来的,所以设计在某种程度上也是依附于语言的。个人理解。
    此blog我必看之,嘿嘿
  • 看来最近你忙得\'不亦乐乎\'啊,呵呵。什么项目让你有如此机会品尝这么多语言呢?
  • 老大说的很对,TDD驱动下的过程类似,但是也不能否认不同语言写出来的代码,尽管功能相同,风格却是差异很大,这个差异不仅仅是少了几行代码,有的时候更是效率上的极大差异(这在函数式语言中似乎更为明显)。丰富的设计技能也只能从特定平台的深入才能得来吧。
    回复dennis说:
    你说得对!没有1,哪来的2,所以,必然会有一个出发点,一个特定的平台,深入一个特定平台才能让我们有能力去看到更为广阔的天地。但不该止步于一个特定的平台,否则,便成了坐井观天。
    2008-01-29 22:54:14