[lively-kernel] Fwd: LK ready for prototyping?
Robert Krahn
robert.krahn at gmail.com
Wed Mar 6 09:08:31 CET 2013
What Amber and Lively have in common is that they provide a runtime and
tools to interactively develop client-focused web applications. Apart from
that both projects are quite different.
With Amber you will typically write Seaside-like Smalltalk-wrapped HTML
code. The way how you write that code is different to conventional web
programming, the result isn't. Amber comes with jQuery and of course you
can use whatever other third-party JS lib you like on top that. Depending
on your needs projects like angular.js or ember.js might be interesting.
On the contrary, Lively Kernel encourages you to use Morphic. You don't
have to as you can create any kind of browser supported output
(HTML/SVG/Canvas/WebGL...) and of course you can use other JS libs with
that approach as well. Integrating other JS libs with Morphic directly is
also possible but depending on the scope of the library that might create
conflicts. We successfully integrated things like d3, Markdown, MathJax,
and others but if you take a library like ember that brings its own
rendering approach than direct integration with Morphic will probably be
challenging. Coexistence is certainly possible, though.
Morphic really focuses on direct interaction. The typical first development
cycle for a app written in Lively is the following:
- Interactively add a Rectangle to the current world, change its size so
that it serves as a container
- Interactively add things like buttons, lists, texts to it. Interactively
rearrange.
- Start sketching out first pieces of logic: Let's say we have a button and
a list and want to display list items on button click:
- Interactively give the list a name ("exampleList")
- Open an ObjectEditor on the rectangle, add a method #populateList that
looks like:
this.addScript(function populateList() {
this.get('exampleList').setList(Array.range(1,10));
});
- try it out directly in the ObjectEditor by evaluating
"this.populateList()"
- Interactively connect the button's fire connection point with the
rectangles #populateList script
- Try things out, Save your world, refine
Later on you will probably do things like create a module to extract code,
move common code into classes, write tests.
Also consider:
- You will probably want to shrink interactivity of the elements of your
resulting application down. This is possible but we do not provide a
"let's-make-that-morph-stupid-solution" at this point.
- Even if you don't want to deal with a server you somehow need to deploy
your application
- A application written in Morphic that just does things you can typically
do with static HTML (present static document-like content) will carry a lot
of overhead compared to its usefulness.
- Lively encourages a "one-page-app" architecture vs. the typical
"one-page-per-process-step" of conventional apps. Since you want no server
logic this should suite your needs.
I hope that helps a bit. Other than that, I can just recommend to get
started with whatever system you feel most productive at this point.
Software development is mostly iterating technical solutions of your ideas
anyway. What's valuable are your ideas and how they are shaped by the
feedback of those steps.
On Tue, Mar 5, 2013 at 12:33 PM, Chip Nowacek <chip at twostewards.com> wrote:
> I've thought about your response while I have been looking at other
> platforms. My circumstances have changed and I need to build a prototype,
> yes, but one that can be then refined and deployed on a large scale (as)
> quickly (as possible).
>
> I am not a professional developer. Whatever system I use I will have to
> learn and likely figure out how to integrate with JS libraries. I wish I
> had your experience. LK seems like the most natural choice - but only if I
> can take what I build into production. The only other platform I am
> considering at the moment is Amber Smalltalk. I want everything going on in
> the browser and potentially use something like Firebase as a replicating
> direct-to-client key store. I really don't want any logic on the server.
> Oh, and I need some lightweight expert system on the client, too.
>
> If you were me, what would you do?
>
>
> On Mon, Sep 10, 2012 at 9:04 PM, Robert Krahn <robert.krahn at gmail.com>wrote:
>
>> Lively is a wonderful environment for experimenting. Of course this
>> depends on what you want to achieve but in my experience you are able to do
>> quite complex things pretty fast.
>>
>> Take this demo for example:
>> result: http://lively-kernel.org/other/fuelDemoVideo1.mov
>> building it with wiring parts together:
>> http://lively-kernel.org/other/fuelDemoVideo2.mov
>>
>> It is a rough visualization of a how a car driving along a given path
>> that highlights the fuel stations the car can reach with its fuel level
>> that changes as it drives along.
>>
>> (The purpose of the demo was mainly to show how such a visualization can
>> be created using a mix of graphical/textual programming and combining
>> existing components, not the actual application itself)
>>
>> Creating the initial sketch (that was really running of course) was
>> something that two people (that were very familiar with the system) did in
>> the course of three hours. Pretty fast I guess. Tweaking things to look
>> nicer and embedding ideas that came up in the process of building it took
>> 2-3 days more.
>>
>> For the purpose of creating this interactive demo, Lively worked very
>> well. However, important to mention is that this was *just a demo*. The
>> application that came out of it not usable in the sense of a software
>> product as you have to be careful of where to click etc. So a lot of issues
>> related to the usability of the interface from the standpoint of an
>> end-user were not addressed. Producing something like a "demo to be used by
>> others" will definitely require *much* more time.
>>
>> Also consider that Lively / Webwerkstatt is used as a research
>> environment as opposed to a stable development environment like Eclipse.
>> Things look rough. Interfaces change. Tools evolve. We are currently
>> working on a version of Lively that is more stable than what you find in
>> Webwerkstatt (see the other messages on this list), however, we are not
>> able to give any support guarantees.
>>
>> I agree with Jens, take a couple of hours time and try to dig in the
>> system and produce at least a tiny part of what you have in mind and see if
>> this feels right.
>>
>> I would love to see a new system build in/with Lively :)
>>
>> Robert
>>
>>
>> On Mon, Sep 10, 2012 at 8:12 AM, Jens Lincke <
>> jens.lincke at hpi.uni-potsdam.de> wrote:
>>
>>> Hi Chip,
>>>
>>> did you play with it for 2 hours you to try it out, or what are your
>>> experiences yet? It depends what kind of demo app is required... A mobile
>>> app?
>>>
>>> I think you could try, but be aware that it can be easy if you do
>>> similar things others have been done, but it can get messy when you want to
>>> go where no one has gone before you in lively ;-)
>>>
>>> Best,
>>> Jens
>>>
>>> Am 10.09.2012 um 15:59 schrieb Chip Nowacek <chip at twostewards.com>:
>>>
>>> Should I take the silence as: "Stay away from Lively" ?
>>>
>>> ---------- Forwarded message ----------
>>> From: Chip Nowacek <chip at twostewards.com>
>>> Date: Thu, Aug 30, 2012 at 6:11 PM
>>> Subject: LK ready for prototyping?
>>> To: The Lively Kernel Mailing List <lively-kernel at hpi.uni-potsdam.de>
>>>
>>>
>>> Hello,
>>>
>>> I'm sure I am less than 1/10th the programmer of the least on this list.
>>> I hope you'll forgive the my rather lowly skill set.
>>>
>>> That said, I have a desperate need to create a demo app for investors
>>> and production developers. In your estimation, is LK ready for that type of
>>> work? I will ask about production readiness later.
>>>
>>> While I'm asking, anyone interested in helping out with (what I think
>>> will be) an important application with long legs? The domain model, 4
>>> years in the works, is pretty stable. It needs a compelling,
>>> highly-interactive front end (thus the LK question). In broad terms, I am
>>> looking to build a cognitive tool that deals with human relationships.
>>> It'll also need a mobile app at some point.
>>>
>>> Thank you humbly,
>>>
>>> Chip
>>>
>>> _______________________________________________
>>> lively-kernel mailing list
>>> lively-kernel at hpi.uni-potsdam.de
>>> http://lists.hpi.uni-potsdam.de/listinfo/lively-kernel
>>>
>>>
>>> _______________________________________________
>>> lively-kernel mailing list
>>> lively-kernel at hpi.uni-potsdam.de
>>> http://lists.hpi.uni-potsdam.de/listinfo/lively-kernel
>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.hpi.uni-potsdam.de/archive/lively-kernel/attachments/20130306/5fdddcc1/attachment-0001.html>
More information about the lively-kernel
mailing list