> Those GUI apps look native on Windows, Linux and macOS<p>I don’t see how the author can write this with a straight face.<p>The apps look like what native apps looked like in 2003.
Does it look nicer on Windows than on Linux?
> The apps look like what native apps looked like in 2003<p>you make that sound more like a bug than the feature it truly is
Coincidentally the last time native apps were good.
Pretty sure tcl apps look ugly as sin... Python's tkinter is all tcl underneath.
I use Tk routinely in Scheme; there is no Tcl in my code, but Tk is a very nice (though basic) GUI kit, and my programs work on Linux, BSD, MacOS, and Windows. Other commenters have mentioned that Python ships with Tkinter, a library module that interfaces to Tk. I believe Ruby does the same. Hell, if you're programming in Cobol, you can have Tk (as long as your Cobol allows you to call C). You do not have to love Tcl to love Tcl/Tk.
>you can have Tk (as long as your Cobol allows you to call C).<p>No C required, you can just connect to the UI through a socket and often skip the FFI completely. This is my preferred way to use Tk and I don't even consider anything else unless there is a reason. Working this way also has the nice side effect of making the application UI agnostic.
But then you have an entire front end written in Tcl or some other non-COBOL language (to continue the above example,) right?<p>Or is there a way to run Tk as a daemon?
Believe you have to do that anyways unless you are going to create full language bindings as tkinter and the like do. I don't know the Tk API in full but I don't believe it provides ways to create widgets, just interact with them more directly. Perhaps someone more knowledgeable will fill in the gaps here, I learned what I needed of the Tk API and called it good.
that sounds interesting. can you give an example please?
When I first found out about Tcl/Tk, it was used to give a GUI to programs written in C. I've used Tk with Tcl and many times with Perl too.
in what way is Tk basic? can you elaborate? also what are your thoughts on the issues with python as mentioned in the article? how do the scheme bindings compare?
This is a fun idea! Are you using Guile-tk?
Tkinter or other Tk based GUI interfaces are the immediate tool I reach for whenever I build something that's not in the CLI or in the browser.<p>My general "daily driver" is python and I love that I can just spin up a cross-platform tool immediately with it. Tcl/Tk rule and are insanely useful.
I take issue with the only 100 MB footprint, that is still pretty big when consider fasm, tcc and rebol are all closer to 1 meg.
I appreciate this reminder that boring old tech is pretty fucking good tech; especially to your non-ReactJS-not-anti-ReactJS dev, here.<p>The comments are also a helpful reminder of the various sw and visual design/GUI values folks hold.<p>I personally never gotten past exploring Tkinter but like everything else I played with until I found reason to depend on it, that'll probably change since it's as available as vim and python and _that's_ the kind of thing I value. Limitations/constrains are the engineer's problem, not the tool's (unless they are the tool's problem (but even then, just be your natural creative self and roll with it))
On Linux there is also this windowing shell `wish` which I've used for some very quick (and very very dirty) UIs
I haven’t used myself but in Linux there is also zenity<p><a href="https://linux.die.net/man/1/zenity" rel="nofollow">https://linux.die.net/man/1/zenity</a><p>I have seen scripts that use it for a quick GUI.<p>I really dislike using Powershell as a shell, but it looks like on Windows specifically it also has some gui thing that is somewhat similar to a .NET like zenity.
Do you have more information? It looks interesting
I don't, but it was easy even before AI code.<p>It's this one <a href="https://en.wikipedia.org/wiki/Wish_(Unix_shell)" rel="nofollow">https://en.wikipedia.org/wiki/Wish_(Unix_shell)</a> - which turns out is Tcl.<p>I used it to wrap up some socat and curl. Ugly stuff. Reading values from a serial device, show on screen until a button press when a value was sent over HTTP. The kind of code you hate but the management thinks is production ready.<p>I found it because someone on Gentoo IRC was like: ?"if you hate yourself try this"?. Would have preferred to do the whole thing in Perl.
the problem with Tcl/Tk is Tcl. the author does write about the quirks and problems, so this is a good article, but the end of it is that Tcl is simply not a language that i am interested in mastering. just like shell scripting. i'll use it if i have to, but it is not my preference.<p>and as the article also mentions what makes the apps cross platform is the native or near-native GUI. and apparently Tk is good for that.<p>but i'd rather use a nicer language with it. again, the article does talk about python, and points out that the Tk bindings in python are simply not good enough. that was very insightful, and i am glad to know.<p>however i would like to know if any other languages do better here. what about go for example? has anyone tried Tk with other languages and can share some experience?
Fun fact: macOS hex editor "Hex Fiend" uses Tcl for its templating language:<p><a href="https://github.com/HexFiend/HexFiend/tree/master/templates" rel="nofollow">https://github.com/HexFiend/HexFiend/tree/master/templates</a>
[flagged]