
ew
"since the Zulip installer takes care of everything, even installing system software like a Postgresql database,"
ew gross. Why? Why not just provide a .deb and a .rpm?
IRC is crusty, ancient, and still far and away the best group chat system currently available. IRC is the best chat system precisely because it is a system. It is a protocol, not just an app, and even better it is a loosely federated protocol. The IRC system is a federated protocol around which a galaxy of clients (apps if you …
So include those in the package. There are mechanisms for managing Python dependencies so you can deal with outdated systems. Alternatively, have the installation process rely on those dependencies and then check at install time whether they're met satisfactorily. If not, you can still do the full install method.
Even with that, there's no need for it to install a database server for you. Make it clear it needs a Postgres installation, and ask for credentials just like everything else which has a database does. A user can easily install the database from their package repositories and let the install scripts do all the setup if they don't want to manage that themselves.
it's sad to see how few people even know what IRC is these days, and most organisations just automatically adopt whatever cruft Microsoft throws at them as default in Office. When managers and senior developers in tech companies ask me what git is, and whether it's "some kind of facebook thing like slack", my soul dies a little more each day.
I've also tested many different options like Slack, rocket.chat, mattermost and some other(s) that I already forgot and Zulip was clearly the best of the bunch.
The problem is it's strength (the topics) would not go down well to non-technical users who are used to twatter and faecesbook and want to just fart their messages out.
Nonetheless some day I will force it for the users. Would save a few thousand per month and it might even integrate with the on-prem directory service.
I encourage everyone to try Zulip.
Another good alternative to the disorganised chaos of Slack and IRC is Twist (https://twist.com). It's like an even-more-organised version of Zulip. It's fully thread-based, and provides each thread with its own home. Much calmer and more useful long-term than something like Slack or Discord. It's not open-source but, apart from that, well worth checking out. It's about the same price as Zulip (a bit cheaper, actually) but you can't self-host.
(No connection other than being a user!)
My only issue with matrix is that the client is buggy and the devs just seem weird.
I raised a defect report which meant that essentially the iOS app was unusable (IIRC it actually made portions of messages unreadable/blank with no workaround other than “use a different client”) and this wasn’t prioritised as a showstopper. Not only wasn’t it fixed in the next release but I dunno if it even got fixed, and this was no minor annoyance of a bug- it manifested in almost every conversation.
One would have thought that losing incoming text into a permanent abyss might be something of a problem for a communication program, but no, apparently not.
The dev team also annoy me by bizarrely using TestFlight backwards. They release the iOS app to the App Store and then release the same build on TestFlight, uh, for… testing?
For me, IRC is actually getting better again. All the added "noise" has moved onto Slack, Discord, etc.
Back when I first started using it ~2000, there was pretty much just as many knowledgeable people on there as there is today 20 years later.
I.e if you go into a 3D graphics channel, I find the quality of discussion much better. Mainly because those who want quick thrills (No offense to you Unity3D guys!) would simply be on another media and won't be cluttering up the room.
"Why need server for peer-to-peer chat? Why not keep list of friends like email address book?"
Because most chat systems allow someone to join. That means the person joining needs a place to contact with a request to join and everyone involved would need to update addresses. If you have ten nodes in the network, that's ten possibilities to have different contact lists until they all figure out what they're doing and sync it. If you send big messages (files mostly), then you need to send ten copies even if nine of the people don't intend on using it. Also, you need to relearn everybody's IP addresses each time they change, which can be a lot if using the IPV6 privacy extensions or on an unstable IPV4 network.
"Then we need to little more than give our mail/address book apps a chat protocol alongside mailto/pop3/smtp/webmail/blahblahblah."
You can put the chat protocol into your mail client if you want to. It won't do that much other than keeping it all in one process.