Project

General

Profile

Actions

Feature #8539

closed

Unbundle ext/tk

Added by naruse (Yui NARUSE) almost 11 years ago. Updated over 7 years ago.

Status:
Closed
Assignee:
-
Target version:
-
[ruby-core:55530]

Description

How about unbundling ext/tk from Ruby repository?

ext/tk is a bundled extension library for GUI programming with tk.
It is introduced in 1999 and long maintained with CRuby itself.

But nowadays its maintenance is not so active.
Moreover ext/tk is not the de facto standard over Ruby GUI though it is bundled for 14 years.
(maybe because tk is not de facto of GUI toolkit)
GUI libraries for Ruby should compete in the wilds.

So I propose unbundling ext/tk.
It should be another repository for example on github and people should install it as gem.

How do you think?


Related issues 3 (0 open3 closed)

Related to Ruby master - Bug #12681: Gemfied tk issueClosednobu (Nobuyoshi Nakada)Actions
Related to Ruby master - Feature #5481: Gemifying Ruby standard libraryClosedhsbt (Hiroshi SHIBATA)Actions
Is duplicate of Ruby master - Feature #8526: gemify tkClosednaruse (Yui NARUSE)Actions

Updated by rosenfeld (Rodrigo Rosenfeld Rosas) almost 11 years ago

I believe it is interesting to have at least one lightweight GUI framework bundled with Ruby to allow simple scripting to happen without the need for end-users to have to perform additional steps besides installing Ruby, just like it happens with the JVM...

Having said that, I have really never used Tk before or done anything but experiments on GUI using Ruby, so I wouldn't be upset if it is removed from Ruby. It's just that I can understand that some people would appreciate some built-in GUI support bundled with Ruby itself...

Updated by Anonymous almost 11 years ago

+1

Updated by jonforums (Jon Forums) almost 11 years ago

A good idea if the new maintainer appreciates (and understands why great multi-platform support is strategic to Ruby the language) the fine cross-platform work Kou and the other Ruby-GNOME2 members do for the gtk2 gem by providing a self-contained mingw binary gem for MRI Windows users.

But, how embarrassing for MRI if it's Tk GUI toolkit gem was kinda-sorta-not-really-multi-platform and only supported, say, Linux and OS X.

Is the key issue bit rot (Tcl/Tk 8.6.0 released in 12/2012) in core, or something more strategic like continued interest in pushing as many extensions from core into gems?

Updated by naruse (Yui NARUSE) almost 11 years ago

jonforums (Jon Forums) wrote:

A good idea if the new maintainer appreciates (and understands why great multi-platform support is strategic to Ruby the language) the fine cross-platform work Kou and the other Ruby-GNOME2 members do for the gtk2 gem by providing a self-contained mingw binary gem for MRI Windows users.

But, how embarrassing for MRI if it's Tk GUI toolkit gem was kinda-sorta-not-really-multi-platform and only supported, say, Linux and OS X.

As far as I understand, people can also use Ruby/Tk on Windows if they install Tcl/Tk for Windows.
And on OS X (and Linux) people also need to install Tcl/Tk and X11.

Is the key issue bit rot (Tcl/Tk 8.6.0 released in 12/2012) in core, or something more strategic like continued interest in pushing as many extensions from core into gems?

Once we had an idea that Ruby distribution should be all-in-one package for every basic use caeses as rosenfeld says in [ruby-core:55533].
But now we have rubygems and it is good for libraries which is on different timeline.
Therefore we have such reactions.

Updated by jonforums (Jon Forums) almost 11 years ago

naruse (Yui NARUSE) wrote:

jonforums (Jon Forums) wrote:

A good idea if the new maintainer appreciates (and understands why great multi-platform support is strategic to Ruby the language) the fine cross-platform work Kou and the other Ruby-GNOME2 members do for the gtk2 gem by providing a self-contained mingw binary gem for MRI Windows users.

But, how embarrassing for MRI if it's Tk GUI toolkit gem was kinda-sorta-not-really-multi-platform and only supported, say, Linux and OS X.

