From: Timothy D. <mol...@ma...> - 2006-05-05 18:52:48
|
On May 5, 2006, at 2:28 p, Bob Hanson wrote: > > Timothy Driscoll wrote: > >>> >>> 2) We reserve the right to name ANY NEW TOKEN ANYTHING, so whet >>> if in 10.4 we find use for "src". It breaks your page, that's what. >>> >> that would be *extremely* unfortunate, unless it happens in such >> distant future that Chime and Rasmol compatibility is no longer >> an issue. I would argue very strenuously against this >> position. reserving keywords is one thing; reserving the entire >> universe of strings is not necessary IMO. > > I think I probably said that wrong. > understood; I am under some significant stress here, so I probably interpreted it wrong as well. all caps is generally accepted convention for shouting. :-) > Tim, the issue is simply this: It's unlikely that the Jmol team > would know, for example, that a specific user had used "src" (just > as an example). Are we to then consider asking all users "Can we > use 'src' for a command, or are you already using it?" That's what > I mean by being careful with your definitions. Any user defining > terms risks future breaks. That's all I'm saying. I'm personally > recommending tilde (not underscore) because I know for a fact that > it is not used in any Jmol definition, and so that works. > I understand and can appreciate this. and I have little experience with software development. but from what I know, predefined terms often can be overridden by the user without breaking things (perl comes to mind especially, but this is also true in Rasmol and was in Chime). the term is simply redefined in local context. then it is the author's responsibility to make sure their application makes proper use of the term. hopefully this is what Jmol will do. > You could do anything you want. As your scripts are particularly > complex (and hard to debug, as you point out) it might be > especially prudent for you to consider something of this nature, > where it is 99.9% guaranteed that your definitions do not clash > with Jmol tokens -- current or future. > > Example: > > A user using Jmol 10.00 quite uses the word "connected" in a > definition: > > define connected (hydrogen and within(1.2,oxygen)) > > We added in 10.2 > > select connected(hydrogen) > > The user installs 10.2 and is surprised to find that her page > doesn't work. "Something is wrong with Jmol!" > > Is it? What is broken here? What is the preferred solution to this > problem? > > Maybe you thought I was saying you should "have" to use tilde. No, > I was saying it might be wise to do so. > undoubtedly it is my ignorance showing, but I would expect Jmol to know the difference between a keyword string and a token. for example, from context? for example, I would never use a defined set called 'connected' in the context 'select connected(x)'; likewise, I could never use the token 'connected' in 'select connected' (or could I?). > I'm not sure what this has to do with RasMol/Chime compatibility. > Does RasMol have a set of definitions that have not already been > added to Jmol as predefined terms? I thought that was a major > project completed long ago. > if my existing scripts all define 'src' to be a certain set of atoms, and then Jmol decides at some future point that 'src' is now a token, then all of my scripts now break. all I'm saying is that should be avoided, wherever possible. in future scripts, knowing this restriction, I could of course use something like a tilde in conjunction with define. I took your statements to mean that any string is up for tokenization now or in the future. this is the first that I've heard of it and needless to say, I am quite surprised. this reflects a fairly important change in use of the define command IMO. tim -- Timothy Driscoll em: mo...@vb... Virginia Bioinformatics Institute ph: 540-231-3007 Bioinformatics I im: molvisions Washington St., Blacksburg, VA 24061 "Anyone who considers arithmetical methods of producing random digits is, of course, in a state of sin." - J von Neumann |