Would you agree?
Would you agree?
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.
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.
Java specifies the semantics of Java and the JVM remarkably fully. Python, not so much.
A horrible Stdlib is imho a more important problem today.