From: Kouhei S. <ko...@co...> - 2011-11-06 03:24:46
|
須藤です。 In <CAMyNdeX5c-Qu7yy079d=DCj...@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対応など他の作業の方が↑よりも重要だなぁということ であればそっちを優先するのもアリだと思います! |