# Step 4: Finding a Library for your Language

Now, at this point, you have intermediate knowledge in your language, know how to set up an environment, etc. Now, you can finally get on to making your Discord bot! But, interacting with the Discord API itself can be painful. Libraries can help with that.

Ok, Vinnie what the heck does that mean. Well, out of the box most programming languages don’t interact with outside things, like Discord, Google, Android, IOS, Certain Websites, and etc. Basically what that means is that let's say I wanted to make an IOS or an Android app. Well, I need to get certain things to work with that, and such as with Discord, and others.

Certain things are called Libraries. These Libraries help work with your end goal website or destination, in this case, Discord.

Here is what you are going to probably and most likely use.

## Javascript&#x20;

### [Discord.JS](https://discord.js.org)

Discord.js is the most popular choice for JavaScript Discord bot development. It has many utilities and functions to help you out, and has been maintained by many people for a long time. **Recommended for people who are just starting out.**

* [An Idiot's Guide](https://anidiots.guide) is a good tutorial covering everything you need to know about Discord.js.

### [**Eris**](https://abal.moe/Eris/docs/getting-started)

Eris is a lighweight, performant JavaScript library which focuses more on keeping memory occupation low. It is also much easier to shard. Eris is maintained by one person. **Recommended for people who want better performance at the trade-off of less utilities, and already familiar with Discord.js.**

## **Python**

### [**Discord.py**](< https://discordpy.readthedocs.io/en/latest>)

Discord.py is the most popular choice for Python bot development. From the Github article: "\[Discord.py is a] modern, easy to use, feature-rich, and async ready API wrapper for Discord written in Python." It supports async/await.

So now you gotta learn the Library. The library has certain ways of doing things that work with the endpoint. From here you basically just have to learn how to set up the bot. There isn’t much for me to do here, as the rest is in the Documentation. You just have to go from there. Good luck!


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://vinniehat-1.gitbook.io/guide-to-making-your-own-discord-bot/guide/find-a-library.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
