Gentoo Archives: gentoo-user

From: "Marvin Gülker" <m-guelker@×××××××××××.de>
To: gentoo-user@l.g.o
Subject: Re: [gentoo-user] Ruby - 3 versions - seriously????
Date: Mon, 04 Sep 2017 06:49:34
Message-Id: 20170904064923.GB4985@hades.fritz.box
In Reply to: Re: [gentoo-user] Ruby - 3 versions - seriously???? by R0b0t1
1 Am 03. September 2017 um 15:35 Uhr -0500 schrieb R0b0t1 <r030t1@×××××.com>:
2 > I think the takeaway from Alan's comment is that Python is unnaturally
3 > stable compared to other interpreted languages. One might be inclined
4 > to think Python developers consider their work to be a widely used
5 > tool as opposed to a toy to play with.
6
7 If you regard Ruby as a toy language, I'm inclined to say that quite a
8 number of (most often Rails) applications use it in for serious
9 projects.
10
11 > Then why does he have all three installed?
12
13 I cannot answer that. I lack the insight into the Gentoo Ruby deployment
14 process.
15
16 > These are all fairly major changes for a minor release. I'm not really
17 > sure any of this evidence supports the opinion that Ruby doesn't
18 > experience breaking changes more regularly than other languages.
19
20 I have not made the claim that Ruby is more stable than other languages,
21 especially did I never say that Ruby is as stable as Python. My
22 intention was the counter the statement that every Ruby minor release is
23 a "complete new language". The changes I listed are breaking, but not to
24 a degree that justifies the "complete new language" statement.
25
26 > Leading into my next point, I remember some conversations about people
27 > discussing the Ruby parser and how there was no BNF description of the
28 > language. Consequently (from memory) there was at least one
29 > implementation of Ruby were encountering regressions in the parser
30 > between versions that were undocumented and not detected until the
31 > releases had already been made. The result was that code was
32 > semantically different between some versions. Regrettably I'm having
33 > trouble citing this one.
34
35 It was JRuby as far as I know, but don't nail me on that. I don't have
36 it ready either, nor do I have the exact circumstances in memory.
37
38 > Situations like the above, and reliance on private C interfaces, are
39 > what makes it seem plausible to me that there are packages that
40 > require a version that has no listed breaking changes.
41
42 Using unsupported private C interfaces is going to make any package
43 break in any language over time. This is not Ruby's fault.
44
45 > This statement makes me think you haven't tried to understand the
46 > issue, as that ISO document - to the best of my knowledge, I can't
47 > actually view it without paying money - implements Ruby 1.8.1 and
48 > potentially some features from 1.9. Hearsay indicates it was started
49 > at the behest of the Japanese government so that they could use Ruby
50 > for internal projects as their rules seem to require standards
51 > documents for software. This is important, because it shows that there
52 > is no real effort by Ruby's lead developer or the Ruby community to
53 > produce a legitimate standards document.
54
55 I've not worked with the ISO document. You requested a formal standard,
56 and I replied that there's an ISO document, which I regard as a
57 standard. I didn't know that it describes such an ages old version of
58 Ruby (though I should have known better given the date). Since the 2.4.0
59 release post on ruby-lang.org justifies removal of Fixnum/Bignum with
60 the interpreter not being compliant with the ISO standard, I was under
61 the impression that it was still usable. If it isn't, I apologise.
62
63 > In practice one finds more references to something called RubySpec
64 > which is an executable implementation of what people like to call a
65 > specification. RubySpec appears to be discontinued[1], but even when
66 > it was in use there are three things that should be pointed out:
67
68 The RubySpec was started as a community effort indeed, but if you only
69 read the Rubinius view of it, you're going to see a lot of bias. The
70 Rubinius main maintainer retracted from the effort by his own
71 decision. Consequently, the RubySpec is now maintained by the core team
72 of the canonical Ruby implementation[1]. Thus, it is not true that the
73 core developers do not make use of RubySpec.
74
75 > If you look at the RubySpec code you will see that the "specification"
76 > consists of testcases that attempt to define the behavior of Ruby. As
77 > mentioned, these tests are written in Ruby, and are subject to bugs in
78 > Ruby that are made undetectable, or very hard to detect, by the
79 > self-referential relationship of the behavioral specification and the
80 > language.
81
82 This sounds logical to me, and I agree. I'm not the correct person to
83 address this to, though. From the formal point of view, I surely cannot
84 compete with you. The spirit in the Ruby development appears to follow
85 not a formal, but a practical approach, which is always going to be
86 inferior.
87
88 > What I have read in this regard leads me to conclude that Ruby is not
89 > a language that I should use for my development, and it pains me to
90 > say this.
91
92 Use the tool that fits the job for you. I wonder if I was perceived as
93 using Ruby everythere; this isn't the case. Actually, I don't write much
94 Ruby code currently, but much more C/C++.
95
96 Marvin
97
98 [1]: https://github.com/ruby/spec

Replies

Subject Author
Re: [gentoo-user] Ruby - 3 versions - seriously???? R0b0t1 <r030t1@×××××.com>