"Why isn't there a Comprehensive Tcl Archive Network like Perl's CPAN?" (
https://wiki.tcl.tk/17271) was last updated in 2007, which begins "The question has been *very* frequently raised for at least the last ten years."
So, lets just round it down, way down, and say 20 years, two decades. Maybe it's been closer to a quarter of century, but we'll call it 20 years for our purposes here.
It turns out that there is actually a wiki category "Repository", dedicated to the fits and starts and quiet deaths of a multitude of Tcl CPANs.
Tcl is not left with nothing: We have tcllib and tklib, a blessed and curated collection of Tcl packages- I mean, they aren't the size of CPAN or NPM, but they exist. We have the wiki, which itself is a copy-and-paste-based source repository. A big Huzzah to all who posted their code in the wiki rather than providing a link to their personal high performance gopher:// server with which to offer their code to the.. uh.. masses, lets just say. Linux distros have their package managers and tcl packages available in them, windows has ActiveTcl (or you can use it on mac and linux), and I know absolutely nothing further about the appleverse, but I'm sure there a multitude of ways there too. And despite the Tcl communities' ethic of insular obscurity, the kids are posting Tcl code on github, 'cuz that's just what you do, as far as they know.
I just read yesterday, before reading the above response that also mentions it, that ActiveState has open sourced the teapot/cup system, but in fairness, it was rather recently, and word had not spread to my ear. Yesterday I also discovered
http://teaparty.rkeene.org/fossil/home
http://teapot.rkeene.org/index.html
Now, I'm no big city lawyer, but I do believe that's an opensource CPAN just kinda, you know, hangin' out. Chillin'.
I want to apologize for propagating this notion that the teapot/cup thing was dead. I asked about it in the irc channel, and was directed away from it from somebody or another, and I accepted that as cannon, having just returned from the JavaScript mines. I don't use ActiveTcl, so I just didn't know.
At the bottom of
https://wiki.tcl.tk/16925 Tcl's own DFK, in response to his own comp.lang.tcl rant circa 2010, wrote a pure tcl package grabbing client, directed at the fictional "
http://repository.tcl.tk/packages" URL. That would be cool, huh?
Of course, there is not even an easy answer in Tcl to the question, "What's a Tcl package?" ActiveState drew the line at "these 4 things" for the teapot/cup, apparently, but acknowledges that it isn't really a comprehensive picture of the landscape.
======
So my own spin:
Tcl was created to be a layer on top of binary systems, so lots of the goodies in Tcl aren't pure tcl. NPM sometimes needs to compile stuff, and does so surprisingly reliably.
Tcl's own Hypnotoad has a system called ODIE, which is a sort of mother-of-all-build systems, written in his homegrown systems called Tao and Practcl, and uses Fossil. If something about that is untrue, it's only due to confusion on my part. That's the best explanation I can give. What I can say is that on a good day, one can use ODIE to build a binary tclkit of 8.6.8, and a "toadkit" containing a bunch of dank stuff like tDOM. If 8.7a2/9 was building on Linux, it could use that too. And although I'm not sure if it's all considered ODIE or not, there are a bunch of Fossil repos in it's general vicinity with more Tcl extensions to be had.
An easy-reader version of Tao is found in tcllib 1.18, called "Tool", and a version of Practcl is there too. I posted on the wiki recently how to build Fossil with Tcl integration on Debian; it's a piece of cake.
THE TCLERS DOBEE
Imagine a world where there was no gatekeeper for the Tcl's CPAN, just like the The Tclers Wiki, where crying out into the desert night for the attention of some Tcl Illuminati was not required to include a package. Imagine this CPAN could build binary extensions, and offer pre-compiled packages and bundle ToadTclStarKitPack-thingies.
- Individuals could roll what they want into The Dobee.
- The Dobee could be passed one to another.
- The Dobee requires no special client. If it can HTTP, it can take a drag, I mean, pull from The Dobee.
The Doobe would complement the The Wiki, and share the same ethos. Aloha!
Sure, it's more than likely to be an also-ran NPM for Tcl. But it hasn't been tried before. And we have almost all the parts we need working already.