A Sneak Peek at Birdie 2.0
Article posted 16/03/2014
I recently wrote about how the Birdie project, a lightweight and attractive Twitter client for Linux, was being rewritten and reborn as Birdie 2.0, an entirely new codebase. The Birdie Development team were kind enough to provide The Linux Rain with a private preview build of the new upcoming Birdie 2.0.
Now while Birdie 2.0 may not be particularly visually different from the now defunct Birdie 1.x versions, this is arguably to be expected and no bad thing. As you could see when I did my article on the original Birdie application, Birdie is already very clean and nice looking and any visual changes would likely be quite incremental anyway. Plus, as Birdie 2.0 is a complete code rewrite, it's understandable that a developer would likely strive to get the new codebase working and looking (on the frontend) almost exactly as the original version did. At least the things that work well.
Which is pretty much what Birdie 2.0 is all about. It's not intended to be a radical departure from Birdie 1.x in terms of visual style and functionality, but rather a much faster and stable application with a hopefully easier and quicker development path.
With this in mind, it's worth mentioning what the new Birdie is actually written in. Nope, it's not Vala, as some apparently thought it might be.
Birdie 2.0 is written in Python.
Now before you potentially groan (depending on your thoughts of apps written in Python), the Birdie Development team claims that Python has been great to work with and development is "MUCH faster" and that Birdie 2.0 is already far more stable than Birdie 1.x ever was. Not only development is faster - the application itself is said to be much quicker and more responsive as a result of the rewrite.
I don't think the Birdie devs are exaggerating. My experience with the new Birdie 2.0 has so far been true to those words. It is, actually, much faster. Even simple things like opening the program, scrolling and transitioning between views are faster and smoother and response is instant. In terms of stability, indeed the program already hasn't shown any signs of the crashes that Birdie 1.x had. I haven't had it crash at all, yet. But like any freshly written code, there is bound to be bugs, but the fact the new Birdie 2.0 is already more stable than it's predecessor with a new rewrite is a good sign. It does use around 57 megabytes of RAM on my system, as opposed to Birdie 1.x using around 30MB, but perhaps this is simply the nature of using Python or perhaps memory optimizations could still come. Either way it's not a huge deal, unless you're using a very, very memory constrained machine.
Otherwise, the app behaves and largely looks exactly as the original Birdie did, again as you can see in my original Birdie article.
There are some minor visual tweaks so far, such as in the profile section (see the first image in this article). Also, Birdie 2.0 brings "streaming". This means Tweets will arrive in almost real-time, rather than the application sitting there and updating every x-amount of minutes. As well as this, Birdie 2.0 also is able to send pictures through Twitter itself, rather than relying on a third-party like imgur.
It does still have a couple features missing at the moment: most notably conversations and lists, which were present in Birdie 1.x. The buttons and such are there, but they simply (at the time of writing) aren't yet functional. Ubuntu messaging menu and libunity support are also on the to-do list for the proper release of 2.0.
Overall, Birdie 2.0 is so far looking to be a very nice improvement over the first Birdie incarnation, sporting similar smooth and simple, modern looks but featuring an entirely new codebase underneath, which so far is looking like a good decision by the developers.
While the developers wished for the current snapshot build to be private and there is no official word on a release date for Birdie 2.0, if the speed at which the application has already been rewritten and functioning is any indication, you likely won't be waiting long.