Replies: 3 comments 2 replies
-
It would be an important point to try to decrease the number of pull request and issue, I bet kord would be better off with contributions of this kind before adding new things |
Beta Was this translation helpful? Give feedback.
-
Project & Development
Community Spaces
|
Beta Was this translation helpful? Give feedback.
-
My goal was this: I want to restart my bot quickly to be able to deploy new features and bug fixes without annoying the users, I hate restarting my bot because it consumes gateway identifies and takes too long for all shards to login to the gateway. So I ended up attempting to migrate my bot to Kord, after all, Kord is extremely modular so it should be easy to do what I want! Kord, while it works for small projects, it has a lot of issues when working with it on big bots. When I was attempting to migrate my bot to Kord, a lot of times I kept thinking about "well, is this my own fault, or is this Kord's fault?". Compare that to JDA, where JDA, while it has its own issues (not modular, can't use REST only, etc), it is extremely battle-tested because tons of big bots use it. Here's some issues off the top of my head:
There were also other issues on my end too, like how it is hard to migrate a big bot like Loritta from JDA to Kord, so I ended up unknowingly adding bugs and breaking features during my migration process. Because I forked Kord to attempt to fix these issues, I also ended up thinking about "I wonder if it is easy to fork JDA to do what I want instead", so, after a few hours, I already had a proof of concept that implemented what I wanted, and that's why I switched back from Kord to JDA. |
Beta Was this translation helpful? Give feedback.
-
Hello Team,
I'm putting this up because we are going to dive into threads and I don't want to forget about it.
We all have used Kord by far in many ways that it is powerful in many areas. However, we know that Kord is not as complete or battle-tested like D4J or JDA
I'm sharing here things that I believe could be better, please make sure to share yours as well.
Embrace
open
as a toolWe have lots of sealed/closed classes which makes our type system one of the very strong once in the field. However, lots of times it causes headaches to large-scale bot devs or library maintainers.
The initial reasoning behind this was to avoid instances were the user may call a function that doesn't work on this type.
While this is true, the user can make use of our existing implementations, #733 #667 are two examples where our sealed/closed fall-short.
There are many instances were we've asked our users to wrap our classes instead of inheriting from it but this comes at the cost of maintenance and flexibility. We've seen lots of users (specially from our Discord server) trying to use Kord to their hearts content, but they stop half-way through due to the hacks they had to do to get things to work.
Let's use
open
on classes that the user may reuse.Cache
The cache project is used by both the dev team and the users, and it offers a variety of cache implementations that the user may use. But it falls short when it comes to complex queries or instances where the user would like to have their own custom function/ query on a certain object. #622 has been lying around for a while now, and is a good example of this case.
Beta Was this translation helpful? Give feedback.
All reactions