IRC bots are written in all sorts of programming languages. Scripting languages are often more popular choices as their higher level nature tends to aid rapid development. Some of the more popular choices of languages for bot development are python, ruby, and perl. Many developers often choose to simply write plugins for existing bots. Popular choices include supy (python) and mozbot (perl).
To speed up development when creating a bot from scratch it may be useful to use an existing IRC library.
For those creating their bot from scratch a useful starting point is to examine how the IRC protocol works. Try connecting to a network through telnet, for example on *nix based systems:
$ telnet irc.libera.chat 6667 Trying 188.8.131.52... Connected to irc.libera.chat Escape character is '^]'. :adams.libera.chat NOTICE * :*** Looking up your hostname... :adams.libera.chat NOTICE * :*** Checking Ident :adams.libera.chat NOTICE * :*** No Ident response :adams.libera.chat NOTICE * :*** Found your hostname