.. title: Users Or Consumers
.. slug: users-or-consumers
.. date: 2018-11-19 17:40:07 UTC+01:00
.. tags: link, society, smalltalk, apple, squeak, pharo
.. category:
.. link:
.. description:
.. type: text

While at university in the previous millennium, I was very much in love
with the `Smalltalk <https://en.wikipedia.org/wiki/Smalltalk>`_
language and especially the `Smalltalk system
<https://en.wikipedia.org/wiki/Smalltalk#Image-based_persistence>`_.
Built on top of the core language, the latter includes the possibility
to study and modify every aspect of the whole system through the class
browser and image persistence.  Such a setup allowed a freedom of
creativity that I since miss in programming.  The mythical `Lisp
machine <https://en.wikipedia.org/wiki/Lisp_machine>`_ must have been
of a similar pedigree but having never used such a machine this is
only what I can guess by reading about it.

This nice `blog post by J.V. Toups
<http://dorophone.blogspot.com/2011/07/duckspeak-vs-smalltalk.html?view=classic&m=1>`_
reminded me of those days but also looks at this from a very
different, yet interesting, angle.  Just how much potential of our
digital computers do we lose every second by having divided the world
into a tiny class of "producers" and a gigantic class of "users" with
all the rest of the world in it.  Being patronized, members of the
last class unfortunately have no idea whatsoever about how empowering
computers really can be.  If the system is designed to include the
user, then it only takes a small amount of time to learn the basics of
how to "program" them.

.. image:: /images/800px-Xerox_Alto_mit_Rechner.JPG
   :width: 200
   :alt: Xerox Alto
   :align: center

.. TEASER_END

Current programming languages like C++, Java or even Python do not
easily allow to author and use programs written in them.  Of course
there are the IDEs helping with aspects of that task, but compared to
programming in Smalltalk, this is just cumbersome in comparison.

Candidates for the contemporary equivalent of the Alto machine in my
view are the modern Smalltalk systems `Squeak <https://squeak.org/>`_
and `Pharo <https://pharo.org/>`_.  In case you really have no idea
what I am talking about in this post, you should try watching this
short YouTube video showing off `TiledMaps in Squeak
<https://www.youtube.com/watch?v=T_TDhAAxuy0>`_.  From a pristine
Squeak image it takes only a few minutes to have a basic map viewer
that can access OpenStreetMap, Bing satellite imagery.  It can talk to
multiple geocoders to locate points of interest in the map.  This is
then turned into a primitive UI including buttons for zooming and
searching.

If the GUI part makes your head spin, then you need to read up on
`Morphs <https://wiki.squeak.org/squeak/1003>`_ and the power they
provide by assembling and connecting them directly in your running
image.

Note that I selected this demo totally randomly - there are lots of
amazing demos and tutorials out there.  Here's another one
demonstrating `Squeak on a BeagleBone
<https://www.youtube.com/watch?v=aqEfOLZiWjc>`_ reading measurements
from a light sensor.

Incidentally while editing this blog post, I ran across a different
`blog post
<https://blog.appacademy.io/pharo-future-software-development/>`_
with the same spirit.  It does argue for Pharo instead of Squeak but I
do not have enough experience with either to comment on this.
