I'm sorry Max,
I forgot to mention that I am still on holiday in Barcelona :-)
My comments were in no way whatsoever meant as some plan of action.
Rather they were meant as observations, just simple food for thought.
A pastime if you will.
Not to be taken too seriously but with a grain of salt.

Peace,
Rami

If you notice specific issues with the docs, please use the form at the bottom of the page to let us know so can update them.

We try to spell out runtime-specific differences here:
http://wiki.openlaszlo.org/Runtime_Differences
Feel free to edit the wiki page and/or let us know if you run across anything missing!

I agree the documentation should clearly state when an API won't work for a specific runtime. Currently, it's possible to check the view/canvas.capabilities hash at runtime and the debugger warns when a runtime doesn't support a feature - which on DHTML can vary depending on the browser. Since this table is currently built at runtime (and the docs are generated at compile time) it's would be hard to automate putting the details into the docs.

It's probably best to manually edit the doc comments - the community can help by using the change request form at the bottom of each doc page, and/or filing bugs in JIRA.

I feel that OL should have a core api, objects that need a target
platform specific implementation.
These would be implemented with performance on the target platform in mind.
If you then develop components using this api, you would know that they
work on all supported platforms.
This api would be concise and conservative (obvious examples: view,
drawview, Timer (oops that's a camelcase :))

I've been thinking it would be nice to have a series of classes/mixins that provide subsets of the view APIs. This could help make components lighter and provide some additional clarity to the documentation.

Currently, there are core Laszlo Foundation Classes (LFC) APIs (e.g. view, text, inputtext, etc.) and a sprite system that provides services to the LFC for the underlying runtimes. Unfortunately, the sprite API is not currently part of the OL docs but it's available here:
http://svn.openlaszlo.org/openlaszlo/trunk/WEB-INF/lps/lfc/kernel/

We've tried to move all runtime-specific bits into the kernel. That's been essential for easing multi-runtime development, e.g. when something is broken on a specific runtime, we know there's likely an issue with the kernel code, not the core LFC. This also minimize the amount of code needed to add a new runtime.

Then you could also have target platform api's if needed.
Say, laszlo components coded with as3
And like it already is, you could write code directly meant for one
target platform.

It's always possible to call into the underlying runtime when you need to - but you're going to break cross-runtime compatibility. OL provides ways to conditionalize your LZX or script code for a specific runtime - see the lps/components/extensions area for examples of this including drawview, html, etc...

So really, you have access to all the underlying runtime goodness you need, when you need it. I often prototype new features this way, then move them into the underlying LFC and optimize as needed.

This would mean cleaning out all the non-crossplatform features from
core objects.
Eg. pixellock or clickregion from view (actually I only assume they are
flash specific)
These could then be brought back using mixins for those who target flash.

OL aims to support of the entire set of APIs across runtimes, where possible. E.g. pixellock works across runtimes, but clickregion currently only works in Flash because the there isn't good clipping path support in DHTML yet (other than with SVG/VML) so it's tricky to provide clickregion support there. And, there isn't really a standard format that works across Flash and DHTML for vector art - SVG is a possibility there. This hasn't been a huge priority for us though, as it's a ton of work for something that folks don't seem to care about.

Video is another interesting example - I've been waiting to see how that shakes out, not that Youtube and others are adding native HTML5 players, we really should update videoview for DHTML.

Now the components and OL core api are all mixed up.
This adds to confusion.
>
Basically my point is that instead of writing more backends, I would
like to see more clarity in the laszlo software stack.
And it is my firm belief that with this added clarity and documentation
OL would become more open.
And prosper better in the opensource community.
Because the biggest reason for not contributing is lack of understanding
and insecurity that rises from the previous.

I agree the documentation could use more clarity - if anything, there's a lot there to take in. It would be great to see things broken up into more logical, digestible chunks. lz.view is pretty large and complex now. Please let us know if you can think of other strategies.

I also want to see better LZX components. I think that's where the community can help the most, as it's currently the best documented/accessible part of the system.

I've been having fun sketching in that domain - making extensive use of mixins. I'm hoping to release something for comment soon.

Thanks for your thoughts, let's keep this conversation going!

This does not mean that I am opposed to any backend, of course.

- rami

6.2.2010 19:34, Raju Bitter kirjoitti:
Check out what the haXe folks did
Damn! I wasn't aware of this haxe at all.
Looks pretty good on paper.
Architecture has the kind of clarity I wished OL would have.
Has anyone done any comparisons between OL and haxe?

- rami


Reply via email to