Awesome vision Seba!

It leaves me with the kind of unrealistic feeling that great ideas provoke :D

3 thoughts:

1. homogeneity sounds great but the tech future is heterogeneous (and not a little but in a Long Tail fashion!)
2. dynamic technologies already won. So we might try to take more advantage of this fact. You'll have VM's for every device available (V8, Dart and friends)
3. if doesn't have an impact on the experience, people are not even close to care about what tech are we using to provide it*

How us nerds of all kinds are going to deal with this is not clear, but for anthropological and cognitive and economic reasons, this we do know: clients and consumers are not going to ask and pay for...

1. less collaboration
2. less connection (among people in their tribes and other audiences)
3. less device-diversity (for same experience)
4. less availability (of the software that gives them the experience)
 
but quite the opposite.

In case of doubt: observe how you, family and colleagues (and their teen children) consume

the opportunity is right there for those who can deliver

*actually some of them will (innovators and some early adaptors), but only after they got really excited about the product or service done with it


On Oct 28, 2012, at 10:02 AM, Sebastian Nozzi wrote:

Hello Sebastian,

[for the interesint part skip to *here*]

I also think that the collaboration platforms that offer more
"real-time" features will win. Even more if they can solve the problem
of not always being connected (on the other hand, this is happening
less and less). Although I think that there is still time, it is not
by much (Google Docs does not currently support offline-mode, though
they had that in the past. For some reason they cancelled the feature;
they also cancelled Wave - maybe it's too complex even for them!??!).

A good approach to making it work with and without connection would
seem to be to assume the worst: assume there is no connection. Model
all updates and sync as delayed and a-sync. And if you DO have
connection, the better :-)

I would go so far as to say that this is how Apple solves the problem
with iCloud and Core-Data. If you are interested in this subject, I
would recommend reading their documentation even if you don't code for
Apple platforms (I don't either, although I planned to). They are not
at the real-time modifications yet, although very close. For me it
WILL be one of their next moves against Google and the Web.

*here*

As for a "Smalltalk" way to solve this, one thing I would love to have
at some point is a framework for automatic (seamless)
data-synchronization. Only that it would not be "data" but "objects"
;-)

Something like that /could/ then be a core Pharo feature, if not a
KILLER feature.

Imagine having 2 related VMs (or unrelated, but with some related
object graph) in two parts of the world. One user changes one object
in the fist one, another changes another (or the same) object in the
second one. When they contact the cloud they synchronize automatically
(either peer-to-peer or to/from a trusted server). And I see the
changes happening automatically, without having to do a thing. Awesome
right? Now that "VM" (or object graph) could be Pharo, or a web-app in
Amber, why not...

If both are connected, then the changes occur immediately, and we
experience it in "real-time". If the connect at different points in
time, then the changes are delayed (delayed collaboration, or
synchronization).

I think the problem is rather complex and I am afraid that it's not
that easy to come up with a solution that is, on the one hand, easy
enough, and on the other hand flexible enough to accommodate for all
cases. Google Docs, or Apple iCloud, are "document-centric". Much
different is to deal with an object graph of any possible shape, I
think.

But there are much brighter minds in this list than mine, and I am
sure that some day one will come with this killer-framework and
Smalltalk will be, once again, at the forefront of innovation :-)

Best regards,

(also) Sebastian