Hello, and sorry for being late to the discussion:

Thanks Laura for bringing this up, and thanks everyone else for the
interest.

As I wasn't subscribed to this list early, I didn't get a copy of the
emails so I cannot answer each one in-line, but I'll do my best trying to
reconstruct the thread citing the original messages (and fixing the subject
line).

Sorry for the very long mail, but I wanted to address all the concerns and
topics.



On Mon May 4 05:27:44 CEST 2015,  Steven D'Aprano wrote:

I've just added this comment to the issue on the bug tracker:



http://bugs.python.org/issue16344



Thanks, I updated the issue pointing a new CPython clone in GitHub were
I'll try to work reorganizing and drafting the PEP

https://github.com/reingart/cpython

I'll try to clone PyPy too, I think it could be even easier to
internationalize, as it is pure python and no C API should be changed, but
please correct me if I'm wrong.

Anyone can write a PEP and have it sit on their computer's hard drive.
> Unless he follows the process for submitting it for discussion, it might
> as well not exist.


That's not exactly true, I'm working in the PEP publicly since 2010 (it was
first uploaded in the local users group):

http://python.org.ar/wiki/TracebackInternationalizationProposal

It not only was discussed in local and international mailing lists, it also
was sent to python-ideas as PEP 1 indicates:

https://mail.python.org/pipermail/python-ideas/2012-October/017493.html

(seems there aren't responses anyway)

Also, the draft PEP was attached to the issue (and was completely ignored
by the core dev that closed and rejected the proposal, not even answering
other core dev that pointed that the PEP was there)

What I didn't do is sending it to PEP editors, my fault (I confess I didn't
reached that part of PEP1 that time), as I thought it would be rejected
anyway: reception was mixed (I didn't find other core dev willing to strong
"champion" it -but re reading the PEP1 maybe I could champion it myself-)
 and why it would have a better luck, if the issue was rejected without any
further discussion?.

Looking at the volume of comments on the issue at the tracker link
> above, I don't think Mariano has been *ignored*. Possibly the
> conservativism of Python-Dev has struck again. There was a lot of
> resistance to the idea of allowing non-ASCII identifiers when that was
> first proposed too.


Well, it depends on the perspective (see above), and if you see at the
related blocking issue, it was really ignored (no new comments after my
patch trying to fix it):

http://bugs.python.org/issue9769

PEP 1 also states "wherever possible, long open-ended discussions on public
mailing lists should be avoided", so with the previous facts, I did back
off for a better opportunity.

The same year in November, I spoke with some core devs that came to PyCon
Argentina 2012 (that BTW I was the chair and tried to organize a CPython
core sprint to work on this topics), specifically Brett Cannon, but he
didn't have experience on internationalization.

