[Product-Developers] Re: Can KSS help in my use case ?

Balazs Ree ree at ree.hu
Sat Feb 21 08:04:25 UTC 2009


On Fri, 20 Feb 2009 12:47:07 -0600, Nathan Van Gheem wrote:


>> But I was wandering whether using KSS would make the whole more clean,
>> readable and maintainable.
>>
> I suppose it might be a little more clean and readable.  I think you can
> make non-kss code very clean and readable though too.
> 
> I can't speak for all the Plone developers out there, but it seems there
> is a growing concern that kss isn't the way to go anymore.  It is too
> heavy(lots of extra code for the browser to download and parse).  IMO,
> kss became cumbersome to do easy tasks that were just a bit outside its
> capabilities and I'm no longer going to use it anymore.  In your use
> case it might work though.

Kss aims to focus on supporting the following developer roles (with 
increasing order of knowledge and expertise needed):

- developer or designer that wires up a page via a kss stylesheet

- developer who develops and sets up an ajax application, by a kss 
  stylesheet and server side kss actions (python)

- developer who creates a plugin for kss (in javascript) making it
  available for use to the above groups. This is needed for kss to 
  provide fat client behaviour for several use cases such as drag and
  drop or custom javascript widgets.

We had moderate success to document the first two activities, but we 
never arrived to documenting the third one: the making of kss plugins in 
a simple and accessible way. Those of us who actually wrote kss plugins, 
also realized that kss lacks some wisdom in this area. During the lessons 
we learned from encountered use cases and projects, some of us also 
realized that we need to improve the plugin creation process a great 
deal. One specific goal is to make plugin creation more accessible for 
javascript developers and inline with the accustomed js development 
techniques (while keeping the rest of the kss backwards compatible).

Before this happens I can give the following advice on deciding about 
whether or not deploying kss in a project:

- If you don't actually need to have a fat client or write actual 
javascript code, you can use kss to implement your ajax in the documented 
way, with all benefits offered.

- If you need a fat client, just go ahead and implement your features in
javascript "as usual". If you want you can also have some kss code 
running in parallel with your javascript: although kss won't know about 
your additional javascript in this case, but it also will peacefully 
coexist with it.

- If you already have your extra javascript running, you would have a 
chance to make it into a kss plugin: write a wrapper that enables using 
your new code from within kss. This allows you to wire up and configure 
your new features from kss, and provide the same code as a kss plugin 
egg, reusable in other applications without touching the javascript.

Since the last step and process involved is the undocumented one that I 
mentioned above, I would only suggest to attempt it if you have deep 
knowledge about both javascript and understand bits of the kss internals. 
In particular I would not suggest to dig into "kss event creation", 
however for simple cases it is easy to create just "kss actions" (and for 
this you will also find some documentation and examples).


I would also like to react a bit about performance. We believe there is a 
lot we can improve here, one of my personal development plans is called 
"zerotolerance": and it aims to implement **0 pageload overhead** in kss. 
(Yes we figured out a feasible way to do that.)

So, although we cannot promise an immediate remedy to the above stated 
problems, development of kss is going on with some exciting goals to 
reach by the end of 2009. 

Best wishes,

-- 
Balazs Ree





More information about the Product-Developers mailing list