Ruby, simple substitution is not letting the imagination run wild. It's the first and most obvious thing that most people try. Look at all the Voynich "solutions" that have been posted in the last few years.
- Almost every one of them is a substitution solution.
- Almost every one of them uses the vowel shapes loosely to stand for whichever vowel they need.
- Almost every one of them turns the "c" shape into a vowel (usually "e").
- Almost every one of them uses the same approach but says it's a different language (Latin, Greek, Indian, Spanish, Portuguese, "proto-Romance", Arabic, Czech, Turkish, Hebrew, Nahuatl, etc.).
- Most people are quite convinced that they chose the right method and the right language and yet they can't all be right because they contradict each other.
- Most people start fudging, either by anagramming or by proposing that the tokens are in different languages, but these are usually subjective adjustments and often lead to one-way ciphers.
- For the most part, the solvers cannot get their method to work on a full paragraph.
- The "solutions" almost universally contain no grammar or very questionable subjective attempts at injecting grammar.

