1、我为什么开发Ruby《松本行弘的程序世界》

十一 8th, 2011

原因很简单“因为它给我带来快乐。”

Ruby有3个设计原则:

1、简洁性

从Lisp开始,编程语言就朝简洁方向发展,从简洁的程序可以看出一门编程语言本身的能力。简洁可能会带来性能上的损耗,如面向对象其实就会降低性能,但因为它能提高简洁性,且计算机性能大大提高,所以带来的正面效果更大。
Ruby目标就是成为开发效率高,“能直接运行的伪码式编程语言”。

2、扩展性

编程语言是工作,最大的特征就是对要实现的功能事先没有限制。实现扩展性的一个重要方法就是抽象化。抽象化指把数据和要做的操作都封装起来。Ruby中的面向对象、程序块、类扩展等都是基于这点。
Ruby另一点与其它语言不同:Ruby没有从安全角度考虑怎么减少程序员犯错误,而是在程序员自己负责的前提下为他提高最大限度发挥能力的灵活性。
“不要因为想当然而加入无谓的限制”,如著名的“千年虫”问题就是因为想当然。

3、稳定性

Ruby拒绝“宏”,虽然Lisp的无限灵活性一部分原因就是因为支持宏。但用宏的程序看起来就像用完全不同的语言写出来的一样,所以Ruby不支持宏。希望所有Rubyer都能快乐编程。

>>原创文章,欢迎转载。转载请注明:转载自Ruby迷,谢谢!
>>原文链接地址:1、我为什么开发Ruby《松本行弘的程序世界》
  1. hhuai
    十二 25th, 201122:25

    呵呵,有一天发现公司用来垫桌脚底下有这么本书,现在我在看。。。

  2. blackhat
    十一 13th, 201118:20

    这个问题恐怕解决不了了,从安装ruby->Devkit->gems一直遇到很多困难,过去一周都在折腾这个,从google上也找不到有效的解决方案:(
    很是纠结!貌似只有利用vpn or ssh才能解决gem的问题>”<

    • 老宋
      十一 13th, 201122:03

      Windows下搞Ruby都是在折腾中渡过的,挺过去了,发现也很顺手。Devkit一定要装好,参见前面那篇文章。如果离线安装gems失败,那就试下这个方法吧:http://huacnlee.com/blog/using-nginx-proxy-to-mirror-rubygem-org。希望这次能成:)

      • blackhat
        十一 14th, 201112:29

        嗯,Devkit早装好了,这文章也看过,没试过,会试试看。

        • blackhat
          十一 14th, 201112:49

          是否修改host文件即可?
          184.82.37.134 rubygems.org
          184.82.37.134 production.cf.rubygems.org1
          84.82.37.134 production.s3.rubygems.org

          这方法我也尝试过,可惜……其实,在百度和谷歌都搜过许多方法。
          希望老宋 以后能发布一篇win下完整安装ruby->Devkit->gems的文章提供参考。

          • 老宋
            十一 14th, 201113:23

            修改host文件即可,理论上可以解决GFW屏蔽和rubygems.org太慢的问题,文章我已经在准备了,哈哈

  3. blackhat
    十一 13th, 201110:30

    本来安装rubygems因为gfw导致无法更新gem,因此我需要用到的gem逐个下载下来安装,有些成功有些失败,因为某些gem之间存在依赖性,比如a依赖b,c依赖b,这些都解决了。

    剩下3个gem没安装好,分别是
    do_sqlite3 、sqlite3、 dm-sqlite-adapter,但它们的错误提示不是依赖问题,如上,是不是因为SQLite3没装成?我在想。

  4. blackhat
    十一 13th, 201110:25

    hi 你好,有些win下安装ruby/gem的问题请教你:)

    C:\Ruby192>gem install sqlite3-1.3.4.gem –local
    Temporarily enhancing PATH to include DevKit…
    Building native extensions. This could take a while…
    ERROR: Error installing sqlite3-1.3.4.gem:
    ERROR: Failed to build gem native extension.

    C:/Ruby192/bin/ruby.exe extconf.rb
    checking for sqlite3.h… no
    sqlite3.h is missing. Install SQLite3 from http://www.sqlite.org/ first.
    *** extconf.rb failed ***
    Could not create Makefile due to some reason, probably lack of
    necessary libraries and/or headers. Check the mkmf.log file for more
    details. You may need configuration options.

    这如何解决?

    • 老宋
      十一 13th, 201110:46

      这个错误在windows下很常见,因为sqlite3这个gem不是纯ruby写的,有一些c代码需要Devkit来编译安装。就是说要首先安装Devkit,可以参考这篇:http://rubyer.me/blog/134
      sqlite3安装可参考这篇:http://rubyer.me/blog/556,我传了一个压缩包,解压后把程序复制到Ruby的bin目录下即可:)
      希望以上能帮助到你,如果还有问题欢迎留言:)

      • blackhat
        十一 13th, 201113:24

        这个sqlite3我也试过几次均失败,可能是版本问题(有的压缩包有2个文件sqlite3.def、sqlite3.dll;有的压缩包有6个,包含sqlite3.h等;有的是5个;甚至只有一个sqlite3.exe)。
        你这篇《Rails 中使用sqlite3做为数据库》的下载失效了,可否再上传一个或提供一些下载地址,谢谢;)

        • lstfant
          十一 13th, 201114:42

          重新上传了http://dl.dbank.com/c0cmb3fd78

          • blackhat
            十一 13th, 201116:01

            已把sqlite-win32.zip解压至C:\Ruby192\bin,但运行gem install sqlite3-ruby-1.3.3.gem -l时依然出错,郁闷!

            C:\Ruby192>gem install sqlite3-1.3.4.gem -l
            Temporarily enhancing PATH to include DevKit…
            Building native extensions. This could take a while…
            ERROR: Error installing sqlite3-1.3.4.gem:
            ERROR: Failed to build gem native extension.

            C:/Ruby192/bin/ruby.exe extconf.rb
            checking for sqlite3.h… no
            sqlite3.h is missing. Install SQLite3 from http://www.sqlite.org/ first.
            *** extconf.rb failed ***
            Could not create Makefile due to some reason, probably lack of
            necessary libraries and/or headers. Check the mkmf.log file for more
            details. You may need configuration options.

            Provided configuration options:
            –with-opt-dir
            –without-opt-dir
            –with-opt-include
            –without-opt-include=${opt-dir}/include
            –with-opt-lib
            –without-opt-lib=${opt-dir}/lib
            –with-make-prog
            –without-make-prog
            –srcdir=.
            –curdir
            –ruby=C:/Ruby192/bin/ruby
            –with-sqlite3-dir
            –without-sqlite3-dir
            –with-sqlite3-include
            –without-sqlite3-include=${sqlite3-dir}/include
            –with-sqlite3-lib
            –without-sqlite3-lib=${sqlite3-dir}/lib
            –enable-local
            –disable-local

            Gem files will remain installed in C:/Ruby192/lib/ruby/gems/1.9.1/gems/sqlite3-1
            .3.4 for inspection.
            Results logged to C:/Ruby192/lib/ruby/gems/1.9.1/gems/sqlite3-1.3.4/ext/sqlite3/
            gem_make.out

Cancel reply