As
pointed out by Tim on Twitter, yesterday's
release was missing some proper release notes, and while if you have been following gPodder 4's development process (
here,
here,
here and
here), you kind-of know where it comes from, it's probably useful to summarize the differences between gPodder 3.x and gPodder 4 in a separate post here, especially for users wondering about the differences of gPodder 3 and gPodder 4.
Some
early plans for gPodder 4 considered rewriting parts of the core in C++ for performance and portability, but in the end, we decided to take a less risky approach, and
split off from gPodder 3.5.1 in April 2013 and work on trimming down, refactoring and replacing the codebase there one-by-one.
Even though we went with the existing codebase, we took this opportunity to go Python 3-only with this release (because
Python 2 is a dead-end), as well as have a split between the core library (now know as
gpodder-core) and user interfaces (
gpodder-ui-qml and
gpodder-sailfish at the moment). Another opportunity to make a clean cut was migrating from
feedparser to our own, custom-written
podcastparser (
performance gains are goody), so we have more control over what and how we parse things, and properly split YouTube, Vimeo and Soundcloud integration into separate, self-contained modules.
Here's a list of things gPodder 4 can do better than gPodder 3:
- Native Sailfish OS port
- Blackberry 10 port
- Potential ports to other Qt 5 platforms (Android, iOS, ...) in the future
- Qt 5 and Python 3 support via PyOtherSide
- CLI interface ("gpo") with new features (querying episodes, etc..)
- Faster parsing of RSS and Atom feeds using podcastparser
In the end, the list of things we added in gPodder 4 is probably shorter than the things we removed compared to gPodder 3. Here's what gPodder 3 can do that gPodder 4 can't (at the moment):
- Gtk UI (Linux, OS X and Windows "Desktop" UI)
- Harmattan (Nokia N9) QML UI (PySide and Qt 4-based)
- MP3 player sync, iPod sync
- Extension scripts (e.g. convert files, Ubuntu Unity integration, etc..)
- gpodder.net integration into the core
- Web UI (was never really completed, anyway)
- Flattr integration into the core
- Python 2 support
While features like
gpodder.net and
Flattr integration are things that we want to integrate into gPodder 4, this hasn't happened yet, and in some cases, it might be better to put these things into the UIs rather than handling them in the core (e.g. gPodder 4's QML UI actually has gpodder.net directory search, done purely in QML/JavaScript).
In case of Flattr, Stefan actually implemented Flattr integration into the gpodder.net web service (so you can Flattr via gpodder.net without having to integrate Flatter directly into the client), so we might opt to use gpodder.net's service here - this has the nice side-effect that you don't have to deal with logging into your Flattr account on your mobile device; just set up gpodder.net and Flattr in your browser on your PC, notebook or tablet at home, and then let gpodder.net handle Flattr'ing of episodes you have listened on your mobile device (the mobile device will send play events to gpodder.net, and gpodder.net can Flattr all played episodes on your behalf if you tell it to do so).
For users of gPodder on the Desktop (Mac OS X, Linux, Windows), this means that you probably don't want to upgrade to gPodder 4 at all at the moment, and that's fine (I personally use and will continue to use gPodder 3 on the Desktop). Stick with gPodder 3.x, which has all the features you have come to expect from gPodder. We'll continue updating gPodder 3.x for some time to come (after all, we don't expect feature parity in gPodder 4 any time soon, and don't even aim for it). Mobile touch UI development will happen in gPodder 4, with a focus on performance, ease of use and integration with our webservice, gpodder.net.