Hi, just wanted to get my opinion out there, and see what people have to say. One of my major requests for the Rebol engineers is for them to not be afraid to break existing code with new versions of Rebol. The language is so new that it'd be a shame to not change something that needs changing for the sake of not breaking existing code, when it might be a thorn in all of our sides later. It's a huge shame when a language becomes loaded down with baggage and inconsistencies so that old code will still run. I read an article a little while back which talked about how the developers of Perl can't go back on some design decisions now that were made before the last version. Something also about how one of the Perl developers exposed more of the internals of Perl to the programmer than should have been, which they can't hide again because people use it. Also, they're stuck trying to get rid of all these silly context changing variables which were put in in the early days of the language that can cause unexpected results. I'm not implying that Rebol has any baggage or inconsistencies at this point. I think the reason I'm writing is because there have been discussions about what to add to 'parse. Don't be afraid to break anything if you think it will make Rebol better, please! If you have to make 'parse not work for some of the existing code out there, in order to make 'parse act how you want it to, it's worth it. One reason Rebol can be different in this respect is because it has versioning built right in from the start. I'd like to propose making the "needs" refinement to the REBOL object be mandatory, or maybe issuing a warning that code may not run as expected in newer versions of Rebol if a program doesn't specify what version of Rebol it needs. This way, when something should be changed down the line, it will be possible without breaking existing code. Obviously making something backwards compatible like this requires that Rebol keeps older versions of code (for built-in functions) in with the newer versions, maybe calling a certain version of 'parse, for example, based on what version was specified in 'needs'. Obviously Rebol could get a little bloated this way, but I'd much rather have it this way as opposed to the Rebol engineers having to make concessions in their design of the language. Anyway, in conclusion :) I think Rebol is great, and I just want to see it prosper. I'm getting to see the growth of a language, in its technical development, its popularity, and its culture, from the very beginning. It's too late for languages like Perl (which has had to go through a bunch of rewrites. The last version had to be rewritten (not *quite* from scratch, according to Larry, since he says some of it was evolved from Perl 4), and the next major version is likely going to be a total rewrite also (Topaz)). My wish is to see the developers of Rebol not care so much about backwards compatibility for awhile, at such an early stage of the language, and for them to always keep in mind that a consistent language is a beautiful thing. If we start encouraging keeping track of versioning for Rebol now, in the beginning, it may save us many headaches in the future. Thanks for Rebol, and may it change the world. Keith
