7 ms·
Simplicity of IRC
- zzo38computer 4y agoI also think that IRC is better than the other protocols for these reasons, and I had also used nc, telnet, etc. IRC has the advantage, you can use the IRC even without specialized IRC software, due to that.
- baisq 4y agoI have also enjoyed and developed for irc a lot, but it's time to move on.
- outworlder 4y agoMove on to what, though? Please don't say Slack or Discord. I'm rooting for Matrix, personally.
- welterde 4y agoMatrix is still kinda rough though. And there is no real lightweight homeserver implementation yet that I could find. Client situation is not much better. Maybe I am not the target audience, but I just want a simple, lightweight and minimalist client. The only thing that comes close is gomuks and maybe the matrix-plugin for weechat (a irc client), but both are extremely buggy right now for me.
- lrvick 4y agoTry Dendrite. It is the light server you are looking for. For a minimalist client try weechat.
- floren 4y agoHave you done a Synapse -> Dendrite migration? I'd like to check it out, but there's a strong temptation to just leave things alone now that I have a working Synapse installation.
- zaik 4y agoMaybe you should have a look at the XMPP internet standard.
- toast0 4y agoBeing a hermit.
- wrayjustin 4y agoNostalgia is a hell of a drug. But IRC still has a place in the modern _hacker_ landscape.
- shadowofneptune 4y agoI loved using IRC up to around 2016 or so. The main annoyance was that it fails to deal with mobile networks. Newer instant messengers allow you to see conversations you missed, something that also makes it hard to go back. I've yet to try Matrix, as Discord is all right for the time being. How does it handle these issues? EDIT: Also, how does Matrix handle large communities? I'm interested not just in the user side but the moderator side of things.
- yjftsjthsd-h 4y agoDon't you just use a bouncer?
- cykros 4y agoOr irssi/weechat inside of a screen/tmux session on a host with ssh to attach/detach at will?
- userbinator 4y agoIndeed. In the decentralised spirit of IRC, if you want a client to maintain a persistent connection and/or log while you're away, you need to run one yourself.
- shadowofneptune 4y agoI had never heard of one, so I never used one. I also would have thought of leaving my computer on all day just for IRC as ridiculous. I imagine I can't be alone with that, the simplicity of IRC has its costs. Does Matrix have support for it then, or not?
- kragen 4y agoI wrote an IRC client in 40 lines of bash once: https://www.mail-archive.com/kragen-hacks@canonical.org/msg00180.html https://www.mail-archive.com/kragen-hacks@canonical.org/msg0...
- Karunamon 4y agoTo hopefully short-circuit a lot of pointless endlessly rehashed debate: Things IRC is better at: – being light weight (both server and clients) – being an open standard – horizontal scaling – simplicity (talk to it over telnet if you want) Things every other modern messaging solution is better at: – name and channel management – permissions that are more granular than ability to access a channel or not – non-textual content (images/video/emoji) – rich text (HTML/markdown/syntax highlighting/typefaces/fonts) – one to one/many to many calls and meetings in a world with everyone behind a NAT and middleboxes – file transfers – screen sharing – mobile connectivity – threading – message history/ability to receive messages while not online – aesthetics and UX (most IRC clients resemble TUI apps) – accurate presence (whether a given person is actually available or not, attempts to paper over missing IRC features with things like bouncers usually break this and the offered features are usually more granular than connected or not connected) – extensibility (/commands and "chatops") – abuse control and prevention Things that do not matter to the world at large: – That you personally are not a fan of the modern solutions and/or find them distracting – That modern messaging solutions are centralized rather than distributed – That a new IRC standard is on the way that addresses most of IRC's deficiencies… Two decades too late. – Privacy policies and TOSes that allow platform owners to target ads at users or "sell their data" – That a variety of clients for each service is not available – The availability of and license to the source code for the client and server Reasons why (insert name of decentralized project) is unlikely to displace the centralized incumbents anytime soon: – Their UX is worse or they are lacking a significant number of features – Users don't want to run servers or deal with technical minutia, and the alternative requires these – The problems this project solves are mostly on the list of things that do not matter to the world at large
- thakoppno 4y agogreat breakdown any conclusions you can think to highlight given all that. for instance when would you choose one or the other?
- Karunamon 4y agoThe only time I would personally choose IRC is if my use case targeted retro systems with limited CPU/ram/network connectivity, or I am integrating with something that uses IRC for some reason (like the back end for Twitch chat). If I actually cared about decentralization above other concerns, my next choice would be Matrix. For literally all other use cases, I would be on Discord or Slack. Users are likely already familiar with it, likely already use one or both, and I'll have to answer a lot fewer technical questions.
- togs 4y agoIRC is scary. I had my hostname as <real name's><device>, and when I logged in it just...showed my real name and IP address.
- pluc 4y agoThat was a big worry back then when you could nuke/portscan people with only their IPs. It's not so much nowadays and chances are when you see your hostname unobfuscated, you're the only one that does so (/whois other people). Most IRCds will have a host replacement mechanism for privacy and just general good-behaviourness.
- userbinator 4y agoIt's worth noting that the once-widely-used MSN Messenger protocol (MSNP) was just a slight step up in complexity in its early revisions, and even resulted in an IETF draft: https://datatracker.ietf.org/doc/html/draft-movva-msn-messenger-protocol-00 https://datatracker.ietf.org/doc/html/draft-movva-msn-messen... Up until the late 2000s there were plenty of thirdparty clients in use and they could all interoperate reasonably well, although MS started turning later versions of the protocol towards a bloated XML-filled mess.
- woodruffw 4y agoIRC is antiquated in most of the ways that matter, but there's one thing it has that I continue to miss in every other chat platform I've had to use: painless automation. I spend a lot of time in Slack for work, and maybe half of that time is manually connecting pieces of data (who should I ping for a review on X? what's Y's email address or other contact information?) that I could trivially script with an IRC bot that listens for prefixed commands. I know I can do that with Slack Apps (or whatever else), but just looking at them gives me anxiety: there's tokens, and webhooks, and all kinds of ambiguously permanent or ephemeral state that's going to eventually break or expire. IRC bots, by contrast, have virtually no cognitive overhead: the only moving parts are the socket, and maybe a username and password for server authentication. Ultimately, the tradeoffs are probably the right ones. But whenever I find myself chatting on IRC outside of work, I can't help but think of what would be possible if our "serious" chat services were just a little more hackable.
- Karrot_Kream 4y agoMatrix makes it fairly easy to grab an app token and start development, FWIW.
- woodruffw 4y agoYeah, I get the impression (from talking to IRC expats) that Matrix gets a lot of things right. One day I'll give it a try.
- Gigachad 4y agoMatrix is simple enough that I can interact with it through curl in a terminal. It’s technically possible but much harder to use irc like this.
- kragen 4y agoUsing IRC without an IRC client doesn't seem very hard to me: $ telnet irc.libera.chat 6667 Trying 2a01:270:0:666f::1... Connected to irc.libera.chat. Escape character is '^]'. :lead.libera.chat NOTICE * :*** Checking Ident :lead.libera.chat NOTICE * :*** Looking up your hostname... :lead.libera.chat NOTICE * :*** Couldn't look up your hostname :lead.libera.chat NOTICE * :*** No Ident response user ircuser host.example.com irc.libera.chat :ircuser anon2317 nick anon2317 :lead.libera.chat 001 anon2317 :Welcome to the Libera.Chat Internet Relay Chat Network anon2317 ... :lead.libera.chat 376 anon2317 :End of /MOTD command. :anon2317 MODE anon2317 :+iw join #matrix :anon2317!~ircuser@2800:[censored] JOIN #matrix :lead.libera.chat 332 anon2317 #matrix :The Official Matrix HQ - chat about Matrix here! | https://matrix.org/docs/spec | To support Matrix.org development: https://patreon.com/matrixdotorg | Looking for hosting? Check out https://upcloud.com/matrix! | Code of Conduct: https://matrix.org/legal/code-of-conduct/ | This is an English speaking room | :lead.libera.chat 366 anon2317 #matrix :End of /NAMES list. privmsg matrix :hello, I am using IRC with telnet :lead.libera.chat 401 anon2317 matrix :No such nick/channel privmsg #matrix :hello, I am using IRC with telnet privmsg #matrix :this is probably a little harder than using Matrix with cURL? privmsg anon2317 :hello myself :anon2317!~ircuser@2800:[censored] PRIVMSG anon2317 :hello myself privmsg anon2317 :the #matrix channel seems a bit quiet :anon2317!~ircuser@2800:[censored] PRIVMSG anon2317 :the #matrix channel seems a bit quiet list -min 300 :lead.libera.chat 321 anon2317 Channel :Users Name :lead.libera.chat NOTICE anon2317 :Invalid parameters for /LIST :lead.libera.chat 323 anon2317 :End of /LIST list -minusers 300 :lead.libera.chat 263 anon2317 LIST :This command could not be completed because it has been used recently, and is rate-limited. :lead.libera.chat 323 anon2317 :End of /LIST :dsrt^!~dsrt@[censored].hsd1.ga.comcast.net JOIN #matrix mode #matrix :lead.libera.chat 324 anon2317 #matrix +Cnt :lead.libera.chat 329 anon2317 #matrix 1621432229 privmsg #matrix :hi dsrt^, how are you? privmsg alis :help list :alis!alis@services.libera.chat NOTICE anon2317 :***** alis Help ***** :alis!alis@services.libera.chat NOTICE anon2317 : :alis!alis@services.libera.chat NOTICE anon2317 :Help for LIST: :alis!alis@services.libera.chat NOTICE anon2317 : :alis!alis@services.libera.chat NOTICE anon2317 :LIST gives a list of channels matching the ... :milkt!~debian@gateway/tor-sasl/milkt QUIT :Remote host closed the connection privmsg alis :list * -min 300 :alis!alis@services.libera.chat NOTICE anon2317 :Returning maximum of 64 channel names matching '*' :alis!alis@services.libera.chat NOTICE anon2317 :##chat 445 :Welcome to ##chat, a social and offtopic channel for sensible conversations. Mind the language. | THIS IS A POLITICS-FREE ZONE! You have been warned. | Rules: https://pastebin.com/raw/ntTcx2xb | We reserve the right to remove annoying people | Free Speech: https://xkcd.com/1357/ | In case of PM spam, '/mode your_nick_here +R' :alis!alis@services.libera.chat NOTICE anon2317 :##electronics 484 :http://electronicschat.org | Introductory electronics eBook: http://www.ibiblio.org/kuphaldt/electricCircuits/ | Battery information: http://batteryuniversity.com/ | Soldering: http://tinyurl.com/y8p8lfp9 | Welcome to electronics! | <HexaCube> maybe i can afford a beard implant soon | tawr> oh no, i just found out how dumb i am ... join #chat :lead.libera.chat 470 anon2317 #chat ##chat-overflow :Forwarding to another channel :anon2317!~ircuser@2800:810:473:10f1:711f:4bae:293e:3a03 JOIN ##chat-overflow :lead.libera.chat 332 anon2317 ##chat-overflow :If you find yourself here trying to join ##chat, please identify and try joining ##chat again (reference '/msg nickserv help identify' and/or '/msg nickserv help register' for assistance). This is to help curtail spam, we apologize for the inconvenience | SASL is preferred https://libera.chat/guides/sasl ... part ##chat-overflow :anon2317!~ircuser@2800:810:473:10f1:711f:4bae:293e:3a03 PART ##chat-overflow join ##electronics :lead.libera.chat 477 anon2317 ##electronics :Cannot join channel (+r) - you need to be logged into your NickServ account join #c :anon2317!~ircuser@2800:810:473:10f1:711f:4bae:293e:3a03 JOIN #c :lead.libera.chat 332 anon2317 #c :C Programming Community | Paste (>3 lines): https://bpa.st/ or http://sprunge.us/ | Wiki: http://www.iso-9899.info/ | Books: http://www.iso-9899.info/wiki/Books | C2X Charter: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2086.htm | Standard: http://iso-9899.info/wiki/The_Standard | Off-topic: #c-offtopic | C11 trivia game: #c-jeopardy :lead.libera.chat 333 anon2317 #c pragma- 1634682891 ... :lead.libera.chat 366 anon2317 #c :End of /NAMES list. privmsg #c :hi there. I wrote this Karplus-Strong string-instrument synthesizer in one line of C: s[72]={512};main(i){for(;;i%=72)s[i]+=s[(i+1)%72],putchar(s[i++]/=2);} privmsg #c :is this valid in ANSI C?:twkm!twkm@rfc1459.net PRIVMSG #c :wow, 1 line! privmsg #c :You can pipe :sysRPL!~sysRPL@[censored].res.spectrum.com PRIVMSG #c :i think i got it .... cmake -DWIN32=1 its output to aplay on Linux :twkm!twkm@rfc1459.net PRIVMSG #c :not i. :sysRPL!~sysRPL@[censored].res.spectrum.com PRIVMSG #c :.. /usr/bin/x86_64-w64-mingw32-ld: cannot find -ldl ? :sysRPL!~sysRPL@[censored].res.spectrum.com PRIVMSG #c ::( :twkm!twkm@rfc1459.net PRIVMSG #c :you might need to compile it, or install it. :progandy!~progandy@user/progandy JOIN #matrix PING :lead.libera.chat :sysRPL!~sysRPL@[censored].res.spectrum.com PRIVMSG #c :twkm: can you help me fix the error i posted above? PONG :lead.libera.chat :sysRPL!~sysRPL@[censored].res.spectrum.com PRIVMSG #c :i am trying to cross compile on linux to create a windows static library :sysRPL!~sysRPL@[censored].res.spectrum.com PRIVMSG #c :using mingw ... but it looks like it's trying to use the linux dl library privmsg #c :hmm, that sounds like it won't work :) privmsg #c :I don't have any experience getting CMake to use mingw :Viscometer!quassel@gateway/vpn/airvpn/viscometer JOIN #matrix :sysRPL!~sysRPL@[censored].res.spectrum.com PRIVMSG #c :i am going to hate having to setup a windows computer to get this to build privmsg #c :hmm, has nobody really ever gotten CMake to cross-compile things? :sysRPL!~sysRPL@[censored].res.spectrum.com PRIVMSG #c :sure they have i am sure :sysRPL!~sysRPL@[censored].res.spectrum.com PRIVMSG #c :the glfw even has a mention of it :sysRPL!~sysRPL@[censored].res.spectrum.com PRIVMSG #c :unfortunately it's just a mention, not a guide It's a little verbose, but the only really tricky part is that you need to answer pings within four minutes or you ping out, and other people's messages may appear in the middle of the line you're typing. (It's helpful to know that ^R redraws the line. Better still, use Emacs shell-mode.) And you need to know the USER and NICK commands, and type or paste them before the server times you out. Oh, and if you leave out the colon, only the first word of your message gets through, which is pretty confusing to figure out if you don't have another client on the same channel. What does it look like to have a Matrix conversation with curl in a terminal?
- lemming 4y agoI mean, the protocol may be simple, but the UX is anything but. I've been around the block, but I find IRC incredibly opaque. Don't want to miss messages? You need a bouncer, which means you need a server somewhere, and then this pretty much sums that up: https://news.ycombinator.com/item?id=32326145 https://news.ycombinator.com/item?id=32326145. Registering nicknames on a server and reconnecting to them reliably so I get a consistent username is something I never managed. And the list goes on and on... I managed to use it, but "simple" is not the word I would use to describe the experience.
- antiterra 4y agoIRC may be simple but there were massive amounts of pain back in the early days. If you joined a server that was temporarily disconnected from a peer, you could get operator status on an empty channel that then carried over when the server reconnected to the larger network. Chanserv/Nickserv are bolted on solutions for any kind of permanence. Messages delivered late are not recognizably late. There’s no threading etc. What I thought worked remarkably well, however, was the loose structure formed by students/employees who were in charge of their university or ISP hosted server. They weren’t given heavy scrutiny but still had some accountability to a larger organization. It somehow bridged the gap between complete independence and central control.
- iam-TJ 4y agoOne aspect I don't see mentioned much, if at all, is that the "C" in "IRC" stands for "chat", and that, to me, has always equated to in-real-life chats. If I'm not present when friends are chatting I don't get to replay what they were saying before I arrived, or after I leave. I think that is the fundamental disjoint - features are attributed to IRC that were not intended, and then attempts to bolt them on through services, bouncers, or whatever, is never going to create a seamless rich experience that many seem to want. For me, IRC has always been the avenue for mostly throwaway, real-time at-this-moment off-the-top-of-my-head stream-of-consciousness discussion, with Usenet or forums and email mailing lists for more long-running considered and logged discussions. I've never been impressed or attracted to products that try to force the two styles together.
- Gigachad 4y agoThis is what people use voice chat for. Text chat is meant to be async.
- iam-TJ 4y agoI disagree when considered in the context of what we use IRC for 'traditionally' - hundreds of people able to share logical information, code, URLs, and more particularly on a very low bandwidth medium. Can't do that in voice chat. In the usual case of IRC channels the contributors are in the minority and so it can take the form of a voyeuristic learning experience for the passive bystanders - and very highly educational most of the time.
- Gigachad 4y agoI can’t think of a single use where I need ultra low data transfer and can’t accept chat backlogs. It’s no wonder IRC usage is in constant decline when that is the target user.
- II2II 4y agoThe low data transfer bit is probably mostly irrelevant these days, though I would imagine that it would be useful for people with minimal mobile data plans. As for chat backlogs, your client can log communications while you are online. Some people find that more desirable since they always know who they are speaking to. That is especially important since anyone can join an open channel at any time. If something that you found interesting came up on a channel you frequented, but while you were not in the channel, someone would copy it from their scrollback buffer for you (often without your even asking). That being said, I doubt those two criteria define the target audience. As the author notes, IRC is great because its simplicity offers a great deal of flexibility. Anyone could make an IRC client or bot with minimal effort. Even for those who do not write software, it is advantagous. There were many IRC clients because of that, meaning one could choose a client that reflects their needs and tastes. The problem is that most people want something that is easier to use, and for most people that means they don't want to deal with choosing a client nor do they want to deal with setting up their client (notably, selecting a server).
- opan 4y agoRe: bouncer discussions My approach is irssi in tmux on a server. A full real client always running, used via ssh, same experience on a phone or computer. As a bonus I have a lot of power I wouldn't have in a separate phone app. I can search my logs at the source with less, grep, etc. I can copy lines of scrollback with tmux copy mode, I can use all my irssi aliases and scripts to do things like send delayed messages and set reminders or print out what song I'm playing or what the weather is. My email client and torrent client are accessible in the same tmux session. It all just works quite well no matter how I'm connected. I hear a lot of bad things about configuring bouncers (mostly znc), and have been told before by a friend that he didn't get all the lines I sent while he was asleep because I sent too many or whatever other reason. Bouncers largely seem jank. My irssi + tmux setup makes sense to me and has no nasty surprises. I get that to the average person this setup probably seems insane, but if you already have a computer locally or remotely that you leave on, I would recommend it. (optionally substitute irssi for weechat and/or tmux for gnu screen, I just use what I like) Switching gears slightly, I just wanna say that I use IRC, XMPP, and Matrix on a daily basis. IRC continues to be my favorite overall, and has the best clients by far. XMPP and Matrix don't get logging right, don't get chat sorting right, don't get extensibility right, and they just actually crash on me more than most other software I use, oddly. I've heavily used Dino (past), Gajim, and Conversations for XMPP. For Matrix I've tried a lot, but mainly I now use nheko on my PC and element on my phone (I have fluffychat too, but it doesn't seem dramatically better).
- spike021 4y agoAlternatively, I just have weechat in a tmux on a super cheap digitalocean instance. Easy to SSH and attach to the tmux session as needed, although I've been meaning for years to use Mosh instead of SSH for easier connectivity.
- abotsis 4y agoAh. #linuxwarez on efnet was where I spent my late teens. Anyone know of any log services that’re still running that have archives back that far?
- locusofself 4y agoI had this exact experience as a young teen, writing sockets and parsing the IRC protocol. Fun memories. I really do miss the internet culture of that era.
- dang 4y agoSimplicity of IRC - https://news.ycombinator.com/item?id=29862550 https://news.ycombinator.com/item?id=29862550 - Jan 2022 (244 comments)