An investigatory analysis. Tcl00. Okay, got it. I'm not much for extraneous syntax, but if you have to have it, '''[::oo::]''' is not a bad way to go. Looks cool. Pew pew pew, it's a spaceship. Or a spider. Maybe it's a moose. maybe it's looking deeply into the eyes of a lover. '''[::oo::]''' is pretty cool, as far as syntax goes. Well, it's been a long stretch in the JavaScript mines, better brush up on my cannon. TO THE WIKI! '''ALOHA!!''' Commands ::oo::class new in 8.6 ::oo::copy new in 8.6 ::oo::define new in 8.6 ::oo::objdefine ::oo::object info info class provides introspection of classes (many subcommands) info object provides introspection of objects (many subcommands) Method Commands The following commands are only available within the body of a method my new in 8.6 next new in 8.6 self new in 8.6 Now, I'm not one of them big city software architects, but I can't help but notice there are some top level tcl commands, and all I know about them right now is that they are brand-spanking new, and they are only available within the body of a method. This feels, subtly, ever so slightly, on the fringes of my spider-sense, like name space pollution. Like, if ever there was a reason to use namespaces, wouldn't it be to prevent commands that can only be used in a specific context from becoming top level commands? I'm just thinking out loud here. We'll see later if perhaps some radical language modification or maybe a complex, streaming build system might come to our rescue on that. Okay, folks, shows over. That's TclOO, you've seen it, time to get codi.. Wait- I think I've seen that spaceship-spider-moose lover before. Was her name Valerie? No, that's not it... noop Sherlock/Mr. Robot-style eidetic memory sequence ensues, consisting mostly of tcl code, sandworms, and Stevie Nicks Wait, I know! It was in the Tcllib 1.18 documentation! Yeah, it was '''::oo::util''', and of course, it's twin, the other '''::oo::util'''! I knew I saw it before. Wait, not just there, but.. somewhere.. noop Fragments from Madonna's 1984 video "Borderline" flash in rapid succession No, it wasn't in the Tcllib 1.18 documentation, it was in the "README of Changes" of Tcllib 1.18! Of course it was, it was there the whole time, and we learned the true TclOO was the friendships we made along the way. oodialect oo::dialect 0.3 oometa oo::meta 0.4.1 oo::option 0.3 No, I'm wrong. Nothing here but a third of an infinite language, less than half of a meta infinity, and a ukulele option. Hold on just a gosh darn minute! That's not even a tiny bit of a meta infinity, let alone almost half of one. It's that silly tcl namespacing, isn't it? ::::::::::::::::::::::::::::::::::info tclversion ::info tclversion info tclversion Never judge a namespace by the number of preceding colons. That's what pappy used ta always say. So herm, maybe that's all of them? Maybe it would do for now. So now what are we looking at again? Commands ::oo::class new in 8.6 ::oo::copy new in 8.6 ::oo::define new in 8.6 ::oo::objdefine new in france ::oo::object big in japan ::oo::util ::oo::util twice as nice as the last ::oo::util ::oo::dialect new in tcllib 1.18 release notes ::oo::meta new in tcllib 1.18 release notes ::oo::option new in tcllib 1.18 release notes ::info ::info class provides introspection of classes (many subcommands) ::info object provides introspection of objects (many subcommands) Method Commands The following commands are only available within the body of a method ::my new in 8.6 ::next new in 8.6 ::self ''to be continued'' <>Meditations