Good People -
Adoption of a language, like any other adoption, is generally a
function of the needs and wants of the audience, and the strengths and
weaknesses of the substance being promoted. For better or worse,
this function can be significantly biased at the outset by marketing.
As technologists, we repeatedly underestimate the importance of
marketing and, even when we know we need to promote our systems, we
fail because the skills of marketing are not simply technical
skills.
Who are our users?
We all have our own answer for this. I'll answer for myself
so that I can be articulate -- these are the users I would like to
attract, or who I feel would find our system valuable if they used
it...
Kids at play - ie people 8-16 who are doing fun things
Kids at work - ie students 8-20 who are doing more serious things
like math (including computer science), physics, graphics, music,
etc
Computer professionals at play - most of us
Computer professionals at work - most of us
About the computing context
The computing context has changed a lot over the years. It
used to be personal computers running Mac, Windows or Unix, and it
used to be simple functions like text editing and experiments with
media. Now it is mostly running in "the" browser, and
communicating over the web. A couple of things have remained key
values, though: The ability to create new content simply and
directly, and the ability to pull together existing content flexibly.
By "content" I mean both media and functions (services).
The ability to assemble existing content has been the greatest
strength and weakness of Smalltalk over the years. For internal
content, Smalltalk is unmatched in its ability to make every
extension, whether music, graphics, or a financial model, as natural
as a built-in language feature. For external content, however,
Smalltalk has historically faltered at the edges of its monolithic
system.
What do the users need and want?
The ability to create new content simply and directly,
the ability to assemble existing content flexibly, and
the ability to share any results easily.
What is important for marketing
An old quote of Alan's is still relevant here: "Simple
things should be simple, and complex things should be possible."
Smalltalk has always suffered from two main barriers:
installation and integration. Once you have it installed, and if
you don't need to access anything outside, it is unmatched in its
ability to make simple things simply, and to achieve complex goals as
well. Within its self-contained context, its image model is
perfect for saving, restoring, and sharing work between sessions,
between machines, and between users.
In the world of today, people expect any new thing of interest to
spring to life in their browser.
They expect it to look attractive, cool, powerful; anything
but geeky...
You want this, too, right? So we can use "we" in
place of "they".
We expect it to be immediately useful. For a computer
language, this means you can immediately try out some expressions and
make something happen. We want this. We are busy, and we
don't have time to download a new environment, figure out a new
browser, learn a new graphics system, right?
We expect it to be incremental - do some work, save it, pick it
up later - we expect the comforts of Smalltalk-style
development.
We expect it to be sharable - do something and send it to
someone. It's what we do with email, photos and videos. We
probably want it to be self-sharing, how about your workspace in your
facebook page, and tweets about each cool new thing.
These are the things that Gilad and I are grappling with, and I
think everyone on this list probably thinks the same way from time to
time. Gilad is trying to fix some of the modularity problems in
Smalltalk and exploit some of its greatest strengths, while figuring
out how to host it in today's (or tomorrow's) browsers. And I've
been playing around with what's possible using JavaScript directly,
but with some Smalltalk comforts like a nice browser, work in a
live editable environment, and save your project state as a web
page.
To return to Gilad's post,
[my interpretation: We don't take the time and effort to
explore new systems, and we don't take the time and effort to make our
own systems easy for others to explore]
I am well aware that this is not a
terribly actionable observation. It's just the way it is. What
one can do is identify weaknesses and work hard at fixing them, and
hope that some people will find it worthwhile to become truly
involved.
I feel the same way. But if you feel the same way from time
to time, perhaps you should start a movement to do something similar,
or see how you could contribute to NewSpeak or the Lively Kernel;
not to abandon Smalltalk but to experiment with how to carry *its
goals* and *your desires* forward.
Nothing is holding us back
-
D