Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

He he, is this based on Tcl? It for sure seems at least inspired by Tcl/Tk.


These are Go bindings for Tk, a cross-platform widget toolkit initially developed as extension for Tcl. Nowadays a lot of languages have bindings for Tcl/Tk. Python for example has been including tkinter [0] for a long time.

[0]: https://docs.python.org/3/library/tkinter.html


Seems Tk is now the default cross platform UI for any language. It is doing for local apps what JavaScript has not - a usable toolset for majority of use cases without a ton of overhead and interference. I e only played with tcl/tk over the years - now will put in some hard yards to try in depth. Golang+tk for heavy lifting and server side and tcl/tk for scripts and as hoc things. After 50 years of casual/prof development this might be my personal version of nirvana. YMMV.


> Seems Tk is now the default cross platform UI for any language.

So let's hope someone writes a wasm binding.


yes, for python, from 1.5 or early 2.x versions onwards, iirc. I've used py a bit from 1.5 and much more from early 2.x, is how i know this.


yes, perl, python and ruby, for example.


Really? Would love to see a binding for Powershell. Just for cross-platform shell scripts to be able to disable a pop-up for input etc. Just makes them more accessible.


That would be WPF. It uses Tk under the covers.


I believe that has been removed in later versions as the old examples I find online don't work in Powershell

> InvalidOperation: Unable to find type System.Windows.Forms.MessageBoxButtons].


This still works today for me:

    Add-Type -AssemblyName PresentationFramework
    [XML]$form = @"
       <Window 
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            Title="MainWindow" Height="450" Width="800">
        <Grid>
            
        </Grid>
        </Window>
    "@

    $NR = (New-Object System.Xml.XmlNodeReader $form)
    $window = [Windows.Markup.XamlReader]::Load($NR)

    $window.ShowDialog()


Ah, my bad. It is inspired by Tk. Should still be usable across most things today.


Similarly to Python Tkinter, it actually embeds Tcl/Tk and provides a Go interface to it.


And latest Tcl/Tk is v9 I think. So I guess there should be something...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: