Mcfletch, I love how you&#39;ve stated the ideal steps for handling native languages. The visual stuff has me more skeptical, though:<br><br><div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>My idea for internationalization is as follows:<br><br>&nbsp;&nbsp;&nbsp;&nbsp;* assume a progression from graphical, to local language, to<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;subset-of-English for those who want to become proficient programmers<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o provide tools that let the children put blocks together in a
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;reasonably constrained environment</blockquote><div><br>I think a good visual programming language should be designed from the ground up as such. I support giving some drag-and-drop support and visual cues to programmers, but I doubt it will ever be beneficial to actually hide the textual python code, as opposed to overlaying/supplementing it. (Indents are already a powerful visual feature, anyway) For real visual programming, we should focus on squeak and/or logo.
<br>Visual elements that could add to python:<br>-Branching/looping control flow arrows in the left margin<br>-a menu of functions, objects, variables, and control flow objects, with generic icons, for dragging into the program
<br>-the ability to see where a variable was last set (all possibilities given control flow)<br>I remain unsure whether any of these are worth the effort.<br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;o show the children what putting the blocks together does in<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;their native language</blockquote><div><br>Are you implying that the visual metaphors only encompass a subset of the Python language? This is an interesting way of simplifying our task, but it makes the leap from visual to textual editing an irreversible one - not good for user-friendliness.
<br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>&nbsp;&nbsp;&nbsp;&nbsp;* have a tool that allows for querying e.g. BabelFish to get<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;translations from/to a given language for given identifiers
</blockquote><div><br>Note that this tool would not need sophisticated syntactic logic, just some basic dictionary. It could thus rely on dictionaries in the flash, which will be present anyway.<br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<br>My preference would be that we get a few spike tests under way that show<br>that a given internationalization approach will work *with the current<br>Python*, also to test out AbiCollab as an editor, integration of an SCC
<br>system into an editor in an intuitive manner, parsing and presentation<br>of Python code as visual programming operations (and visual editing to<br>produce new Python code), and generally any parts of the project that
<br>are &quot;research&quot;.&nbsp;&nbsp;We can assume that this code will be thrown away and<br>that we&#39;ll just use the ideas and results to write the actual IDE.</blockquote><div><br>I&#39;m starting work on a fork of IDLE which should demonstrate the translation logic, pretty much along the lines that have already been discussed - I&#39;ll send a message to this group when I have something workable. Most of the guts of it should be agnostic about the underlying data, so it should be applicable to an AbiWord-based system. One thing I worry about, though, is undo - as multiple people are working on the same code on multiple levels of abstraction (languages and language mappings, for instance), the simple undo-stack metaphor starts to break down and you need something more like version control and merges.... I wonder if anyone else has good ideas on that score.
<br></div><br></div><br>