Clients
Pidgin or XChat (IRC)
These days the users of XChat seem to be migrating to a maintained fork and perhaps MSWindows-centric project named HexChat, a project spawned after development on XChat slowed to a single developer and affectively ended in 2010. Either of these clients is better than the proprietary mIRC client which is free as in free beer and may be refered to as ‘Freeware’ by some, a term which should be no means be mistaken as standing for Freedom for the user. Since mIRC’s source code can not be seen, modified, compiled and shared by anyone it is non-free and I would never recommend it even if there weren’t already awesome clients whose code is free, which there are.
XChat & Hexchat, both bundled together in this description due to them being nearly identical due to Hexchat’s slow development pace likely due to XChat already being effectively feature-complete; these clients are built specifically for multi-channel chat with many other users, they contain every reasonably imaginable feature for IRC
The program I use for my Internet Relay Chat & Instant Messaging purposes is called Pidgin, released under the GNU GPL (version 2 or later). Pidgin supports the typical array of multi-protocol client protocols you’ll usually find these days including XMPP & IRC as-well as a host of proprietary services, the client doesn’t suffer any missing features for letting you use these typical protocols and is extensible through plugins and themes.
Servers
Apache2 or nginx (Webservers)
Pre-nginx the domain of webservers on Free Operating Systems such as GNU/Linux belonged to Apache2 except in exceptional use-cases that arise with special-load services or high-traffic websites. Despite this it is often the case with enthusiastic server admins to-be to ask whether they should use the newer and faster software and I would say the answer here is not really, no.
The Apache Software Foundation’s Apache HTTPD occupies around 50%-60% of all public webservers, this is in part due to it’s easy set-up process of installing and running, it’s strong integration with the widely-used PHP server-side scripting lanauge which means installing apache2 means you instantly have a fully-operational webserver capable of processing your server-side website programming. As a result of it’s popularity the web is full of FAQ’s with answers galore for any question someone starting out might want.
On the other hand there is the relative newcomer nginx(stylised with lowercase when typed), this server software was started to fufil the needs of a heavy traffic website and remains the best choice for that scenario. The trade-off is that nginx requires much more configuration, this is made more difficult by the fact the software is newer and less documented, though many devs have weblogged of their experiences and wiki.nginx.org has plenty of resources. The configuration reason doesn’t just refer to time consumptions setting up, it also means there is more to maintain which means more to go wrong and the important thing to remember is that Apache2 can handle anything you can reasonably throw at it, up to hundreds of connections, there isn’t much reason for now to use nginx unless you’re running out of RAM, Apache2 is running your CPU high or your site is having problems handling the loads it gets.
To put the reason behind it’s performance simply; Apache2 loads a process for every connection to it that loads an instance of each programming language configured to be used and leaves it all there until the request is processed and closed, which means Get request, process scripts, send responce, get ‘OK’ to close connection; nginx loads and discards these resources as needed [citation needed].