on the Curl Web Content Markup Language

on the Curl Web Content Markup and Programming Language from www.curl.com and www.curlap.com

Saturday, July 30, 2011

Curl.TiddlySpace.com

I have started a collection of "tiddler" notes at http://curl.tiddlyspace.com using their variant of TiddlyWiki, the one page wiki.

On the server-side, these wikis tend to be PHP or Python, but on the client-side they are a tangle of JavaScript and CSS in a single portable HTML file.

So naturally I cannot help but wonder what a TiddlyWiki could offer as a Curl page.  For "plugins" we might use Curl's dynamic package loading.

Many TiddlyWiki implementations are curently hampered on browsers built with WebKit in that the TW page must be accompanied by a tiny Java JAR file to permit updates to the server.

I will try to find a moment to put up a post on a TW using Curl OCC (Occasionally-connected Computing.)

A useful TW is the d-cubed variant for GTD which you can see at my http://aule‑pages.tiddlyspot.com

Friday, July 29, 2011

TDD with the Curl web content language

 
I had started a series introducing Test-driven development over at the former Curl developer blogs. I may revive those posts at lcurlr.tiddlyspace.com.

One thing that may not find a place in those posts is avoiding tight-coupling of tests to class hierarchy.  Curl is a multi-inheritance language with Traits or mixins (abstract classes with some generic methods implemented.)   In the later stages of development, refactoring in the source code should have minimal impact on tests.  That goal will only be achieved if user-defined subclasses are not needlessly referenced in tests.  Behavior, not deep hierarchies, is to be our guide in development – but even such a shallow user-defined hierarchy should be loosely-coupled to our test cases.

The standard way to avoid this in single inheritance languages is to use factory methods in the tests: Curl comes with native factory constructor types. But in Curl there will also be other options particular to multiple-inheritance, parameterized classes and mixins. And with Curl macros, even more inventiveness is possible.

Tests need to wrap complexity - not expose complexity - as much as any other code that we write. Tests must both cast an wide net and yet be loosely-coupled, stable, readable, documented and maintainable.

Professional Curl installations also come with code coverage tools, whose use as can be seen in the new GUI testing framework in the Curl External Library at sourceforge.net . Coverage tools were introduced in the "classic" Curl desktop IDE and are now part of the Curl Eclipse plugin or CDE.

Thursday, July 21, 2011

Curl open-source Sonntag GUI framework

 
Over at communities.curl.com I have a post on the Curl open-source Sonntag framework at sourceforge.net .

Why the name?  Well, it tag's components with the optional name property ... and sonner seems to ring a bell ... [ to get off a bus is an event.]  O-kay, we'll stop that punning for now ...

What is needed is a much more elaborated demo than that currently available.  I will try to find time to work on one. Two small things need doing for the existing demo: move it up to Curl 7.0 from 6.0 and show that Sonntag ties-in seemlessly to Curl automated testing for GUI Visual components.

From where I stand, this little framework is important for what it demonstrates about the strengths of Curl in keeping the complexity of Events for GUI widgets under wraps.

Sonntag achieves that through live-code doc's, Curl macros, mixin's, multiple inheritance and parameterized classes and effective packaging.

Monday, July 4, 2011

Curl 8.0 and mobile roadmap

The SCS Curl page has a link to CodeZine in Japan with a roadmap for Curl 8.0 thru 9.0 over the next two years.

Highlights include Curl Lite for mobile, an Application Integrated Famework and then that AIF for the Cloud, a new Style Designer for GUI skins and much more.

If you have seen or tried Mobl, you will know how very close that language is to Curl in its declarative-style DSL for mobile.  Curl has been missing on mobile platforms and now Curl Lite 1.0 and 2.0 are on the roadmap now.  What Mobl does not have are all the other great strengths of Curl as a language, a framework and a growing set of libraries.

There is even a mention of server-side Curl sometime in the future in the 3 page article.