Talk:Bityi/GSoC

From OLPC
< Talk:Bityi
Revision as of 12:51, 7 April 2008 by AlbertCahalan (talk | contribs) (better idea)
Jump to: navigation, search

Any comments here would be greatly appreciated. Here's one from the mailing list:

SJ: overambitious

"All students can ask for feedback on this list; otherwise you will get feedback by email / through the SoC interface.

Feedback on this list is good if one is amenable, since it lets everyone see the sorts of issues that make for a better application. In this case, your proposal is an interesting one; though as this has been tried unsuccessfully in the past, it seems quite ambitious. One typical path to an unsuccessful summer internship is planning a project that one intends to do alone that is quite ambitious, without an obvious subset that could be used as an interim milestone and shared early on for public adoption. What kind of collaboration would you expect / need with other projects? Are there other people interested in the project who have been working with you to date? Does this interface directly with Develop?"

I have attempted to respond to the feasibility aspect on the page, with a calendar and some discussion of my first-draft attempt to attack this same problem. Also, clarified that this is a part of Develop - the "bityi" name is not a thing in itself, just a made-up word for this functionality. As to collaboration, I would expect the code to do this in Pippy would be quite simple, a later step (not encompassed in this proposal) would be pootle integration, but I can complete this proposal without collaboration. Homunq 09:33, 27 March 2008 (EDT)

Bobbypowers: cool

This looks really cool! You mentioned a central server that users could upload dictionaries too, maybe administered in a wiki-like way? As an American with unfortunately poor spanish skills, I would really like to be able to translate local identifiers from Spanish/Mandarin/whatever back to english in a tooltip or something on mouseover. As you mention, understanding identifiers adds important context for understanding what the code is doing. I agree, this is pretty much what the OLPC is all about! Good luck!

Bobbypowers 13:41, 27 March 2008 (EDT)

Server: that is a planned feature but I'm not promising it in the GSoC timeframe. Back to English: I guess I need to clarify, your editor has a language setting (defaulting to your OS language) and you see everything in that language as long as it exists - so you would never see Spanish if an English translation exists. If it didn't, you could easily right-click to add a translation, and hopefully even get a suggestion from Google Language Tools or your local dictionary. (btw, I understand that on the screen it's just called "Chinese", not "Mandarin"). Homunq 15:13, 27 March 2008 (EDT)

Will the translation features you create for Bityi be available in a library form for use in other programs? I could see Turtle Art, Etoys and my OpenSim project benefiting a lot from something like this!

Bobbypowers 21:04, 28 March 2008 (EDT)

I am not sure if they will be in a library included in Sugar, though I would argue for that option. Also, note that Turtle Art and Etoys (and, as I understand it, OpenSim), as graphical environments where user-defined functions are of secondary importance, already benefit substantially from more traditional l10n practices. However, there is no question that I would design my code to be portable. It would be necessary in logviewer, in pippy, and I would hope that it would get use in IDEs outside of the XO. Homunq 22:33, 28 March 2008 (EDT)

PL/1 is more workable

Since PL/1 does not reserve keywords, there is no problem with a collision between a variable name and a translated keyword. According to wikipedia's PL/1 article:

PL/I compiler also accepts variable names like key words (like IF, ELSE and THEN) and it uses the same symbol ('=') for checking equality of variables and for assignment. Something like this is accepted:

IF IF = THEN THEN THEN = ELSE ELSE ELSE = IF

This code is interpreted as: If variable 'if' has the same value of variable 'then' then assign to variable 'then' the value of variable 'else', otherwise assign to variable 'else' the value of variable 'if'.

the ghetto, realness, and mystery problems

At a very fundamental level, this idea is isolating. It is beneficial to be part of a larger community. This applies for getting help, looking at examples on the web, chatting with other programmers, sharing one's work, etc.

This idea is also sort of demeaning, suggesting that the kids are incapable of handling "real" tools. Programming isn't like carpentry, where "real" tools (which kids crave) can remove a limb or worse. Here, "real" tools are safe for kids.

Translation adds an extra layer. The user gets stuck with hidden magic. What he sees is NOT reality. It is essential for a beginning programmer to learn that there is no magic; stuff works in a way that is dependable, reliable, and not insanely constructed. The computer does what it is told to do. There is no mystery or magic. There are no little critters (elves, leprechauns, gnomes, etc.) inside the computer making arbitrary decisions to confuse the programmer.

better idea

Use a status bar (like the bottom of a typical web browser) to provide info. Do this for English too.

If the curser is on a "for" keyword, then you explain how a "for" loop works. You don't give some lame one-word translation. You give a sentence or two at minimum, and a bit of formal syntax.

Don't worry about the formal syntax being unreadable to beginners. First of all it is a critical thing to learn about. Second of all it is easy to learn by example. Third of all, this will be the only thing useful when the less-formal explanation is not available in the required translation.