On Mon, February 4, 2013 19:01, Les Mikesell wrote:
On Mon, Feb 4, 2013 at 5:36 PM, Craig White craig.white@ttiltd.com wrote:
And lastly, Ruby is an ecosystem far beyond the base language. It has a 'gem' package management system which again is cross platform and even when you try to package ruby in rpm's, there's no way an RH or EPEL will keep up with updates.
I guess I still don't understand why you think that is a good thing. If the developers didn't get it right the first dozen times, why do you think the next update will be better? That is, if EPEL can't keep up, why would anyone want to? If you don't have the QA that a packager does it means you have to do it yourself.
It is a good thing in the sense that the cost of entry for developers who provide Ruby extensions is very, very, low as all platforms Ruby runs on are essentially supported out of the box by RubyGems. If one becomes expert at RPM package building on RHEL/CentOS then how exactly does that expertise translate from RHEL into say Debian; or BSD; or OSX; or MS-Windows? It does not. On the other hand, any non-native language extension released as a RubyGem and pushed to rubygems.org is instantly available on every platform running a comparable version of Ruby.
Further, with rubygems one has version control at the extension level with support for concurrent versions built in. Compare that with rpm where one has exactly one choice of a given package for the entire host.
The problem with system packagers like rpm from a Ruby developers standpoint is that frequently developers are packaging language components that are extracted from a larger application and not the application itself. This is essentially how Ruby on Rails came to be released. In such cases a system level application package management system is simultaneously too large and too small for Ruby gems. It is too big in that it requires too much overhead to get it to work at all. It is too small because it only handles one Linus distribution and does nothing at all for any non-linux OS.
One must think in terms of plugins when considering RubyGems. Firefox 10 ESR is packaged for CentOS as an rpm but most of the addons that make FF valuable to me are plugins obtained directly by FF from the Mozilla repository or from trusted third parties. These addons are not provided as rpms from RH and never will be. RubyGems serve much the same purpose as FF addons and they are implemented in a similar fashion; an extension belongs to the application and not to the system.
As for not getting 'it' right, whatever 'it' is, Ruby is not a single implementation. The baseline is the MRI but there exists several alternative implementations including one written in Java. Each of these serves a different user audience while providing a common syntax.