top | item 7856949

Native GUI library for Go

220 points| scapbi | 11 years ago |github.com | reply

108 comments

order
[+] chris_wot|11 years ago|reply
I'm interested in this because I'm cleaning up and restructuring LibreOffice's VCL (Visual Component Library) code. In terms of OO, it's a mess of tangled code. This might give me some ideas.
[+] oblio|11 years ago|reply
You brave soul. I hope you accomplish what you've started - LibreOffice GUI improvements, especially regarding the foundations, are greatly appreciated.

Would it be possible, long term, to use Qt? I mean switch the current components to be based on Qt and then, over time, actually start using Qt?

[+] laumars|11 years ago|reply
Anyone had chance to try this yet? Is it any good?

I notice the Linux APIs call GTK which, while I can understand the logic of, I rather liked the Qt Go Bindings I played around with last year.

[+] fit2rule|11 years ago|reply
It is very rudimentary; all the basics are there, but there are some glaring things I couldn't figure out yet - like how to move the Window to a new screen position, things like that. Might be my ignorance though, I've only had 15 minutes of glance at it, and as I'm mostly interested in learning Go casually, maybe there's some things I've missed ..
[+] sagichmal|11 years ago|reply
With the caveats that I haven't used it yet, and that I don't know if it reflects actual product quality: after a skim, I can say the code itself is pretty messy. Randomly formatted, nonidiomatic naming conventions, lots of commented-out blocks and dead code, haphazardly organized.
[+] fit2rule|11 years ago|reply
Looks like a decent effort at creating the basics - certainly usable for basic things like buttons and forms and such .. well, I appreciate the simplicity of this ui kit so far, as I'm currently learning Go. I'm enjoying learning what area_darwin.go/.m are doing .. toll-free bridge, k?

(wakeup doesn't run with the current version though, missing window w in args, but that's an easy fix..)

So from 10 minutes of looking at it and getting wakeup built, I've learned some new Go stuff. Thanks for that! :)

[+] sdegutis|11 years ago|reply
Although I'm skeptical about this project (as I usually am with widget platform-native toolkits like this), I'm very interested about how it turns out. It looks like it's in early development, but the author seems to know his stuff. It would have been really cool to see back when I was first trying Go out, but I've since lost interest in Go since they're taking so long to implement generics, and I'm not interested in copy/pasting so much code. When I'm writing OS X apps (I don't use any other platform these days), writing in Swift seems like a much more fun option (too bad it's not open source, yet).
[+] skj|11 years ago|reply
Here's the kicker: you don't actually end up copy/pasting much code.
[+] stcredzero|11 years ago|reply
I'm skeptical about the urgent need for generics. In over 3 decades of coding in some big corporate code bases, I've only seen situations where generics could have defended against really terrible coding practices. (This collection only ever has Portfolios in it. Why don't I stick a line item in there for my convenience?) But in that case, the shop has something more critical to worry about than choice of programming language.

Granted, there are some quite complex systems out there where generics could deliver truly valuable type safety. I doubt all the systems that are that complicated really need to be.

The likelihood that a programming language feature will be over/mis-used is directly proportional to how nifty it is.

[+] grey-area|11 years ago|reply
Objective-C doesn't have generics either and is/was the blessed API language on your chosen OS. The horror!
[+] GhotiFish|11 years ago|reply
it's really shitty people were downvoting you for a relevant developer experience. You actually used Go, you found you kept duplicating code, and you feel this project might help. Some may theorize that you didn't quite drink the koolaid and are trying to make Java in Go or something, but the speculation is worthless, and the observation is valuable.

Your post is a good post.

[+] fithisux|11 years ago|reply
I though GTK3 was available for Go. Why yet another library?
[+] laurent123456|11 years ago|reply
Though it's great to a see a new GUI library for Go, I'm wondering if it's following the best approach. Most frameworks seem to be moving towards more declarative languages (HTML for many platforms, QML for Qt), often mixed with JS, and it makes it much easier to create GUI. Not sure if we need another clone of wxWidgets/QtWidgets. I wonder if something like a native QML interpreter in Go would be possible.
[+] GenKali|11 years ago|reply
Is the readme supposed to look like that? The first few paragraphs are all 'h2' level text. Very difficult to read through.
[+] andlabs|11 years ago|reply
I just replaced it with a detailed placeholder for now. (Replacing it was something I had stuck in the back of my mind for a while.)
[+] skriticos2|11 years ago|reply
Why do people hate images and videos so much? It's a GUI library! I skimmed the whole readme and have no idea what it looks like and found no link that would make me any smarter. Am I weird in this regard?
[+] quarterto|11 years ago|reply
It's platform-native. It looks like your platform. What else do you need to know?
[+] Hansi|11 years ago|reply
Readme, check. Docs, check. Screenshots, nope. Why would you not include that for a gui library?
[+] tptacek|11 years ago|reply
Stupid programmers with their writing code instead of making pictures.
[+] incompatible|11 years ago|reply
It's amazing how many wheels need to be reinvented every time somebody introduces yet another language.
[+] shawnps|11 years ago|reply
Do you mean the author is reinventing the wheel because this already exists in other programming languages, or because there are many existing GUI libraries like this in Go already? It's likely there are many people who are most comfortable writing Go recently so I don't understand how this is a problem.
[+] feadog|11 years ago|reply
Some folks at Microsoft were trying to circumvent this with Singularity OS being based on something like CLR. Then everything could dynamically interoperate with everything on a programming language level.

http://xkcd.com/927/

[+] mg74|11 years ago|reply
ServerSwift! SwiftPOSIX! SwiftToJS! SwiftGTK! KSwift! WinSwift! SwiftCurse!
[+] CmonDev|11 years ago|reply
Could be a good Go-alternative of Xamarin in ~5 years or so.