Headline:Introducing Sobyk
Date:Friday, April 05, 2019
Posted By:Soybk Language Distribution

I, Sean Woods, am pleased to announce the launching of a new project Sobyk. Sobyk is an open source solution to the tools and infrastructure gap that has always existed to some extent with Tcl, but which has become readily apparent with the retreat of Active State from new development on Active Tcl.

While ActiveState did open source the tools they use to maintain ActiveTcl, the problem has never been about tools. It's about the community and the infrastructure to connect that community in timely, meaningful ways.

Sobyk at the time of this announcement is a concept. So while I will be doing everything in my power to make these goals a reality, the final product may vary a bit (or greatly) from the template laid out here. For historical reasons, this page will not be edited, instead an updated manifesto for what the project is actually up to will be maintained in a separate document: The Sobyk Manifesto.

But my opening goal is that the Sobyk will provide the following:

  1. Use Tcl to Build Tcl's own extensions.
  2. Provide an easy means to build, maintain, and keep up to date public mirrors
  3. Provide source code for extensions that are already tailored to the build environment of Sobyk
  4. Introduce a new extension architecture that will make authoring and distributing packages saner. Saner for the author. And saner for the users.
  5. Defaults to easy and terse notation, but still allows advanced users to perform rocket surgery.
  6. Allow developers of custom applications (like my employers at T & E Solutions) to integrate their own code (in both Tcl and C) and make their own distinct products.
  7. Build a standard library of Tcl tools that starts with the features of Tcl 8.6.8 and avoids replicating old code patterns, workarounds, and alternate &qoute;Cool Ideas" that existed before TclOO and Coroutines were standard features in the core. (Though I will say I have a soft space in my heart for Snit, so it gets to stay.)

The concept is that a user will download Sobyk. Sobyk is it's own distribution. Built into that self contained binary is everything a program would need to know about pulling extensions. And all of the basic extensions that a Tcl user would expect are already baked in.

The sobyk tool will accept a Tcl script as an argument on the command line. But it will also be able to process distribution commands directly from the command line. (With the only proviso that if you go off and name a Tcl script with the same name as a canonical method to Sobyk, prepare to be confused.)

When invoked interactively, Sobyk will behave like a bar Tcl or Wish shell. But if you ask for the Sobyk package, a set of tools will appear in the interpreter that will allow you to perform any of the actions that you could from the command line. Tk will be an extension to Sobyk, but included where practical, and statically where possible. You just have to "package require Tk" to get graphical Tcl. But for everything else, Sobyk is just a tcl shell with a funny name and a few extra packages if needed.

Unlike Tcl 8.6.8, Sobyk will introduce the concepts from ZipFs Support, back-ported to 8.6.

Sobyk will also introduce a few platform specific creature comforts for mac, windows, and Unix users. Thinks like a cross platform notation for process management. And a simpler means of launching threads. (Though still built on the Threads extension in core tcl.)

Let me not keep you too long. There is code to cut.

-- Sean "The Hypnotoad" Woods