As far as I understand, people can also use Ruby/Tk on Windows if they install Tcl/Tk for Windows.
And on OS X (and Linux) people also need to install Tcl/Tk and X11.

Yes, and the Tcl/Tk folks have made it easy to automate downloading and building the Tcl/Tk libraries on Windows (using MSYS/mingw environment)for use by ext/tk. For example:

https://github.com/jonforums/buildlets/blob/master/build_tcltk.ps1

The remaining issue on Windows is to ensure the built Tcl/Tk goodies are moved (install time) to correct filesystem locations and patch up for library dirs like we do with RubyInstaller:

https://github.com/oneclick/rubyinstaller/blob/master/resources/patches/tk/0002-Use-Tcl-Tk-from-different-directory.diff

As background, RubyInstaller users wanting Tk support select the feature during install time. I placed a checkbox in the installer GUI that controls whether pre-built Tcl/Tk artifacts (integrated in the installer) are installed into a lib/tcltk subdir of the user's Ruby install dir. None of this matters for Linux or OS X, but this ease-of-install capability is critical to ensure Windows users have a good experience with Ruby Tk, and we're not flooded with support/maintenance issues.

Is the key issue bit rot (Tcl/Tk 8.6.0 released in 12/2012) in core, or something more strategic like continued interest in pushing as many extensions from core into gems?

Once we had an idea that Ruby distribution should be all-in-one package for every basic use caeses as rosenfeld says in [ruby-core:55533].
But now we have rubygems and it is good for libraries which is on different timeline.
Therefore we have such reactions.

I very much support extracting ext/tk into a gem as long as (a) no user loses access to cross-platform Tk GUI functionality, and (b) the gem install for Windows users is as easy as it is with the gtk2 mingw binary gem.

Updated by naruse (Yui NARUSE) almost 11 years ago

jonforums (Jon Forums) wrote:

naruse (Yui NARUSE) wrote:

jonforums (Jon Forums) wrote:

Is the key issue bit rot (Tcl/Tk 8.6.0 released in 12/2012) in core, or something more strategic like continued interest in pushing as many extensions from core into gems?

Once we had an idea that Ruby distribution should be all-in-one package for every basic use caeses as rosenfeld says in [ruby-core:55533].
But now we have rubygems and it is good for libraries which is on different timeline.
Therefore we have such reactions.

I very much support extracting ext/tk into a gem as long as (a) no user loses access to cross-platform Tk GUI functionality, and (b) the gem install for Windows users is as easy as it is with the gtk2 mingw binary gem.

(a) normal gemify would do it
(b) if someone make binary gem, or add install-time downloading tk feature, or Rubyinstaller bundle tk binary gem

Updated by nagai (Hidetoshi Nagai) almost 11 years ago

From: "naruse (Yui NARUSE)"
Subject: [ruby-core:55537] [ruby-trunk - Feature #8539] Unbundle ext/tk
Date: Tue, 18 Jun 2013 10:20:30 +0900
Message-ID:

And on OS X (and Linux) people also need to install Tcl/Tk and X11.

Additional information.
Ruby/Tk supports Aqua version (without X11) of Tk on OS X.
At least a few years ago, it worked.
However, I don't know whether it works now, because I'm not a Mac user.
It is very hard that I know all troubles on each change of Ruby, Tcl/Tk,
operating system, and so on, without users' reports.

Hidetoshi NAGAI ()
Department of Artificial Intelligence, Kyushu Institute of Technology

Updated by hsbt (Hiroshi SHIBATA) about 10 years ago

  • Target version changed from 2.1.0 to 2.2.0
Actions #10

Updated by naruse (Yui NARUSE) over 7 years ago

  • Status changed from Open to Closed

Applied in changeset r55844.


Actions #11

Updated by vo.x (Vit Ondruch) over 7 years ago

Actions #12

Updated by hsbt (Hiroshi SHIBATA) about 7 years ago

  • Related to Feature #5481: Gemifying Ruby standard library added
Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0