Tom Ritchford
2 min readMar 30, 2022

--

Sorry, but Kivy is one of the worst frameworks I have ever seen in any language.

After experimenting with it, I concluded that it was good for toy programs but not for anything bigger.

Let's start with this: the Kivy "language". The developers strongly encourage you to use this to do a lot of work with.

But the Kivy "language" doesn't have any sort of grammar or formal definition. It looks a little bit like Yaml, except it isn't Yaml and a Yaml reader/parser won't read or parse it.

Oh, and it includes snippets of Python, or more precisely, there are two different places in the language where you can embed slightly different subsets of Python.

Worse, all Kivy language documents share the same namespace! So if you use the same variable in two documents, they will collapse.

Even worse, there is no way to abstract a Kivy document, so if you create 100 buttons, you'll need to create and edit 100 Kivy documents - and because it isn't some standard format, you'll have to do it by hand.

And there's a lot more. For example, simply constructing a color has global side-effects! No, I didn't believe it either till I traced through the code.

Finally, the maintainers are clearly very young and believe they are much smarter than they are. If you look at their mailing list, you can see literally years of people complaining about the Kivy language, and yet the maintainers refuse to understand why another completely unspecified language is bad idea, why not having a good way to put the parts together is a bad idea, etc, etc.

DO NOT USE KIVY.

--

--

Responses (2)