Pharo by Visualization

In this blog post I will talk about my long path into Pharo/Smalltalk and inmersive programming and how after almost a decade of trying to find my way into it, it seems that finally is happening. That path is not the usual by learning how to program (I'm not a programmer myself), but by learning how to create data narratives using Moose's playgrounds, structuring them in tree/outliners and trying to communicate better with the external world. The tools are almost there, but still there is work to be done. Hopefully I could help with it. To talk about this I will tell a story of how things are falling into place and after that, which is the proper proposal.

Things slowly falling into place

I know Smalltalk from almost a decade. Is really appreciated by me, but, as a non programmer, I have never found, until last night, a proper place to use it and/or learn it beyond the basics tasted a decade ago and now almost forgotten, when I taught newbies and I found that Scratch / Etoys / Bots Inc, were a way better metaphor that the ones provided by Dr Scheme and Python and the flat file world at that time (when also the IPython notebook was only a dream).

That experience created a kind of "melancholy". The sensation of having found a place where some of my previous ideas about computation and interaction were embodied, but it was also an alien place, with new ideas, departed of most of the way in which computation is done today and the way I have experienced and thought about how it could be. The old previous idea of mine found already in Smalltalk was that of being able to modify a system inside the system. The new most interesting idea was the continuum between language, IDE, application and document, where you need no separation between them: writing is modeling/programming. Both of these ideas are provided by the "objects all the way down" philosophy and the live environment. The melancholy was the product of having to use another tools because Smalltalk was kind of enclosed in its world and the things that constitute my day to day computing experience: Gnu/Linux, zsh shell commands, mail and browser programs, python scripting and doc writing, mind mapping and graphics, needs to be done in another places where I feel the discontinuity and trying to change something is mostly a long, painful process. They were two worlds apart. Each one had its richness, but the Smalltalk was kind of isolated and the OS/file word is so diverse and is getting more rich and connected (specially, for me, with the increasing maturity of the IPython Notebook) that I could not find a place for Smalltalk in my day to day experience. I was just lurking at Moose, Pharo and Smalltalk Newbies mailing lists as my only connection and proposing projects which I have never the time to explore.

But recently the pieces start to fall in place:

  • In the books world: I was reading the Gabriella Coleman's "Code Freedom" and Jaron Lanier's "You are not a Gadget" for my PhD midterm exam. That reflections on digital technology, its users and makers started to talk in my head with Jhon Maxwell's "Tracyng the Dynabook". And as a consequence I keep browsing different pages of digital projects: Leo Editor, web2py and Pharo/Moose. I was also taking reading notes in docear.

  • In the Smalltalk world: I found the Kilion Alios' pharo introductory tutorials in screencast format and the Tudor Kirba's video "Pharo: Playing with Live objects" and his posts on the new playground for moose and finally the Alexandre Bergel's software as a graph video.

  • In the python world: At HackBo, our local hackerspace, I was teaching web2py + Nikola + IPython as a way to develop blog sites with data narratives, powered by these technologies and using Leo's data-tree/code-script continuity to write my PhD midterm exam, because, as I told, writing is not linear and have levels of deepness.

  • In the other places: I found xiki kickstarter campaign and the longer video on their site. There are a lot of interesting ideas on xiki ways to concibe the interaction with external systems (something were Smalltalk is not famous) with its programable extendable and user defined menus.

So the idea take form

Playgrounds are ways to have a better conversation with objects (as Tudor would say) and panels structure that conversation in time. Tree/Outliners of playgrounds, could structure another conversations with my own ideas and the ideas of others, beyond code

Tree/Outliners of textual data are a visualization of text, but if this text is executable and can have access to the whole tree they can have a visualization of almost anything, even more if this "executable text" is in the form of moose playgrounds. By structuring the tree the user is giving account of an emergent order in his/her head that gives account of the non-linearity and deepness of the writing/learning experience, already mentioned. That order is not the one of the classes, protocols and methods of the object oriented paradigm, but the one that you can find in your writing notes for a lesson or a workshop.

At this moment playgrounds texts are mostly Smalltalk code with comments that have "interactive consecuences" in the sucessive right panels, but if we want a better structure, we need empowered comments that support light markup languages and coloring their syntax beyond the gray we're used to for companion text in code (I would start with pandoc's markdown).

I can even imagine the real time collective writing of that trees of playgrounds (let's called live trees) in workshops and people creating hierachical emergent shared orders, publishing their scripts, buttons and CLI/GUI creations about what to do with that trees, from traverse them to create pdf (as I do with leo) to talking with the external programs (pandoc, python, web2py,bootstrap, IPython notebooks) in a similar way to what xiki is doing, but providing the cohesive, coherent, multiplataform, inmersive and easy to install experience that Pharo/Smalltalk gives, and others are still trying.

That would give a full spectrum of interactive data narratives and thats the path I want to explore, but it will have to wait for a month until I have presented my midterm PhD exam.

Comments

Comments powered by Disqus