AW: [Xotcl] Interested in OO for tcl.

mail at mail at
Mon Dec 4 12:15:24 CET 2006

About complexity of XOTcl.

Many of XOTcl features are only interesting for special scenarios such as OO-frameworks or wrapping techniques.

For OO-Beginners these XOTcl-Features might be not interesting:
- method forwarding
- filters
- meta classes
- slots
- mixins
- assertions, pre/post condition
- non positional arguments
- object aggregation
I have ordered the features from most advenced to quite practical
in my opionion.

Although I have written many lines of XOTcl code I have rare used filters (only for debugging and IDE features) and never method forwarding.
I have also never implemented my own meta class.
Mixins can be practical to avoid big class hierarchies or in some special object lifecycle scenarios.
But I need some times to figure out when to use mixins.
Object aggregation is very usefull.

Also antother OO-Languages have some such specials features.
Examples for Java:
- anonym classes
- generics
- dynamic proxy
- reflection
- interfaces
- abstract classes

So you can use successful XOTcl without understanding some of its features.
The practical advice is to start with XOTcl and learn some additional features only If you feel you need it.

I think that it is historical reason that in XOTcl tutorials there is strong focus on new features of OO.
The authors wanted to describe new innovations for known problems in OO.
But these problems of OO are apparent only in bigger OO-Project and can be understood only by experienced OO-Programmers.
XOTcl has academic background, so the innovations are quite important.
But in comparison with another academic project it is practical usable for industry needs and standards.

On the other hand features like filters and mixins can be very useful to modify or extend system without to complete redesign it.
It helps to modify the system dynamically.
But you will never have such problems at the beginning of the project or by small projects.
So you will probably appreciate XOTcl in cases when other OO-Systems will let you down.

I use many OO-languages professional like: Java, C++, C# but some additional features of XOTcl, which I miss by Java and C#, and some base characteristic of Tcl are
for me perhaps the only reason why I still use XOTcl/Tcl.

Artur Trzewik

More information about the Xotcl mailing list