4 ms·
The Ruby language specification (http://www.rubyspec.org/ http://www.rubyspec.org/), to which all Ruby VMs are written, helps as far as the "number of Ruby inte
by mileszs 16y ago
The Ruby language specification (http://www.rubyspec.org/ http://www.rubyspec.org/), to which all Ruby VMs are written, helps as far as the "number of Ruby interpreters around and their impact" goes. (Assuming I understood your concern correctly.) A new Ruby VM is considered legit if it passes Ruby Spec. That should help in both transparency and compatibility across implementations.
Would you agree?
- rmoriz 16y agobut you still have to implement a "language change" into all different VMs. This does cost time and money but delivers redundancy that has to be maintained. Which is great, if you don't have more important problems. A horrible Stdlib is imho a more important problem today.
- joe_the_user 16y agoFollowing your link: "This website is presently being redesigned. We expect to be back soon." But I knew already that "rubyspec" wasn't a spec in the ordinary sense but a test-suit built with MSpec. The thing is that real spec actually fully specifies a language - at least up to syntax. There are real specs for Python and Java for instance. The only real spec for Ruby is still crufty Yacc code for MRI. A test suit doesn't do that and the whole Rubyspec thing is a testimony to people drinking too much of the Test Driven Development Cool Aid. TDD may be fine for some things but some formal design is needed for things like the creation of interpreters. Part of the challenge is that MRI has such a fluid syntax that specifying it conventionally would be quite hard. But I suspect that's what will have to happen if Ruby's going to go forward.
- devinj 16y agoJava has a real spec. Python has documentation, but it isn't really sufficient for a spec, and for the most part alternative implementations copy down to the last implementation detail (gc details notwithstanding). A test suite is probably better than what it has.
- joe_the_user 16y agoIt depends what you mean by "better". Maybe Python has lousy spec but as I recall, the documentation does include a BNF breakdown of what Python is. A test suite can be good for a lot of things BUT it cannot be a specification, it cannot be even sort-of a specification. Test suites only "prove a negative", only prove that an application won't do X. A specification is at least a rough assertion of a positive, that a language does follow this pattern.
- devinj 16y agoYeah, there's an EBNF syntax description. I must have missed the part where the GP thought that's all that was necessary for a "real spec". I guess I just disagree. Java specifies the semantics of Java and the JVM remarkably fully. Python, not so much.