Hi Phil,
if there is something I would like to see our Pharo ecosystem and ST in general moving
towards is to such a "multilanguage"/"multisourcecode"/"flexible ressources" kind of
thing. Even when this could not be a short term goal I would like to see this
in the long term.
Regarding integration of different resources
============================================
�1. we need a better text editor and not only doing Smalltalk completion/styling
� � but have this pluggable as well
� � � � �=> if I'm not mistaken this is what TxText project partly is caring about
� � If I remember correctly in VW there were browser plugins to the browsers code
� � pane allowing you for instance to directly edit XML as a tree and styling
� � while the XML text it is stored in a method, etc.
� � Similar to Eclipse where depending on the content type one or more different
� � pluggable editors could be used.
�2. it should be possible to store and save different code/text formats as source for methods
� � � � �=> you can already do it similar to Seaside by just returning Strings
� � � � �=> maybe a pragma could be used
� � � � � � � � foo
� � � � � � � � � <language: #JavaScript>
� � � � � � � � � ^'alert("hi");'
� � � � �=> the selector could/should be decoupled from the method body to be more flexible,
� � � � � � not only in editing
� � � � � � (interesting idea and already in Moose, see Tudors talk from ESUG 2014
� � � � � � �https://www.youtube.com/watch?v=LKVPJU3W5Ys&list=PLJ5nSnWzQXi_6yyRLsMMBqG8YlwfhvB0X&index=94)
� � � � � � �especially at the beginning of video 3/3.
�3. we should think about where the source code (Smalltalk or not) is stored, it should be
� � more flexible as well
� � � � �=> there already was a discussion of integrating the source file into the image
� � � � � � Pharo4.0 but I would additionally also like to integrate the other way around (why not
� � � � � � edit an external file (CSS, JavaScript, XML, ...) linked as a method in the system
� � � � � � with the internal Smalltalk tools)
� � � � � � So one could imagine a method like this where the string is stored in an external file.
� � � � � � � � � zincMustacheTemplate
� � � � � � � � � � �<language: 'HTML' external: 'index.html'>
� � � � � � � � � � �^'<html><body><head><title>{{AppTitle}}</title></head></body>'
Many other ideas come to mind.
Regarding the integration of multiple languages:
================================================
As we all know we have our image and VM provides a dynamic object system and
Smalltalk is only a language that is built into it. So can be others and we would
open up more.
There are many examples of this already in the Smalltalk world:
�- VisualAge for Java was implemented and running inside of VisualAge for Smalltalk
� �using all the tools
�- running Java inside of Smalltalk/X
�- C Source code of the VM can edited and changed in Smalltalk/X tools
�- JavaScript on top of VW as seen on ESUG 2014, https://www.youtube.com/watch?v=ZGAMCz62OM0
�- Helvetia (http://scg.unibe.ch/research/helvetia)
Helvetia could be a starting point for Pharo here, also parser frameworks like PetitParser, ...
Many things are already possible from the meta side.
Maybe one could port the MIT licensed JavaScript implementation from VW to Pharo
and try out if our infrastructure (Compiler, Parser, source code editing) could
really be made pluggable. Would open up Pharo also to JavaScript developers and
maybe realign better with Amber.
So many things we could do to reduce the friction between Smalltalk and the outside world
... but lots of work if done right.
Bye
T.