Vanilla Object Orientation (VOO): A Value-Semantics Approach to Classes in Tcl
Alan Araujo

TL;DR
Vanilla Object Orientation (VOO) offers a lightweight, value-semantics approach to classes in Tcl, using native data structures for faster, more memory-efficient object management without extra framework overhead.
Contribution
VOO introduces a framework that composes classes from Tcl's native data structures, eliminating extra infrastructure and improving performance over TclOO.
Findings
VOO achieves 7--18x faster object creation
VOO uses 4--6x less memory than TclOO
VOO's C++ version further improves speed and memory efficiency
Abstract
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.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