This year I thought the GSoC was an alternative, but again, I was wrong (at
least I didn't received any feedback about why it was not accepted).

I could continue but I'll not bother you.

Note: I am not blaming anyone, just trying to give a summary of my
experience.

My own feeling is that CPython should not internationalise error
> messages *yet*. But I would like to see a third-party implementation,
> possibly something that can be switched on and off at the interactive
> interpreter, or in iPython, and see how useful it is. But that's
> something which can be discussed in the PEP.


Why not yet?

Anyway, as far as I remember, a 3rd party implementation is not viable:
messages are already formatted when they reach exception hook, and the hook
could not always be honored, beside that internal cpython message
formatting seems to lack any UTF-8 nor internationalization support
(positional parameters reorder, pluralization forms, etc.), just to mention
technical issues I remember.

And yes, the proposal contemplates turning translation on and off, even at
runtime.

How would the usefulness be evaluated?
(field research, surveys, how many, where, etc.)
How was it done in previous PEPs?
(for example, what was done for other peps, like pep-3131)

I really want to understand the process.

I think that if Mariano had a proof of concept, and evidence that it
> would be useful in practice as well as theory, then I think the PSF
> should be asked to consider funding this as a diversity measure.


The proof of concept was already there, you can see the original proposed
patch:

http://bugs.python.org/file27756/traceback_internationalization_proposal.patch

In fact it is a half-backed prototype (the C part was there, translation
was implicit, but the python part would need some more work, as translation
would have to be more explicit, and messages collection tools needs to be
developed).
It surely has some other aspect to polish.

The problem seems to be the evidence, that's why I proposed this as a GSoC
project: to be able to develop a pilot implementation and get more facts
after testing it and doing some research, as the effort is not trivial.



On Mon May 4 10:00:49 CEST 2015, Armin Rigo arigo at tunes.org wrote:

> I'm absolutely +1 on the idea.

[snip]


Thanks, and I agree with everything you said

Even "syntax error!" is fine if your programming language is BASIC

but the first difference with BASIC is that we can get commonly
> many more error messages.


Well, recently I did a little test with my 8 years old kid, starting with
the python turtle module.
He had difficulties even with the pronunciation of some error messages, and
he has always to ask for the translation & help (until he gave up).
I have observed the same behavior with even older students.
Translation is not the only culprit, but I think it is a start (there are
some educational theories that could be used to explain and overcome this,
but I don't want to make this any longer).


> I think that allowing them to be translated is a good first step.


Exactly, I like the PostgreSQL motto:

*PostgreSQL programs (server and client) can issue their messages in your
favorite language — if the messages have been translated. Creating and
maintaining translated message sets needs the help of people who speak
their own language well and want to contribute to the PostgreSQL effort.
You do not have to be a programmer at all to do this. *
*...*
*We won't judge your language skills — this section is about software
tools.*


http://www.postgresql.org/docs/9.4/static/nls-translator.html



On Mon May 4 22:21:45 CEST 2015, Yury V. Zaytsev yury at shurup.com  wrote:

> >
> > so I think that the days when all programmers must learn English are
> > slowly fading away, just like the days when all mathematicians had to
> > learn German.

I hope not; we can argue whether this language should be English or
> something else (e.g. Esperanto, or Latin, or ancient Greek for that
> matter), but IMO for *professional* programmers and mathematicians,
> there should be a common natural communication language.
>

Please define what a professional programmer is...
And please define what a "learn English" means...

For non native speakers, it would mean formally a "intermediate to
proficiency English level" (TOEFL, Cambridge First Certificate FCE, etc.),
and we have to take that tests periodically (once each couple of years to
not "lose" the skills), with a minimal preparation of around 8 weeks
(considering you have a good English background, something that usually
takes around 4-7 years of extracurricular courses & practice)

As far as I know, at least in Argentina, that "English proficiency" doesn't
seems to be a formal requisite to be a "professional" programmer (if that
equates to a major degree in computer sciences or similar, not to mention
younger students or non-technical users).
In fact, nor "English" (nor any other foreign language) is specified in the
ministerial resolution that regulates the careers in computer sciences,
informatics, system analysis and software engineering (according the core
basic curriculum recommendations):

http://www.cs.uns.edu.ar/downloads/acreditacion/res786.09.pdf

That is indirectly based on the Computing Curricula of ACM-IEEE, this seems
a updated version:

https://www.acm.org/education/CS2013-final-report.pdf

Again, note that English seems not to be a core competency/skill (at least
in a first sight).
In fact it is only mentioned as an example of a natural language, and it is
only required for some courses given in English.

Of course, that's doesn't mean that sooner or later students will be
exposed to some English courses and materials.
In fact, most undergraduate programs will include "starter" English level
courses in Argentina, but they could be suspended or taken in parallel to
Programming I, our equivalent to CS101 (and no, English is usually not
"correlative" to technical courses, just complementary).
For example, after a quick search, see this computer information systems
engineering degree (from one of the most renowned Universities in Latin
America), where English is optional, and you can even choose other foreign
languages (including German, French, Italian, Portuguese)

http://www.uba.ar/download/academicos/carreras/ingenieriainformatica.pdf

This is the updated plan that even states "only it will considered one
foreign language" (and BTW, just 4 credits = 4 hours per week per one
semester, if you can learn a foreign language in just 64 hours...):

http://www.fi.uba.ar/archivos/Actualizacion%202011%20Plan%20de%20Estudios%20Informatica.pdf

You can imagine that this only get worse in the elementary and secondary
schools (or even in other university degrees not related to IT), although
English courses are being included gradually in the last years in all the
educational levels.

As a personal comment, so far in my academic career, I only faced an
intermediate English knowledge (and certification) requirement for applying
to a Ph.D. to study in the EU or US.
I hold a Bachelor of Computer Analysis, and a Master in Free Software and
Open Source (online from Spain), and I'm finishing a Bachelors in
Education without any such certification nor requirement (the last ones
didn't even have English courses).
BTW, for example, if I study for a Computer Science Ph.D. in Argentina, the
thesis should be written in Spanish (only exceptionally it is allowed to be
written in English):

http://postgrado.info.unlp.edu.ar/La_Institucion/Reglamento.pdf

The funny thing if that for foreign students, Spanish language examination
could be also a requisite, as if I go to Brazil, I could be required to
learn Portuguese, etc.

As a side note, another point is that we, as teachers, cannot even teach
legally English courses if we're not specially certified for that (not only
passed a Proficiency/Translator exam, also there are special teacher
formation requirements)

In summary, assuming English is a requisite to be a *professional*
programmer is wrong and impractical IMHO (of course, YMMV).

Still, don't get me wrong, I'm +1 on localization. It's going to be
> quite some effort, but it's well worth it.


Great!
And please don't get me wrong too, I only want to Python be more diverse
and easy for non English speakers.

And yes, it will be a great effort ;-)

