|
From: Kouhei S. <ko...@co...> - 2011-11-06 03:24:46
|
須藤です。
In <CAM...@ma...>
"Re: [ruby-gnome2-devel-ja] 作業の経過報告" on Sun, 6 Nov 2011 07:53:27 +0900,
Masaaki Aoyagi <mas...@gm...> wrote:
>> GTK2はこれまで通りのやり方でいきますが、GTK3は、もし、
>> GObjectIntrospectionを使っていい感じにできるなら活用したいで
>> すねぇ。
>
> これは、どういう方向性を考えていますか?
まず、Ruby/GTK2とRuby/GTK3は互換性がなくなります。
これは、GTK+ 2とGTK+ 3で互換性がなくなっているためです。
ライブラリ名やgem名を変えて(*1)、requireする名前も変える(*2)
のがよいと思っています。
(*1) Ruby/GTK2 -> Ruby/GTK3、gtk2 -> gtk3
(*2) require 'gtk2' -> require 'gtk3'
なので、GObjectIntrospectionを使うなど新しい仕組みを入れるな
らRuby/GTK3のタイミングがよいと思っています。
なお、GObjectIntrospectionで何ができるかとかはYARD対応作業の
中で見えてくることを期待しています。
ただし、世間がGTK+ 2からGTK+ 3に移行するのはあと2-3年くらい
かかる気がするので、しばらくはRuby/GTK2の方がメインだと思い
ます。
> もし、GTK2の実装の延長線上でGTK3に対応するという事にならないのであれば
> 今GTK2系を頑張っても仕方がないなぁと。。。
Ruby/GTK2の実装の延長上でRuby/GTK3になるかどうかは
GObjectIntrospection次第(もし他の何かがあればそれも検討する
のかも)なのでまだわからないと思っています。ただし、Rubyレベ
ルに提供するAPIの方針である「GTK+そのままのCっぽいAPIではな
くよりRubyらしいAPIを提供する」というのはRuby/GTK2でも
Ruby/GTK3でも変わらないので、今Ruby/GTK2で使いやすいAPIを作っ
ておくとRuby/GTK3の時にも活かせるはずです。特に、GTK+ 2の後
半で追加されたAPIはGTK+ 3でも残っているので、Ruby/GTK2から
Ruby/GTK3になったときに捨てるものではないはずです。
もし、GObjectIntrospectionを使ってどうにかして自動的に生成す
るようにしたとしても、最初にその仕組みを作ったときに意図した
とおりに自動生成できているかを確認するフェーズがあるはずです。
そのとき、Ruby/GTK2ですでに実装があるとその確認がしやすくなっ
て役立つと思っています。
ということで、以下のような理由でRuby/GTK2を最新のGTK+ 2に対
応する作業は無駄にはならないと思っています。
1. あと数年はGTK+ 2の方がメインなので、Ruby/GTK3よりも
Ruby/GTK2の方が需要がある。
2. Ruby/GTK2で実装されたものがあると参照できるので
Ruby/GTK3を実装しやすい。
ただ、YARD対応など他の作業の方が↑よりも重要だなぁということ
であればそっちを優先するのもアリだと思います!
|