zoukankan      html  css  js  c++  java
  • 松本行弘访谈录

    我很高兴来到松本先生的家乡——日本松江市拜会松本先生。我们在谈话间聊到一些Ruby语言背后的设计思想,松本先生也解答了我向他提出的几个问题。

    Bruce:你为什么要开发Ruby?

    Matz:我从一开始摆弄计算机,就对编程语言产生了兴趣。编程语言不仅是用来编程的方法,还是思维的放大器,可以塑造思考编程的方式。所以很长一段时间,我都把编程语言当作一项兴趣爱好,下了不少功夫研究。我甚至实现了几门玩具语言,但都派不上什么用场。

    1993年,当我看到Perl的时候,不知怎么的,这种混合了Lisp和Smalltalk特征的面向对象语言让我的灵感一下子迸发出来。我意识到Perl将成为一门可提高我们生产力的伟大语言。于是,出于自娱自乐的动机,我着手开发一门与之类似的语言,并将其命名为Ruby。刚开始的时候,开发Ruby还纯属业余爱好,处处都能按自己的口味设计。后来,世界各地的程序员开始渐渐接受这门语言及其背后的设计原则。它越来越受人们喜爱,这远远超出了我的预期。

    Bruce:你最喜欢它哪一点呢?

    Matz:我喜欢它寓编程于乐的方式。说到某个具体的技术点,我最喜欢的是“代码块”(block)。 代码块即是一种易于控制的高阶函数,也为DSL(Domain-Specific Language,领域特定语言)及其他特性的实现提供了极大的灵活性。

    Bruce:如果能让时光倒流,你想改变哪些特性?

    Matz:我想去掉线程,加入actor(参与者)或一些更高级的并发特性。
    无论你是否已对Ruby有所了解,都请一边阅读本章,一边留意Matz为设计这门语言所做的种种权衡。你可以看看他添加了哪些语法糖——那些打破了语言常规,不仅为程序员提供更加友好的体验,而且让代码更容易理解的小特性。还可以看看Matz在集合(collection)等处用到的代码块,体会一下它们如何发挥出梦幻般的效果。还有,尽可能去理解他在简单性和安全性之间、编码效率和程序性能之间所做的哪些让步和折中。

    摘自《七周七语言》

  • 相关阅读:
    mysql中删除表
    js上传文件获取客户端地址
    form表单普通提交预览显示,读取显示tmp文件
    PHP中获取中英文混合字符串长度[主要是指个数,而不是字符串长度](转)
    离开页面提醒功能 (实现博客园离开编辑页面时的提醒功能)(转)
    Google maps API开发(一)(转)
    Python的getattr(),setattr(),delattr(),hasattr()
    Python读写文件
    Python命令行解析argparse常用语法使用简介
    面向对象设计与分析实例
  • 原文地址:https://www.cnblogs.com/turingbooks/p/2496515.html
Copyright © 2011-2022 走看看