• 新学一门语言没什么坏处,学学 go 挺好的。 至于学了有没有什么用,我的感受是学了越多越发觉用处不大,如果你想设计一门语言,也许会拓宽思路,但是做应用级别的开发,用处不大。

  • go 明显是用来做系统语言的,语法就像一个 c 的方言。从我角度来看,无法取代 c,也许可以玩一玩。 和 ruby 就没什么交集了,一个是看重开发效率,一个是看重执行效率,完全是两条路上的东西。

  • GO 的性能真的是很惊人啊 at September 26, 2013

    #140 楼 @astaxie go 确实简单不少,相比 c 歧义也少,不过灵活性也降低了。

  • GO 的性能真的是很惊人啊 at September 26, 2013

    #129 楼 @astaxie 减少了 28 台机器,go 作为静态语言在速度上有优势是一方面,用 ruby 写的原本的那堆东西没有优化或者架构好也是一方面。我对 web 不是特别懂,以我有限的知识的角度来说,制约 web 性能的多数在 IO 上而不是语言层面。 另外虽然理论上 ruby 会比 c 这类静态语言慢十几倍,但实际应用场景下并没有这么大的差距,多数执行时间还是耗费在本身就是用 c 写的一些库上。ruby 的优势是对程序员友好,弱点是慢。go 作为系统级别的语言,和 c 比较更好,能说说和 c 比的优劣势么?

  • GO 的性能真的是很惊人啊 at September 26, 2013

    昨天看了一点 go 的东西,感觉不应该拿来和 ruby 比较,完全不是一种类型的语言。 go 更像是简化了的,外加一些额外的语法糖的 c,做为系统级别的语言更合适。

  • GO 的性能真的是很惊人啊 at September 25, 2013

    #25 楼 @astaxie 我对 go 不是很了解,今晚回去研究一下。

  • GO 的性能真的是很惊人啊 at September 25, 2013

    #23 楼 @astaxie go version go1.1.2 linux/amd64

  • GO 的性能真的是很惊人啊 at September 25, 2013

    go 比 c 慢 10 倍的场景并不少见,比如二叉树测试:

  • eigenclass 和 Module 的问题 at September 18, 2013

    而 self 只是提供了个不同于 class 的访问层次结构而已,你可以看作是 class 内部的一个隔离区。

  • eigenclass 和 Module 的问题 at September 18, 2013

    没什么奇怪的,对于 module 来说,include 本身和继承没任何关系,所谓 include 一个 module,最相似的用法就是 c++ 里面的 inline,c 里面的#define。简单说,就是在现场展开,相当于把代码在 include 的地方又当作字符串拷贝了一遍。

  • 学好算法数据结构,离散数学,os,编译,网络,这些是基础。不要过多纠结各种语言,也不要纠结设计模式这种没门槛的东西。然后可以选个方向,比如图形图像,数据处理,高性能计算,分布式等等。

  • #21 楼 @goinaction Value 本身只不过是个 4byte 的值,所以可能会出现不适 4 的倍数的情况,这些情况只有这几种可能: 小整形,符号,true,false,nil,undef。

  • #14 楼 @goinaction 地址不会出现不是 4 的倍数,所以 Fixnum 才能与通常的 object 区分开来啊。

  • #8 楼 @yakczh 不是。 简单说,所有 ruby 程序里面的变量,常量,符号等,都会在虚拟机里面被一个叫做 VALUE 的类型所表示,大多数情况下,普通的对象所对应的 VALUE 就是简单的 Void*,但是并不是所有的 VALUE 都是 Void*,比如 Symbol,在 ruby 内部就是一个 unsigned long(ID)。 那么 Symbol 倒地是什么,其实就是一个唯一的不变的量,用在 ruby vm 内部,用 hash 存储,key 就是刚才说的 ID,在 vm 内部他们类型都是 VALUE。 另外 vm 怎么区别一个 VALUE 倒地是 symbol 还是其他常规 Object 呢?ruby 内部是这样做的: 先把一个 VALUE 的值左移 8 个 bit,然后在右端空出来的一个 byte 里面,填充 0x0e,然后这个新造出来的值,因为不能被 4 整除,所以 ruby 就知道它不是一个 void*类型的普通 VALUE 从而判断出它是个 symbol。(ruby 分配内存都是以 4 个 byte 为一个单位来分配)

  • #17 楼 @jan 听起来像 stl 的容器。

  • #2 楼 @michael_roshen 不用翻墙。

  • #4 楼 @iBachue 共勉!

  • 其实我一直想做一个 ruby 版的解析器生成器,这样以后用 ruby 做外部 dsl 就会很方便。不知道有没有现成的可以用? #2 楼 @luikore Thx! 刚粗略看了下,最像 lex/yacc 是 rex/racc. 另外这些 gems 有没有扫描时构建 AST 的功能?

  • 其实我一直想做一个 ruby 版的解析器生成器,这样以后用 ruby 做外部 dsl 就会很方便。不知道有没有现成的可以用?

  • #16 楼 @lewisgrady 小米不算山寨吧,不比 ip 差。

  • 其实我蛮搞不懂的,如果有人愿意用 nodejs 这种 bt 的语法去写 web 相关的东西,为什么不直接用 c?

  • 在上海就好了。。

  • #34 楼 @Rei 有些 gem 也有不能加载的现象比如 win32-process,大部分可以用。 这是我的结果: ➜ ~ gem list | grep alipay alipay (0.0.1) ➜ ~ irb 2.0.0p247 :001 > require 'nokogiri' => true 2.0.0p247 :002 > puts $LOAD_PATH /home/rasefon/.rvm/gems/ruby-2.0.0-p247@r2/gems/mini_portile-0.5.1/lib /home/rasefon/.rvm/gems/ruby-2.0.0-p247@r2/gems/nokogiri-1.6.0/lib /home/rasefon/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0 /home/rasefon/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/i686-linux /home/rasefon/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby /home/rasefon/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/vendor_ruby/2.0.0 /home/rasefon/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/vendor_ruby/2.0.0/i686-linux /home/rasefon/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/vendor_ruby /home/rasefon/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0 /home/rasefon/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/i686-linux => nil 2.0.0p247 :003 > ^C

  • #31 楼 @Rei

    ➜  ~  ruby -v
    ruby 2.0.0p247 (2013-06-27 revision 41674) [i686-linux]
    ➜  ~  rvm list   
    
    rvm rubies
    
       ruby-1.9.3-p448 [ i686 ]
    =* ruby-2.0.0-p247 [ i686 ]
    
    # => - current
    # =* - current && default
    #  * - default
    
    ➜  ~  rvm gemset list
    
    gemsets for ruby-2.0.0-p247 (found in /home/rasefon/.rvm/gems/ruby-2.0.0-p247)
       (default)
       global
    => r2
    
    ➜  ~  gem install alipay
    Successfully installed alipay-0.0.1
    1 gem installed
    ➜  ~  irb
    2.0.0p247 :001 > require 'alipay'
    LoadError: cannot load such file -- alipay
        from /home/rasefon/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:51:in `require'
        from /home/rasefon/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:51:in `require'
        from (irb):1
        from /home/rasefon/.rvm/rubies/ruby-2.0.0-p247/bin/irb:13:in `<main>'
    2.0.0p247 :002 > 
    
  • #31 楼 @Rei 好象是 require 的问题,我回去给你发错误信息。