Discussion List Archives

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [ddlm-group] Searching for a compromise on eliding. .


On Friday, February 25, 2011 10:39 AM, Herbert J. Bernstein wrote:

>I just checked the Uncode 5.2.0 names "database" that Python 2.7 uses.
>I has 21829 names.  There is a well-documented Python reference implementation of an API for translation at:
>
>http://docs.python.org/library/unicodedata.html
>
>If nobody has done it yet, at first glance it does not look too difficult to make matching LGPL'd C/C++/Java APIs.  I am not saying it is a trivial task, but is does look doable as part of making a full UTF8 support package for CIF2.
>
>Would having that make a Python 3 version of proposal P-prime acceptable?

No.

In no way do I object to having support libraries available for CIF2, but as far as support for \N{name} goes, providing and promoting such libraries would just be a mitigation strategy for a poor design decision.  Developers would then have the choice of being tied to specific third-party libraries (with their particular licenses, performance characteristics, and bugs), or facing all the implementation, testing, and compatibility problems that the libraries are intended to avoid.  It would be far better to omit complex, unneeded features in the first place.

As long as we're discussing the details of this Python feature, consider that the \N{name} elide is problematic not only from an implementation and runtime perspective, but also from a stability and compatibility perspective.  Python 2.6 relies on UCD 5.1.0, Python 2.7 relies on UCD 5.2.0, Python 3.2 relies on UCD 6.0.0, etc..  We can of course choose a Python version and along with it get a particular UCD version.  We would need to do so to make CIF well-defined.  However, that would then provide full compatibility only with a specific major.minor version of Python.

I also prefer leaving out the \u and \U elides if we must adhere precisely to Python behavior, for in those cases the Python implementation does not follow its laudible, documented practice of ignoring escape sequences that it doesn't recognize.  Or is that fixed in Python 3?  If so, then what a confusing difference that is!

Overall, I don't much care for P', but I prefer it as-is over both P and P'{Python3}.  I have elsewhere described other alternatives that I like better.


John

--
John C. Bollinger, Ph.D.
Department of Structural Biology
St. Jude Children's Research Hospital




Email Disclaimer:  www.stjude.org/emaildisclaimer
_______________________________________________
ddlm-group mailing list
ddlm-group@iucr.org
http://scripts.iucr.org/mailman/listinfo/ddlm-group

Reply to: [list | sender only]
International Union of Crystallography

Scientific Union Member of the International Council for Science (admitted 1947). Member of CODATA, the ICSU Committee on Data. Member of ICSTI, the International Council for Scientific and Technical Information. Partner with UNESCO, the United Nations Educational, Scientific and Cultural Organization in the International Year of Crystallography 2014.

ICSU Scientific Freedom Policy

The IUCr observes the basic policy of non-discrimination and affirms the right and freedom of scientists to associate in international scientific activity without regard to such factors as ethnic origin, religion, citizenship, language, political stance, gender, sex or age, in accordance with the Statutes of the International Council for Science.