open source


CGI Coffee

Develop Cross-Platform CLI and GUI Tools With Tcl/Tk. Powerful, Event-Driven, Open-Source And Future-Proof Toolkit… From the Past?!

What if I told you there exists a language, or a whole toolkit that:

  • Can be used to create cross-platform Console and GUI tools or apps
  • Those GUI apps look native on Windows, Linux and MacOS
  • Supports safe and efficient threading, non-blocking events and I/O
  • Has a small footprint of about 100MB with most common packages installed
  • Can produce very compact single-file apps for any supported platform
  • Is capable of building robust cross-platform Web Apps
  • Has existed and been in use by some of the largest corporations for over three decades
  • Is free and BSD-licensed, so you can do whatever you want with it, or to it

Would you believe me?

indiana-jones-tcl-tk-hero-title

Foreword

Documenting personal experiences on fascinating or useful topics is what I do. Real-time visualization, 3D simulation, data safety, energy efficiency, or even input devices, microcontrollers, and fitness — an endless stream of ideas for new studies and exploration is always on the ToDo list.

This particular topic turned up to be quite a bit more involved than I originally planned. But I promise: all information here is what I myself would've loved to have known before I started my Tcl/Tk toolkit learning journey.

I'm writing this long after my honeymoon phase with Tcl/Tk ended, and will try to be as objective and honest as possible. Both to you, and to myself. I have nothing to "sell" except my personal experience, hoping to better inform you and simplify the "onboarding" process if you ever decide to give Tcl/Tk a try.

Due to its command-centric nature, Tcl is a powerful, yet widely misunderstood language. I want to contribute to the conversation, aiming to clear up this persistent confusion with concise explanations and concrete examples. And a bit of flair, of course, to keep you entertained.

Please note: We’re skipping the "Programming 101" talk here with the assumption that you already have a baseline familiarity with general programming logic. If you know your way around an if statement and know what function is, you're probably ready to dive straight into Tcl-specific structures and syntax. Think of this article as both a "Tcl hands-up and a primer", in hopes to make you, too, discover and appreciate this almost 40-year old technology that quietly powers the world. And maybe convince you to try it for yourself, and spread the word.

As for the "About The Author" — if you're interested, please visit the "About" page.

Ready? Let's go.

Looking for a Free Adobe Premiere Alternative? Meet Olive Video Editor!

My fellow pro and hobbyist video editors and geeks alike, our prayers have been heard!

Do you remember finding yourself in a situation where you needed to simply edit a couple of clips together regardless of the format they were in? And maybe add a soundtrack, a title or two along the way, as well as do some basic color correction or time warping on the source material?

Here's how it usually goes: you get an idea, either write it down or jump straight into your NLE and get ready to bring it to life.

kick open door by deathbulge.com (http://www.deathbulge.com/comics/394)

But then you must be sure to have a full-fledged video editing app on the computer you have access to. And even if you do say, open up your Premiere, Final Cut or DaVinci Resolve, you'll quickly realize that professional NLEs are picky about the formats you need to provide your videos in. Then you find out that you need to transcode a clip or two, save some images in another format...

Now you're questioning this sudden wave of euphoria which came with the idea, and looking for reasons not to keep going and finally...

Nope. Not worth it. I'm outta here!

kick close door by deathbulge.com (http://www.deathbulge.com/comics/394)

And that, my friends, is exactly how ideas DIE...

Quietly... In the corners of your mind... Overtaken by a barrage of complications and tedious procedures needed before you can actually get to working on the damn clip.

But it doesn't have to be like this!