[Laszlo-dev] Dynamic libraries implications

John Sundman jsundman at laszlosystems.com
Fri Jan 7 09:35:10 PST 2005


Oliver,

This is very helpful.

I'm wondering about documentation impact.

I expect that the syntax part of snippets will be relatively 
stratightforward (I hope?).  The trickier part will be explaining how 
to structure programs.

Will this be a paragraph's worth of documentation? A Dguide chapter?  A 
separate mini-manual?

Where does kranking fit into this new mix?

Any comments welcome.

jrs

On Jan 7, 2005, at 11:03 AM, Oliver Steele wrote:

> One of the new features for LPS 3.0 is the dynamically loaded library, 
> or dynamic library.  A dynamic library is a library that can be loaded 
> after the main application execution file has loaded.  The initial 
> goal for dynamic libraries is to reduce the initial download size of a 
> Laszlo application, by deferring bandwidth costs until an optional 
> feature of the application is actually used, or at least until the 
> user has had time to interact with the initial screen.  Some non-goals 
> for the initial implementation are shared libraries (where the same 
> dynamically loaded library execution file can be be shared among 
> multiple applications), binary distribution (where a library author 
> can distribute a Laszlo library without distributing source code), and 
> namespaces (where two libraries can define entities with the same 
> name, without collision).  It is intended that the initial version of 
> dynamic libraries be forwards compatible with these features, but, in 
> the interests of implementation time, the initial version will not 
> implement them.
>
> LPS 2.x, for comparison, has static libraries, which use the <library> 
> element to define the library, and the <include> element to include it 
> in an application (or another library).  Static libraries support 
> source code organization, team workflow, and source re-use, but they 
> don't have any effect, versus the alternate strategy of putting 
> everything in one big source file, on the executable file: a program 
> that includes a static library is equivalent, to the compiler, to a 
> program that has had the library source code textually inserted at the 
> point of the <include> element.
>
> Ideally, a dynamic library can contain anything that today's static 
> library contains: class, instance, dataset, resource, and font 
> definitions, as well as <script> blocks.  In practice, the Flash 
> implementation of Laszlo may have some limits which Laszlo inherits 
> from the limits of the Flash file format and execution engine.  We'll 
> be exploring this over the next week; this message is intended partly 
> to set the context for some of the discussions exploring those limits.
>
> I'll send out a concrete proposal for the dynamic library syntax in 
> the coming week.  Henry Minsky is implementing a draft of the syntax, 
> and a limited provisional implementation is available in the 3.0b1 
> release (so you'll be able to try it out as soon as I tell you what it 
> is :-).
>
> Something we haven't decided yet is the name for dynamic libraries.  
> I've been calling them dynamic libraries, short for dynamically loaded 
> libraries, in this message, but that's a provisional name as well.  
> It's unlikely that we'll call them "dynamically loaded libraries 
> (DLL)" because that name has picked up some negative connotations over 
> the past decade.  (These are connotations that I'm now learning to 
> associate with the term "jar file", by the way, but we can get into 
> that separately...)  "Dynamic library" is perhaps more accurate 
> anyway, since it is likely that the location of the library can be 
> determined at runtime, as well as just its bits.  Other names that 
> have been bandied about are "snippets", "runtime libraries", and 
> "runtime loaded libraries".
>
> I suppose one could throw "execution", "late", "lazy", and "deferred" 
> into the mix.  "Deferred" would be consistent with the 
> initstage="deferred" attribute of views and other LZX nodes, which has 
> an analogous function at the instance (as opposed to the file) level.  
> In fact, it might be desireable to allow both "late" libraries which 
> loaded automatically, but after the main execution file has loaded, 
> and "deferred" libraries, which are loaded upon request.
>
> Comments appreciated, although there will be another chance when I 
> post the syntax.
>
> Best,
> Oliver
>
> --
> Oliver Steele
> Chief Software Architect
> Laszlo Systems, Inc._______________________________________________
> Laszlo-dev mailing list
> Laszlo-dev at openlaszlo.org
> http://www.openlaszlo.org/mailman/listinfo/laszlo-dev



More information about the Laszlo-dev mailing list