Is Go worth learning for building Discord bots over Python?

I have solid experience with Python and Rust, decent JavaScript skills, and some basic Go knowledge. I’ve built various projects in Python and Rust, but I’m considering whether Go might be a better choice for certain applications I want to develop. Discord bots seem like a good starting point since I’ve already created several using Python.

My main questions are about Go’s Discord library ecosystem. I’ve looked at discordgo but I’m unsure how it compares to discord.py or discord.js in terms of functionality. Does it provide all the necessary features or are there significant gaps? Is the community support strong enough to help troubleshoot issues?

Performance is another consideration. Would a Go-based bot handle larger user loads more efficiently or execute commands faster than Python alternatives? I’ve noticed my Python bots tend to slow down after running continuously for extended periods.

If Go proves effective for Discord development, I might consider migrating other Python projects as well. I’m trying to determine if investing time in Go is worthwhile or if I should focus on my existing skill set. Has anyone here transitioned from Python to Go for similar projects?

Having worked with both extensively, I’d say Go offers genuine advantages for Discord bots beyond just performance metrics. The memory footprint difference is substantial - my Python bots typically consumed 50-80MB while equivalent Go versions run comfortably under 20MB. This becomes critical when hosting multiple bots or working with resource constraints. Regarding discordgo specifically, it covers all essential functionality including slash commands, message components, and voice connections. The API is well-designed and feels more predictable than discord.py’s async quirks. However, the third-party ecosystem is notably smaller. You’ll find fewer pre-built extensions and community modules compared to Python’s rich bot framework landscape. The learning curve isn’t steep given your existing Go foundation, but debugging can be more time-consuming initially. Go’s strict typing catches errors early but Python’s flexibility often allows faster prototyping. For production bots handling significant load, Go’s reliability and deployment simplicity make it worthwhile. For experimental or feature-heavy bots, Python’s ecosystem advantages still matter.

I made the switch from Python to Go for Discord bots about two years ago, and honestly the deployment story alone makes it worthwhile. With Python you’re dealing with virtual environments, dependency management, and those annoying situations where something breaks after a system update. Go gives you a single binary that just works anywhere. The performance gains are real but probably overstated - unless you’re running massive servers, both will handle typical bot workloads fine. Where Go really shines is the goroutine model for handling concurrent operations. Things like managing multiple guilds simultaneously or processing batches of API calls feel much more natural. The discordgo library is solid and actively maintained, though you’ll miss some of the convenience functions that discord.py provides. Documentation is decent but the community is smaller, so expect to read more source code when troubleshooting. My advice would be to port one of your existing Python bots to Go as a learning exercise. You’ll quickly see if the trade-offs align with your priorities.

honestly go might be overkill if ur python bots are working fine. i’ve been using discordgo for about 6 months now and while its fast, the debugging experiance kinda sucks compared to python. you loose alot of the nice introspection tools. plus finding examples online is way harder - most discord bot tutorials are still python/js focused.