[self-interest] Questions about Self
cramakrishnan at acm.org
Wed Jun 22 10:03:47 UTC 2016
2016-06-21 18:32 GMT+02:00 David Ungar ungar at mac.com [self-interest] <
self-interest at yahoogroups.com>:
> I am pleased and amazed at the attention you all lavish on Self. The
> recent activity has moved me to wonder:
> What is it about Self that appeals? What is it that you don’t like?
For me, the appeal of Self is that it presents a singular vision that is
well executed and throughly explored. The vision is that of programming
through direct manipulation, and it is supported by both the language
design and the environment. As a result, programming in Self is engaging,
fun, and playful.
The research that came out of Self has been adopted in terms of VM
implementation and language design, but the idea that drove that research
has, unfortunately, not been as influential. Self, and Smalltalk, remain
quite unique in this regard. Though there are many playful environments out
there for teaching children how to program, these are more games that are
played through programming and not conceived as tools for programmers to
actually work with. I can only think of a few other attempts to design a
programming language and environment with the goal of realizing an
alternate programming experience (e.g., data flow languages, or the work of
Jonathan Edwards / alarming development). This unique quality of Self keeps
me coming back to it and thinking about it.
What I don't like about Self is that I cannot use it for my job! :)
More specifically, what I do not like about Self is how difficult it is to
interact with the world outside of the image. I admit that this is a little
unfair as a criticism, since I think those choices were perfectly
reasonable at the time and context in which they were made. Still, from the
perspective of now, I think they were unfortunate and make Self unsuitable
for many projects today (at least for me).
Since you brought up Swift, I also wanted to add a few thoughts about
language design today. Today, I think the programming language itself has
diminished in importance and been eclipsed by the libraries and frameworks
available in the language. On recent projects where I had free choice of
programming language, I chose python and Scala, not because I'm
particularly enamored of those languages, but because I wanted to use
pandas/numpy and Spark, respectively. And not only can libraries compel
language choice, libraries can also save languages from their weaknesses,
You see this dynamic at work as an influence in the design of new
languages. Languages like Rust, Scala, and Swift all make it a priority to
interoperate with and leverage existing vibrant ecosystems. It is a
compromise (Faustian bargain?) that places some restrictions on design of
the language, but gives them a shot at widespread adoption in return.
Hope you are doing well!
C. Ramakrishnan cramakrishnan at acm.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Self-interest