Three years later, I’ve made new friends who have become core contributors, and there are now over 200 people idling in our #halloy channel on Libera.
My hope is that this client will outlive me and that IRC will live on.
Really impressive work though, you should be proud!
Thanks for making a client.
I remember being a high school student and having an amazing physics conversation on IRC that included a description of Flatworld that really fascinated me.
https://netsplit.de/channels/?net=Libera.Chat
There are some other nets listed on that site with somewhat lower usercounts:
Will give this a go because I would always prefer a native client in the first place and this looks excellent!
Can someone please tell me what special about Rust? Say, why aren't desktop application popular based on say Python?
On tangent, ive seen a lot of terminal base application in typescript and go
The project is even often cited as a good iced_rs code reference repo.
What I like about iced_rs over Qt is that you can write all your code in a single language in whichever style you like. As opposed to Qt which requires you learn an obtuse scripting language (qml) ontop of Cpp and locks performance improvements behind commercial license.
[0] https://iced.rs/
I think I've seen this topic pop up from time to time ;)
For me personally, I've been replacing a lot of my Python programs with Rust. A lot of it isn't much harder to write, and things like sum types are sorely missed when I write Python or most non-Rust languages. And usually, if my Rust program is a lot more difficult to write, it's because I'm exploring an optimization that wouldn't be possible or worthwhile in Python. Having an application be native and compiled is a big plus for me. I plan to release a desktop app in Rust but it isn't at that stage yet.
I think the main reason is that writing Rust is a joy that gives you confidence. This is important to me as I often have small amounts of time to work on it (new dad). With rust I can start implementing a small feature, as long as it compiles I can be reasonably sure it works. In Python I’d be wading through a sea of runtime errors and never quite sure I actually got it right.
Cross platform is another good reason. UI library support is good. You have iced like this app, but also decent GTK bindings.
No runtime needed makes distribution and packaging infinitely easier than Python.
It’s a great language for writing desktop apps.
Or you can just build it in Rust and learn what .unwrap() does.
Seems to still be chugging along. You can even join directly via their web-client: https://freenode.net.
Personally I still use pidgin.im to connect to all the relevant #freenode goodness. Seems people forget it still works and is pretty great even all these years later :).
Due to https://en.wikipedia.org/wiki/Freenode#Ownership_change_and_...
https://github.com/iced-rs/iced
If you're interested in building a GUI app in Rust, I encourage you to go through the examples and showcase apps like halloy
and if you get stuck, can ask our chill and helpful community on Discord https://discord.gg/3xZJ65GAhd
EFNet for life!
Show HN: Halloy – A GUI Application in Rust for IRC - https://news.ycombinator.com/item?id=36535772 - June 2023 (101 comments)
IRC is for people to whom the word "content" sounds right out of Idiocracy. :)
I wouldn't go poking around IRC today looking for random passive content consumption. There's more of that pretty much everywhere else on the Internet.
Go to IRC, in a goal-directed way, if an open source project you use is OG enough to have an IRC channel (rather than a open source backsliding Discord) that you want to access.
If you're involved in IT incident response for a company, there is a chance that running a simple private IRC server that's entirely separate from all your other infrastructure is useful. You'll need to make sure ahead of time that everyone who needs to access it urgently, when everything else is blowing up, will be able to.
A lot of users left freenode in 2021.
Many moved to Libera.chat instead. While others may have moved on from IRC altogether when they left freenode.
I ended up going for Crossover and mIRC
I bookmarked this so hopefully once that effort gets further along I can give it a try!
I figured I'd leave this comment so that some folks can see that there are real people even on HN who require these features and that accessibility work is always appreciated. We definitely exist :)
Halloy is a wonderfully configurable replacement for beloved Mac IRC client Textual, whose development has sadly wound down (now officially, as of last month).
I hope it continues to grow in popularity while keeping performance and privacy at the core.
some of the best ways to build gui's on golang might be gtk golang bindings imo. I haven't tried qt but gtk for linux should work.
I have seen many apps also use golang as backend and flutter as frontend (warp android app wormhole or something and localsend both do this)
The answer is that there are several python GUI applications (a dozen music players, Cura, Calibre, Anki, Deluge, etc). Hardly any Go because all bindings suck (which isn't that surprising, go devs are often hostile to cgo) and there's no (non toy) native toolkit either. I'd don't know why that is. Every few years I look for one but I give up and write the UI for my Go tool in html instead...
Screen reader accessibility is at least on it, although not until the release after next.
But it was introduced in its current sense (not in the protocol sense) by cynical and greedy exploiters, who spoiled much of the goodness of the Internet.
So when a random person casually says something like "consume content", unironically, it's like saying, "it's got what plants crave...".
i dont hang out in #halloy but maybe i should!
In my opinion the problem is more that support for more Toolkits isn't built into Python so you essentially need to deal with another language as well, which sucks when you only know python.
Distributing Python for Windows is even harder than for Linux.
Go is kind of verbose and just a bit hostile towards fancy structural features and complex abstractions. I think rust is kind of the opposite of GO in a lot of ways, even though they theoretically should be targeting a lot of the same use-cases.
If you scroll down to the Features section on the linked page that gives a good overview.
There's also something akin to the Python Paradox here: https://www.paulgraham.com/pypar.html
Rust is an interesting and intellectually stimulating language, it lets you use your brain to write clean and pretty code, and rewards you for making clean powerful abstractions.
Java and Go are both anti-intellectual languages that reward you for turning off your brain and writing the most verbose awful code you can think of, and will leave anyone who has ever studied type-theory with a massive migraine for hours after each coding session (go moreso than java).
I think those two factors, C bindings, and whether they respect the programmer's intelligence, are the main reason.
Ah well. I'll check back on it every now and then either way.
PS: This assumes that you haven't done so. But even if you did, please leave it as a request to everyone else.
It also has terrible navigation on mobile, even for sighted users. I gave up after a few seconds of trying to use it.
AWT - still actually under-pining the others, but very ugly to work with
Swing - basically runs on top of AWT, with the same design model, plays badly with it. Is hard to write in a testable way, is prone to embedding business logic in UI components
JavaFX - all the worst parts of business Java with all the worst parts of XML and also the worst parts of a game engine. Now you need to care about 'adding a scene to a stage'.
The principle core technology that made Java good was applets. Since they were killed by mobile, the reason for delivering a Java app is functionally zero. You will need to ship a JVM which you need to update alongside your app.
Java is a great back-end development language and a really poor GUI language.
These days you should either ship an Electron app or native code.
In hexchat GUI client chat history is locally found in a simple text file, one line per message in .config/hexchat/logs/irc.libera.chat/xxx.log
However I've found no option to create such a log with halloy, am I missing something in the documentation?
I am looking for the exe/msi installers for Windows, in particular, for the more extensive installation options they provide, including start menu entry placement.
Yes, I abhor the Win8/8.1/10/11 start menu, and have been using StartIsBack for a traditional XP-style start menu, along with the All Programs fly-out. Being able to put start menu entries into specific categories allows me to sort and “clean up” the All Programs fly-out so that it isn’t as overwhelming.
And no, I don’t like to just move the All Programs entry, because updates and upgrades of most programs just re-insert the default entry, cluttering everything up. As such, the installer needs to provide the user an option for where to put the Start Menu icons, so that the setting is saved in the registry for updates and upgrades to work with.