Notes: 1. I understand that Kivy is an _external_ DSL (i.e. it is not Python code), or is it Python code?
2. p 12 to 21 is about "2.1 Internal Languages" 3. The wikipedia example https://en.wikipedia.org/wiki/Kivy is too simple. But the idea of a 'hello world type program' should be maintained and include showing the 'containment hierarchy', 'geometry' and 'event handling' aspect of the GUI description. 4. I think for Smalltalk an internal DSL for this makes a lot of sense, see Table 2.1 on page 13. On 7/6/15, H. Hirzel <hannes.hir...@gmail.com> wrote: > On 7/5/15, Alain Plantec via Pharo-users <pharo-users@lists.pharo.org> > wrote: >> {no text body} > > In his thesis > > Dynamic Language Embedding > With Homogeneous Tool Support > > http://scg.unibe.ch/archive/phd/renggli-phd.pdf > > Lukas Renggli p 2 mentions internal DSLs. > > <citation> > Internal languages make a creative use of the host lan- > guage. They integrate seamlessly into the host lan- > guage and tools, but their syntax and semantics is > strictly constrained. > </citation> > > Speaking of GUI construction in Smalltalk for the Widget part you > might consider that to be a library or API. For making use of the > widgets you may think of an internal DSL. > > In addition the widgets as such might be rendered differently for > different platforms (in Smalltalk in one of the GUI frameworks, an > example was Squeak Morphic and MVC ) or outside (e.g. Kivy). > > @Hilaire, what do you think is outstanding of special about Kivy? > > I think to illustrate this it might be a nice experiment to develop a > 'hello world' equivalent for GUI construction and have it rendered in > as many user interface languages as possible (Kivy, various types of > Morphic, Bloc etc., but as PPTX and ODP) > > The domain to be covered should be simple as to avoid making the > exercise complex. > > Coming from a hello world type program means that at least a > picture and some > interaction (mouse click and keyboard) has to be added. > > > A model which fulfills this and at the same time is useful as is for > certain contexts: > > a sequence of slides (think 'simple Powerpoint slide show') > with the follwoing slide types > - one image and one caption > - on text field only > reaction to click event to advance to the next slide > reaction to cursor left and cursor right to navigate through the slides > > and then rendering of the "GUI hello world program" in various languages > > > https://en.wikipedia.org/wiki/User_interface_markup_language > > Another application domain for this is a picture book. > > > --Hannes >