This is about Kivy, the Python-powered cross platform GUI framework. I want to share what I’ve learned about Kivy.
What do I love about Kivy? …Well, first of all you Pythonista you, I don’t love that it’s Python. Oddly, though, I do love Python. I think it’s great. But it won’t write code for you. It’s just another language. I’m going to go out on a limb and say that I like Java and Ruby just as much. All are modern languages with an interesting object-oriented programming style. Java’s got it’s own issues, that’s true- security problems and the like- but the language itself is IMHO cool.
Where Kivy has them all beat is not only that it uses a modern language, but that it’s true cross-platform. IMHO Kivy implements write once run anywhere better than Java. I expect my app to run on Windows, Mac, Linux, Android, and iOS with little to no changes. Of course, this means that a Kivy app will not look like a native app, so if that’s your goal, time to move on. It’s decidedly much more mobile-like.
What do I hate about Kivy? I have to be much much more concerned about who’s getting events, and which coordinate system I’m in (if I use some sort of RelativeLayout) than I ever did with Java. It’s enough to drive one to drink. And there’s no concept of Z-order of widgets. So there’s definitely warts. But still, better to be writing on Linux and running as pretty as you please* on iOS and Android than to have to learn 3 development environments.
* Which remains to be seen, but I’m optimistic.