IRC, the protocol, is really simple. It's so simple it's almost the most minimal chat protocol you could possibly layer on top of TCP - it's literally a live message routing protocol with the least support for the notion of persistent users possible.
There was a joke on bash.org that IRC is basically multiplayer Telnet and ... they aren't really too far off.
This has good and bad things about it:
Good: it's extremely flexible.
Good: it's extremely efficient - your major IRC servers at there peak were probably one machine, possibly single core, and handled 20,000+ active connections. Protocol is extremely proxyable and tunnelable.
Good: It works well over dialup. If you can get .002Mbit/sec between you and the server you can use IRC.
Bad: no real concept of identity - everything is based on IP addresses and current connections. Connection drops, you're gone. Things have arisen to address this (NickServ, etc.) and using a bouncer has always been a thing.
Good: no real concept of identity - if your IP is cloaked or you're not accessing from your home IP, you're very anonymous.
Bad: First user on a channel is it's op and it's owner and can control the channel. If all ops connections drop, someone can take it over. DoSes/DDoSes to disrupt channels have been a thing. Things have arisen to address this on modern IRC (ChanServ) but before then, any really serious channel had to have a network of bots with out-of-band coordination to protect it (eggdrop).
Bad: Doesn't support file transfer directly. This is done with another protocol DCC which is hard to work with over firewalls, etc.
Bad: Media and link support is up to clients and requires non-IRC protocols to be effective. You're not posting pictures in IRC channels unless you are using a client that supports it such as thelounge, and even then what thelounge does is upload your pictures to a local server.
Good: Mature IRC clients give you a lot of control.
Bad: Mature IRC clients are complicated.
Bad: IRC is one of those protocols that arose before encryption was considered a basic need. Modern IRC supports SSL but all it takes is one client connecting non-SSL to ruin it like email, unless the server is SSL only.
Bad: Mature IRC servers tend to be from the age where the Internet was ruled by universities. So, DNS is relied on for security and identity far more than it should be. Configuration of mature IRC server daemons I find somewhat complex and difficult.
There was a joke on bash.org that IRC is basically multiplayer Telnet and ... they aren't really too far off.
This has good and bad things about it:
Good: it's extremely flexible.
Good: it's extremely efficient - your major IRC servers at there peak were probably one machine, possibly single core, and handled 20,000+ active connections. Protocol is extremely proxyable and tunnelable.
Good: It works well over dialup. If you can get .002Mbit/sec between you and the server you can use IRC.
Bad: no real concept of identity - everything is based on IP addresses and current connections. Connection drops, you're gone. Things have arisen to address this (NickServ, etc.) and using a bouncer has always been a thing.
Good: no real concept of identity - if your IP is cloaked or you're not accessing from your home IP, you're very anonymous.
Bad: First user on a channel is it's op and it's owner and can control the channel. If all ops connections drop, someone can take it over. DoSes/DDoSes to disrupt channels have been a thing. Things have arisen to address this on modern IRC (ChanServ) but before then, any really serious channel had to have a network of bots with out-of-band coordination to protect it (eggdrop).
Bad: Doesn't support file transfer directly. This is done with another protocol DCC which is hard to work with over firewalls, etc.
Bad: Media and link support is up to clients and requires non-IRC protocols to be effective. You're not posting pictures in IRC channels unless you are using a client that supports it such as thelounge, and even then what thelounge does is upload your pictures to a local server.
Good: Mature IRC clients give you a lot of control.
Bad: Mature IRC clients are complicated.
Bad: IRC is one of those protocols that arose before encryption was considered a basic need. Modern IRC supports SSL but all it takes is one client connecting non-SSL to ruin it like email, unless the server is SSL only.
Bad: Mature IRC servers tend to be from the age where the Internet was ruled by universities. So, DNS is relied on for security and identity far more than it should be. Configuration of mature IRC server daemons I find somewhat complex and difficult.