15 comments

  • henry_bone2 hours ago
    It&#x27;s not particularly revelatory to point out that this project has been generated largely by LLM (claude most likely, given the CLAUDE.md in the repo).<p>Also looks like a bit of introspection has happened ... <a href="https:&#x2F;&#x2F;github.com&#x2F;duanebester&#x2F;gooey&#x2F;blob&#x2F;main&#x2F;docs&#x2F;architectural-cleanup-plan.md" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;duanebester&#x2F;gooey&#x2F;blob&#x2F;main&#x2F;docs&#x2F;architec...</a><p>I wonder if this is just what we get now: low quality code, expressed rapidly. We are excited by the promise only to be disappointed by the reality of the implementation.<p>There are still a few new things around that are carefully and thoughtfully developed and put out into the world. zig itself. MitchellH&#x27;s ghostty. And there&#x27;s still all the older foundations of really wonderful, robust, software created by people like Linus Torvalds and couple of generations of open source devs, that applied great skill, ingenuity and hard work to produce the very best software.<p>But I fear that I&#x27;m in for a period of lamentation as we get wave after wave of promising sounding developments, but where the reality is low quality, LLM generated crap that you really shouldn&#x27;t use if you want secure, stable performant, production-ready software.<p>Seems like perhaps we&#x27;ve been through a golden age of really great software and that now it&#x27;s coming to a close.<p>(edited to fix spelling)
    • Aurornis1 hour ago
      We&#x27;re in the messy transition period where our old indicators of a promising GitHub project are too easily replicated by someone letting Claude Code run for a few days.<p>A year ago it would have taken someone months of nights and weekends effort to get this much code up and running. That person would have developed a good intuition for the architecture and where it should go.<p>Now Codex or Claude can bang it out in a couple days. You can try to have it do spec documents, code reviews, and cleanup passes but with today&#x27;s tools these projects reach a point where it&#x27;s just a swirling mess of pieces duct taped together in a way that passes tests. In my experiments, you quickly reach a point where the usable context depth (which is less than the 1M limits) keeps overflowing before you can get usable refactors in, and you&#x27;re just going in circles. I know it&#x27;s theoretically possible to avoid these problems, but in practice you get spaghetti projects like this.
    • danielvaughn1 hour ago
      To be fair, &quot;excited by the promise only to be disappointed by the reality of the implementation&quot; describes ~95% of my experiences with all software over the last 20 years. In fact only a few exceptions really come to mind - git, treesitter, ffmpeg, and sqlite.
      • henry_bone24 minutes ago
        Yeah, maybe it&#x27;s rose coloured glasses on my behalf. Those examples you mentioned, I would 100% agree with. It&#x27;s some of the best software out there. And yeah, there&#x27;s probably always been rubbish about.<p>I guess I hope that the good stuff keeps coming and the dross falls away. More signal, less noise.
        • danielvaughn5 minutes ago
          I do agree with you though. It feels like the industry has steadily been getting worse, AI is just like pouring kerosine on the fire. I&#x27;m almost embarrassed to call myself a software engineer now.<p>On a small bright note, I&#x27;ve gotten AI to help me produce some of my best work over the last couple of months. It may enable sloppy behavior, but it doesn&#x27;t require it. I have hope that serious work will win out in the end, and that sheer human effort is still the differentiator.
  • ecshafer6 hours ago
    This looks good. But the thing that always lets me down on UI frameworks is how much freaking work it is to get something on the screen. My first language was Borland Turbo C++. It was so comparatively simple to do stuff. If I want to write a circle on the screen its just this:<p>#include &lt;graphics.h&gt; #include &lt;conio.h&gt;<p>int main() { int gd = DETECT, gm;<p><pre><code> initgraph(&amp;gd, &amp;gm, &quot;C:\\TURBOC3\\BGI&quot;); circle(320, 240, 100); getch(); closegraph(); return 0;</code></pre> }<p>Making some shapes and forms wasn&#x27;t that much work either.<p>If I think back to VB and Windows (whatever it was then) making a basic window, form and some buttons was so simple and easy, they even made GUI builders because they were so good.<p>Somewhere along the lines GUIs became overly complex to implement.
    • danielvaughn2 minutes ago
      I know I must be underthinking this, but I really don&#x27;t know why native toolkits can&#x27;t just implement some codegen thing that takes XML and produces the above.<p>Like, all of that should be expressable with just<p><pre><code> &lt;graph&gt; &lt;circle &#x2F;&gt; &lt;&#x2F;graph&gt;</code></pre>
    • WD-425 hours ago
      OK, but what about actually using a GUI toolkit to make an actual application?<p>You can optimize a library to make it comparatively simple to draw a circle on a screen. But that tells me nothing about binding state, signals, styling, widget hierarchy, etc. Maybe these frameworks look complicated to you because doing something more than drawing a circle is actually more complicated.
      • cwillu4 hours ago
        VB was used to create a great many data-munging applications in its time, and while they were never pretty, they were lightning fast, largely consistent, and generally far more reliable than what we currently have.
        • monster_truck1 hour ago
          A relative&#x27;s business has been and is still completely driven by a VB app. It&#x27;s goddamn ugly but most businesses of their size in that industry have been paid subscribers for 30? years at this point. Most notably its the only piece of software they&#x27;ve never had to ask me for help with at all.<p>The only updates it gets anymore are little data packs when laws&#x2F;regulations change and it seems like they automated that because it&#x27;s always ready before it&#x27;s needed. The last &quot;big&quot; update was a guide to running it in parallels on new macs.
      • hombre_fatal4 hours ago
        Agreed. I want a coherent, deliberate architecture for building an application and managing state.<p>That&#x27;s the hard part. I&#x27;ll take on incidental boilerplate (e.g. Elm) if the architecture helps me build and understand applications. Whatever gets me to that latter part.
    • lll-o-lll5 hours ago
      So VB6 or earlier is what you are probably remembering, and VB has a fascinating history as it started life as a wysiwyg design tool before it was attached to any language.<p>However, you need to remember that these simpler tools were a product of a much simpler set of requirements. Fixed themes, fixed screen size, fixed aspect ratios. I imagine a wysiwyg editor that gives you all the power of, say, CSS, and yet remains simple for simple things, sounds like a much more difficult task. I haven’t worked on UI in 20 years, so maybe such tools do exist.
    • bschoepke4 hours ago
      Latest way to do native Windows GUI in Rust is pretty cool:<p><a href="https:&#x2F;&#x2F;www.reddit.com&#x2F;r&#x2F;rust&#x2F;comments&#x2F;1tql7uf&#x2F;microsofts_windows_reactor_a_ui_library_for_rust&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.reddit.com&#x2F;r&#x2F;rust&#x2F;comments&#x2F;1tql7uf&#x2F;microsofts_wi...</a>
    • monster_truck1 hour ago
      100% Agreed. My first language was LibertyBASIC. It had everything a kid could want to make a paint program that had (at the time) more features than MSPaint, or whatever little game. Menu bars, undo&#x2F;redo, dialogue windows, panes, sprites, sound, etc.<p>Compared to the effort:quality of something like tkinter, LibertyBASIC put it to shame! Not to throw shade, tkinter is perfectly fine but I don&#x27;t think I would have cared for it at that age.<p>It also taught me how to pirate software, when I found out the borland compiler required to make .exe&#x27;s I could give my friends was $200 :)
    • coffeeaddict15 hours ago
      This is what you can with Qt:<p><pre><code> #include &lt;QApplication&gt; #include &lt;QWidget&gt; #include &lt;QPainter&gt; class widget : public QWidget { void paintEvent(QPaintEvent*) override { QPainter(this).drawEllipse(QPoint(320, 240), 100, 100); } }; int main(int argc, char *argv[]) { QApplication app(argc, argv); widget w; w.resize(640, 480); w.show(); return app.exec(); } </code></pre> It doesn&#x27;t seem too complicated to me.
      • ecshafer5 hours ago
        That doesn&#x27;t seem too bad, I agree. Maybe that&#x27;s why QT is used. I haven&#x27;t really used QT, but the more modern Windows apis, vulkan, etc all are pretty complicated.
        • cwillu4 hours ago
          FWIW, vulkan is not a GUI library; if you&#x27;re reaching for it without a clear understanding of why you&#x27;re doing so, yeah, it&#x27;ll seem like a <i>very</i> complicated way of doing things.
        • TheRoque2 hours ago
          Vulkan is a graphics API, not a UI library or framework. It&#x27;s way lower level and if your goal is to make a user interface, you&#x27;re not really supposed to do it with Vulkan (but you could i guess)
        • nandomrumber3 hours ago
          It’s Qt and pronounced ‘cute’.<p><a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Qt_(software)" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Qt_(software)</a>
        • jetbalsa4 hours ago
          Thats why I&#x27;ve always like pytk<p><pre><code> from tkinter import \* root = Tk() a = Label(root, text =&quot;Hello World&quot;) a.pack() root.mainloop()</code></pre>
  • KolmogorovComp4 hours ago
    I was really eager to use those new frameworks until a recent HN comment raising how power-hungry and wasetul these were for most of their usage (terminal, forms, tui), and now I think it will probably be seen as ‘bloat’ in the future.
  • noelwelsh7 hours ago
    Interesting project, but needs documentation. In particular, what&#x27;s the model it uses? I.e. how are events, state, etc. handled? Normally I&#x27;d just work it out from the code examples, but the example in the README is over 200 lines which is too long for me.<p>(Don&#x27;t tell me here. Make your docs better, so everyone benefits!)
  • WD-427 hours ago
    This is great, we need more of this. It&#x27;s high time we began to escape the dark ages of rule-by-Electron. See Bitwarden&#x27;s recent fumble of a redesign.
    • WD-424 hours ago
      I take it back. This project is pure slop <a href="https:&#x2F;&#x2F;github.com&#x2F;duanebester&#x2F;gooey&#x2F;blob&#x2F;main&#x2F;docs&#x2F;architectural-cleanup-plan.md" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;duanebester&#x2F;gooey&#x2F;blob&#x2F;main&#x2F;docs&#x2F;architec...</a>
      • porphyra4 hours ago
        Well, the big CLAUDE.md there is a giveaway that it was AI generated:<p><a href="https:&#x2F;&#x2F;github.com&#x2F;duanebester&#x2F;gooey&#x2F;blob&#x2F;main&#x2F;CLAUDE.md" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;duanebester&#x2F;gooey&#x2F;blob&#x2F;main&#x2F;CLAUDE.md</a><p>But still, the project solves a legit pain point. And the author seems pretty hands-on with steering the technical implementation details.
  • Erenay095 hours ago
    It is great to see the Zig ecosystem growing, even though it was achieved by AI. I wish humans had done it, but I do not wanna start a debate between those who arent fans of AI and those who are.
    • john_alan5 hours ago
      yep, dripping in AI.<p>It&#x27;s a real problem, so many projects are adding features at breakneck speed, but with so many bugs and so little understanding.<p>Maybe that&#x27;s just how it all works now, but I don&#x27;t like it.
  • kristoff_it5 hours ago
    Another Zig GUI project that people might be interested in is DVUI:<p><a href="https:&#x2F;&#x2F;github.com&#x2F;david-vanderson&#x2F;dvui" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;david-vanderson&#x2F;dvui</a>
    • atmikemikeb1 hour ago
      DVUI is I think the most mature zig gui project, and a very good immediate-mode approach imo. Here&#x27;s a recently released open source project built on DVUI in zig: <a href="https:&#x2F;&#x2F;fizzyed.it&#x2F;" rel="nofollow">https:&#x2F;&#x2F;fizzyed.it&#x2F;</a>
  • jbritton3 hours ago
    I wasn’t clear from the description if text rendering is GPU accelerated, or in my case drawing quads from an atlas of characters in a texture is probably more efficient.
  • cookiengineer6 hours ago
    Sadface :-(<p>(Author of Gooey [1], a GUI framework for WebASM in Go)<p>[1] <a href="https:&#x2F;&#x2F;github.com&#x2F;cookiengineer&#x2F;gooey" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;cookiengineer&#x2F;gooey</a>
    • noelwelsh5 hours ago
      I also have one [1]. It&#x27;s a good name :-)<p>[1]: <a href="https:&#x2F;&#x2F;github.com&#x2F;creativescala&#x2F;gooey" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;creativescala&#x2F;gooey</a>
      • persedes5 hours ago
        not the maintainer, but at first I thought it was python :D<p><a href="https:&#x2F;&#x2F;github.com&#x2F;chriskiehl&#x2F;Gooey" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;chriskiehl&#x2F;Gooey</a>
        • anitil2 hours ago
          I&#x27;ve always loved this project, I&#x27;ve used it a lot for making my scripts into internal tools for everyone in the team, even non-technical staff
      • cookiengineer5 hours ago
        We need to make a gooey family of UI frameworks!
    • Findecanor5 hours ago
      I have also found a UI framework in C++ with OpenGL named Gooey (2008-ish).<p>And in early 2000, I was in a mailing list for designing a successor&#x2F;replacement to X11, code-named &quot;Gooey&quot; that never went anywhere.
    • minraws4 hours ago
      ooof I did have the nagging feeling I had seen a gui thing with that name before.
  • vova_hn27 hours ago
    &gt; Inspiration<p>&gt; GPUI - Zed&#x27;s GPU UI framework<p>Cool, but a comparison would also be very helpful.<p>If I decide to make a GUI app with Zig, how do I choose between Gooey and GPUI?<p>So far, all I know that GPUI is more mature and has at least one successful project built with it, so...<p>Also:<p>&gt; Gooey: Turn (almost) any Python 3 Console Program into a GUI application with one line<p>&gt; <a href="https:&#x2F;&#x2F;github.com&#x2F;chriskiehl&#x2F;Gooey" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;chriskiehl&#x2F;Gooey</a>
    • shorsher7 hours ago
      GPUI is written in Rust, so in this specific case the decision is already somewhat made for you.
    • torginus6 hours ago
      If I remember correctly, Zed&#x27;s framework didn&#x27;t set the goal of being able to draw arbitrary graphics&#x2F;UI and by constraining that, it basically managed to represent everything with quads and distance fields in shaders, which reduced draw calls and GPU state management to a minimum.
    • ssernikk7 hours ago
      &gt; how do I choose between Gooey and GPUI?<p>GPUI is for rust, not zig
    • mgrandl7 hours ago
      I mean GPUI is rust and Gooey is Zig so if you wanna do a project in Zig you probably wouldn’t choose GPUI.
  • AbuAssar2 hours ago
    Could have named it Zooey
    • spartanatreyu1 hour ago
      Since it was spat out by an LLM, why not: Sloppy?
  • amelius6 hours ago
    Nice work but honestly I haven&#x27;t seen convincing arguments for writing medium to large GUI applications in a language that has no automatic GC.
  • mawadev4 hours ago
    I have to say it: Zig devs are on another level
    • porphyra4 hours ago
      It was made with AI though: <a href="https:&#x2F;&#x2F;github.com&#x2F;duanebester&#x2F;gooey&#x2F;blob&#x2F;main&#x2F;CLAUDE.md" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;duanebester&#x2F;gooey&#x2F;blob&#x2F;main&#x2F;CLAUDE.md</a><p>That said, it fills a legit hole in the ecosystem and the author seems to be hands-on with the technical direction.
    • randypewick3 hours ago
      Why? This was AI-made and inspired to Zed editor GUI toolkit, egui, so it&#x27;s mostly a derived work.<p>What&#x27;s so special about Zig dev that puts them aside from the giants they stand on?
  • Sakamitsu3 hours ago
    [dead]