Tucker, what is in your opinion the greatest advantage of using
* XML as a base for the LZX language I can think of 1) instance-based programming enables rapid prototyping and is a good fit for UIs 2) Ability to parse/process XML in any modern programming language, making it easy to a) write a syntax parser for LZX b) convert LZX document on-the-fly using XSL tranformations, e.g. for documentation 3) every developer knows XML, no need to learn something new * A JavaScript 2 dialect as an intermediate format 1) Upcoming browsers will have native support for JavaScript 2 (although Firefox 4 won't support JavaScript 2) 2) JavaScript 2 adds elements to the language which make it possible to implement the LZX type system more effectively? ... * Mixins and constraints The value should be obvious to any experienced developer. Implementing components using mixins will have a huge advantage over the old approach of using deep inheritance hierarchies to add behavior like clickability, value storage, etc. And the constraint system has always been an excellent feature of LZX. * Animation and layout With CSS animation, OpenLaszlo lost a lot of the power as a platform for creating animations. On mobile devices the performance of pure JavaScript based animation will be a lot lower than the hardware-accelerated CSS animation. Will the OpenLaszlo animation system support CSS animations in the future? And when is that going to be. - Raju On Sun, Jan 16, 2011 at 8:35 PM, Raju Bitter <[email protected]> wrote: > Tucker, it has been some time but I still want to respond to your > mail. My response is not only discussing the LZX language, but - again > - the general setup of OpenLaszlo as an open source project. > Especially John Resig's blog post "How could YUI3 improve its image > compared to jQuery, MooTools, etc.?" is very interesting, and should > give the Laszlo management some food for thinking. But let's start > with LZX: > > 1) Presentation type system >>> Why are we coding in LZX? What was the initial idea behind creating >>> the language, and is the initial idea of LZX (XML + JS + XPath ...) >>> still valid in times of a web world which seems to be more and more >>> influenced by JavaScript? What does the general of adoption of JSON >>> instead of XML in web services mean for LZX? >> My personal favorite is the (still evolving) presentation type system, >> which I think will be a very important tool. > I agree, but you have to show people what's so powerful about it. If > no-one knows about it, people don't care. > > 2) Coding in LZX/JS, driving adoption of OpenLaszlo and LZX/LZS >>> - official support for coding classes in JS (which means: the next >>> minor update of OL will not break my existing class code) >> Not sure what you are asking here. We support class-based development >> in both LZX and LZS. The latter is an extension of JS based on the proposed >> ES4 standard (which never came to fruition). We continue to track ES >> standards >> and have every intention of supporting our class-based development going >> forward. >> We hope that ES6 will include the "traits" proposal, because we believe that >> will >> allow a much more efficient implementation of our classes in ES-based >> platforms. > > Google for "openlaszlo+lzs": Do you find any page teaching you LZS, > and how it can be used in the context of LZX - to script classes, > mixins, etc? Check the developer guide chapter on scriptiong: > http://www.openlaszlo.org/lps4.9/docs/developers/tutorials/scripting-tutorial.html > > Another quote: "Lack of documentation. No matter how wonderful your > library is and how intelligent its design, if you're the only one who > understands it, it doesn't do any good. Documentation means not just > auto generated API references, but also annotated examples and > in-depth tutorials. You need all three to make sure your library can > be easily adopted." > http://www.codinghorror.com/blog/2007/01/if-it-isnt-documented-it-doesnt-exist.html > > A few good devs know the power of LZX with OpenLaszlo 4.2+, and how it > can help you build some of the most advanced browser based apps. But > more people need to know that. > > 3) LZX language changes >>> - generally less changes in LZX! There are so many changes to the >>> language in the past 3 years, that it makes the LZX the most >>> "unstable" language to use in all of my IT projects. The fact that the >>> Laszlo has full control over the LZX language makes the language a >>> target to syntax changes directly related to the next release of >>> Laszlo Webtop, which is not good for the language in general, I >>> believe. >> >> This is a choice you have to make. You can pick a language that will never >> change, you could develop in Objective-C or Java, or you can pick a language >> that is evolving to be more powerful. You always have the choice also of >> sticking with an earlier revision, just as many people are still programming >> in PHP4... >> >> The advantage that OL has is that it is a small community, not bound by a >> standards >> committee, so can evolve and adapt to be the best development language you >> have >> access to. >> >> Nevertheless, we do not make changes to the language willy-nilly, and we do >> not make >> changes just to support Laszlo. We always request community input when >> making changes >> to the language. When we have made changes, we have maintained >> back-compatibility >> whenever practical. When we make breaking changes, they have almost always >> been to >> repair warts in the language that were the source of confusion and bugs. >> >> It _is_ true that at the beginning the language was built to support Laszlo. >> Because the language was designed "as it went along", there _are_ places >> where the design is less than ideal. I don't feel anyone is well-served by >> preserving design flaws. I don't want to see the language become stagnant. >> > "The more successful the language is, the greater the cost of changing > it. You have greater re-education costs and you have the potential > costs of disruption which, as you become bigger, become unacceptable. > When you're really successful, you need to be extremely cautious in > any changes that you make. Whereas if you haven't made it yet, you > have a lot more freedom in changing it around." That's not me, but > Douglas Crockford (in "Coders at Work"). > > With the size of the community around 2006/2007, changes were painful > (the feedback from people trying to migrate 3.x apps to 4.0 wasn't > very positive, as I remember). Now the number of people/companies > using OpenLaszlo is so low, that's it's not maybe not that painful. > > It's a fantastic feature to be able to upgrade old OpenLaszlo apps to > the latest version (since 2003). But it puts a burden on the language > as well. I believe that Laszlo has to revise the process of > introducing changes to the language, to have a slightly more formal > process where partners and the community can have a saying in what > will be implemented in the future. More on that under 5) OpenLaszlo's > image... > > 4) OpenLaszlo & code generation -> the power of code generation, but > the need for better tools (IDE, debugger) > Code generation is powerful, but adds a lot complexity to a platform. > As an OpenLaszlo developer you are confronted with these problems, and > they tend to be a lot more complex than what you have with pure > JavaScript or ActionScript coding. Again, quoting Crockford: "As far > as GWT goes, and other transforming things, I'm really pragmatic. This > environment is so hard to work in - if you can find something that > works, then great. I'm fearful of using it myself because I worry > about the abstraction leakage. If there's a problem in your Java code > or in GWT or in what it produces on the other side, you may or may not > have a place to stand to deal with it. Particularly if you took the > approach that you can afford to be completely ignorant about > JavaScript because the language is hidden from you. Then you're going > to be in a world of hurt if anything goes wrong." > > I love the code generation feature, but I've experienced the > complexity as well. That has happened to me and many other with the > introduction of the SWF9/SWF10 runtime. The DHTML runtime is less > problematic (good JavaScript debuggers are available now), but you > might have to deal with the LFC classes or the generated JavaScript > code of your application. If I run into an DHTML LFC problem, I used a > formatted version of the JavaScript LFC code to make debugging easier, > in combination with a debugger like Firebug. > > ActionScript3 is a whole different thing. Using Flash Builder (or > none-Adobe IDEs), the LFC SWC and the LFC10 AS3 classes, you can debug > your apps if you run into ActionScript problems, but OpenLaszlo as a > platform doesn't give us the necessary tools (like in the case of GWT) > to step through source code and inspect the generated AS3 code. Check > this section from the GWT Docs: > http://code.google.com/webtoolkit/doc/1.6/DevGuideCompilingAndDebugging.html#DevGuideHostedMode > "Anytime you edit, run, and debug applications from a Java integrated > development environment (IDE), you are working in hosted mode. When an > application is running in hosted mode, the Java Virtual Machine (JVM) > is actually executing the application code as compiled Java bytecode, > using GWT plumbing to automate an embedded browser window. This means > that the debugging facilities of your IDE are available to debug both > your client-side GWT code and any server-side Java code as well. By > remaining in this traditional "code-test-debug" cycle, hosted mode is > by far the most productive way to develop your application quickly." > > For OpenLaszlo, we currently have only the ability to step through the > generated code spit out by the OpenLaszlo compiler. The joy of using > the LZX language comes at the price of increased complexity, which > will be beyond what most standard web developer will be willing to > handle (e.g. debugging ActionScript code, they don't even know!). > > Here is where we need better tool support, I don't believe that enough > people at Laszlo understand how much of the value of the main platform > is reduced by not having state-of-the-art tool support for OpenLaszlo > development. Having an IDE with step-through-debugger (at least for > HTML5), inclusion of the LFC classes (read-only) into LZX projects (as > you had in the IDE Laszlo had been working on in 2008), would make > life for LZX developers (especially larger teams and novices) A LOT > easier. > > 5) OpenLaszlo's image... > Besides the LZX programming language: How could OpenLaszlo improve its > image compared to jQuery, MooTools, etc. > Well, first read John Resig post on the YUI3. Some of what's said here > is true for OpenLaszlo as well: > http://www.quora.com/How-could-YUI3-improve-its-image-compared-to-jQuery-MooTools-etc/answer/John-Resig?srid=5i2 > "The YUI project has always had the advantage of having a large number > of paid, full-time, contributors to the project. As far as I can tell > it's always had more paid, full-time, contributors than any other > JavaScript library. This is awesome and it's benefited the library as > a whole. However it can also be crippling. Yahoo completely controls > the direction and destiny of YUI. This should not be the case - YUI > should be split off from Yahoo and become its own, separate, Open > Source project." > Same is true for OpenLaszlo: Few open source RIA/Ajax platforms have > received as much funding in the past years as OpenLaszlo did. But with > the same problem as YUI, totally dependent on the company funding the > development: Laszlo > > "The success of jQuery has largely been due to the feedback and help > that we've gotten from the community that we've fostered. Right now > the code base and contribution model that's speak to that." > Since 2007, the message sent out by Laszlo to the community sounded a > lot like: "We don't care about you, and we don't need you!" I could > have used some other words here, but I'll try to be nice. At the same > time, I've heard enough complaints that adopters of OpenLaszlo (in the > enterprise world) don't contribute back to the project. Well, maybe > the next quote from John Resig will explain that: > > "Now the problem thus far is that much of the community surrounding > YUI has been manufactured - or heavily controlled by Yahoo. This > should not be the case - the community should be run by the community > itself. If Yahoo stopped promoting YUI then community members should > be willing and capable of stepping up to help. If they're not then > there are larger problems at play - well beyond things that can be > fixed through adjustments in the structure of the project. > Setting up a non-profit foundation for YUI that holds 100% of the > copyright and assets for YUI would be a very important step towards > building goodwill with the larger development community (especially if > non-Yahoo contributors are invited in and made to help run the > project)." > > Exactly what I've been telling the OpenLaszlo team and Laszlo for the > past year. I believe that LZX is a powerful and fun language, and > there is still the need for a technology like OpenLaszlo. The class > system (although I really dislike the deep class hierarchy for the > current component set), mixins, cross-runtime debugger integrated into > your app, animation system, new CSS styling features, HTML5 support - > that's all great stuff. But I'd still be interested in hearing from > other community members. > > - Raju >
