I present Vanilla Object Orientation (VOO), a framework that composes classes from Tcl's native data structures -- lists and dictionaries -- rather than introducing additional framework infrastructure. VOO objects are plain Tcl lists with automatic memory management through copy-on-write semantics, eliminating the destructor burden inherent in TclOO and Itcl. Benchmarks on Tcl 8.6.13 and Tcl 9.0 show VOO achieves 7--18x faster object creation and 4--6x superior memory efficiency compared to TclOO. A companion C++ migration path (VOO C++) further improves field-access speed (setter 2.3--2.6x faster) and memory (6.8--9.8x lighter than TclOO), while preserving an identical Tcl call-site API. Cross-version analysis confirms that VOO's compositional design scales better than framework-based approaches as the interpreter evolves.
Cite
@article{arxiv.2604.10399,
title = {Vanilla Object Orientation (VOO): A Value-Semantics Approach to Classes in Tcl},
author = {Alan Araujo},
journal= {arXiv preprint arXiv:2604.10399},
year = {2026}
}
Comments
41 pages (11 pages of main content and 30 pages of appendices), 15 tables, 24 code examples