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 To-do list.

This particular topic turned out 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. For your benefit, and my own. 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 a function is, you're probably ready to dive straight into Tcl-specific structures and syntax. Think of this article as both a "Tcl hands-on" and a primer, hoping 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, our prayers have been heard!

Do you ever find yourself needing to simply edit a couple of clips together, regardless of their format? Maybe you want to add a soundtrack, a title or two along the way. Or perhaps 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 first, you need a full-fledged video editing app on the computer you're using. But even if you have one installed — say, you open up Premiere, Final Cut, or DaVinci Resolve — you'll quickly realize that professional NLEs are picky about the video formats they accept. Then you discover you need to transcode clips and re-save images in different formats...

Now you're questioning that sudden wave of euphoria. You look 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 work on that damn clip.

But it doesn't have to be like this!