← Back to context

Comment by oooyay

5 hours ago

You might like the IRCv3 client I build at https://github.com/matt0x6f/irc-client. It's highly capable and modern but limited in its resource footprint and quite zippy. PRs welcome as well.

> The interface is built with React and Tailwind CSS

ಠ_ಠ

  • heh, I'm not sure of your particular beef with these two but I'll use this as an opportunity to explain my rationale.

    I obviously write a lot of code in Go but as a language it's also a really nice pairing with the IRC protocol. The way you write abstractions and tests just lends itself so well to writing desktop applications. On the other hand, writing UIs in Go (which I've tried in a multitude of ways) is just a really poor fit because asking Go to emulate Elm architecture is very clunky.

    From my perspective, UIs are side effect driven code and demand a language that can fit that paradigm not just well, but great. Anything else I would or could have chosen would've required way more CGO dependencies than I have (of which I only have 1 atm) and would have read worse when I tried to hook it into Go.

    Conversely, Wails' bridge to Typescript and React is very simple to use, reliable, and keeps up with the performance and consistency demands on an IRC client. Tailwind is also just very good at making compatible CSS; I was inspired by the use of QT in modern car infotainment systems in my selection of a component-based CSS approach.

    Lastly, the whole thing is compiled into the binary that you download and makes no external calls on its own. It's all built on top of the OS WebView rather than a third-party browser the way, say, Electron is.

    • My beef is around your comment where you stated "limited in its resource footprint". Sure, Wails is lighter compared to Electron, but it's still not as lightweight or efficient as a native app. I personally wouldn't pitch it as a "limited resource footprint" app.

      3 replies →

You forgot to say “Written in Go” /s

I’ve been checking your client for a while and it looks awesome, thanks for the reminder, finally after 30+ years I think I really got tired and left IRC for good but I’ll download and give it a go later today.