BTW, the effort is already happening in other areas/aspects, for example,
see the upcoming SciPy Latin America, that aims to mix English, Portuguese
and Spanish:

http://conf.scipyla.org/event/press

Other conferences offered live translation to Spanish, for keynote English
talks:

http://ar.pycon.org/pyconar2014/

I think that proves that knowledge can be communicated in several
languages, and I bet you'll have a bigger audience & more feedback if you
speak in Portuñol (Portuguese + Spanish), than in English, at least in the
Southern Cone.



On Mon, 2015-05-04 at 22:24 +0200, Carl Friedrich Bolz wrote:
>
> Yes, well. It's precisely *not* about professional programmers in this
> issue.

Sorry to insist, but please this are the exact phrases that are a bit
embarrassing to many of us.

Are those people (mentioned early) that gave Python talks in Spanish or
Portuguese not professional programmers?

I even already write programs with identifiers and exceptions in Spanish,
what's wrong with that?
BTW, we don't have even right English translations for some words in
Spanish (and this is just a project for electronic invoices)

https://github.com/reingart/pyafipws

Forcing to translate every term and write programs exclusively in English
not only is harder, many times brings just more confusion, even the
official government webservices' documentation (AFIP = Argentina's IRS)
uses just Get/Set and very general terms in English, maybe due a Java
getter/setter legacy, and almost all the complex data types, methods and
messages are Spanish (and no, this is for programmers, not for final users):

http://www.afip.gov.ar/fe/documentos/manua_desarrolladorCOMPGv25.pdf


And just to clarify, CPython could be still developed in English, no
translation will ever touch a source code file.



On Mon, May 4, 2015 at 8:55 PM, Leonardo Santagada <santag...@gmail.com>
wrote:

> As we are transitioning to internationalized messages should/could we also
> get more descritive error messages? It could always be just a phrase and a
> link, eg:
> instead of
> TypeError: x() takes no arguments (1 given)
> we output:
> TypeError: x() takes no arguments (1 given) (maybe you forgot the self
> attribute (https://docs.python.org/2/tutorial/classes.html#random-remarks
> ))
>

Yes, this was also discussed, but I think it is a second step, and
internationalization can be useful here too due diversity, to clear
ambiguities or fix to rewrite complex messages, as different languages has
different writing styles, rules, viewpoints, etc.



Best regards,


Mariano Reingart
http://www.sistemasagiles.com.ar
http://reingart.blogspot.com
_______________________________________________
pypy-dev mailing list
pypy-dev@python.org
https://mail.python.org/mailman/listinfo/pypy-dev

Reply via email to