tomboy-notes / tomboy

This is the legacy development for Tomboy.

Home Page:http://projects.gnome.org/tomboy

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Tomboy - the next generation

davidbannon opened this issue · comments

commented

A discussion I started, stupidly, in the middle of another ticket - #54

I believe its time we started talking about Tomboy's long term future. We need to separate out the idea of Tomboy from its implementation. Tomboy, by definition, is a cross platform note tool that features note cross linking, synchronization and a limited range of text formating. It beauty is its simplicity and ease of use, that is something we need guard carefully !

There was a time when Tomboy was a practical solution on Linux, Windows, Mac and (separately) Android. It was shipped, by default, on a number of Linux distros and widely used by only slightly adventurous people on the other platforms. However, now, it does not work on the Mac, the Android version has apparently stopped development, importantly, the Windows version is becoming more and more problematic. Few, if any Linux distros install Tomboy by default.

This is despite the long historic effort by many people and the current heroic efforts by Alex. The problem can be summed up under two implementation issues -

  • The open source world is not that enthusiastic about Mono. Perhaps ideologically based, Mono is too closely linked to Microsoft, perhaps because of the size and complexity of the Mono libraries. Worth stating that the current Tomboy works as well on Linux as it ever did.

  • The dependencies on GTK libraries and issues with backwards comparability, an issue on non Linux platforms. And one thats unlikely to get better.

Phew ! Still reading ? Wow !

I believe a Tomboy-NextGen needs to look like this -

  1. It needs to be true to the Tomboy ideal, no more complicated than it has to be.

  2. The GUI needs to be platform independent and, as much as possible, have a common code base. It needs to be "someone else's" responsibility to look after the cross platform aspects. Wishfull thinking !

  3. The non GUI components should be clearly separated from the GUI. Again, in an ideal world, platform independent right up to the very edges.

  4. The product should require minimal or at least easy dependencies to install on Linux, Windows and Mac, maybe more ?

  5. Under the hood, clear separation of functions, should make maintenance and further development easy. Use of Libraries to bundle (particularly non-GUI) functions and Plugins will be key.

That will do initially, I'll talk specifics in another post.

commented

My suggestion is we look at the Free Pascal Compiler and Lazarus. Their motto is "write once, compile anywhere". With some qualifiers, the same code should run on all three major platforms. To text this claim, I made a basic Tomboy clone editor. It will read and write our Notes files, display most of the markup, do the cross links to other notes. All in about 500 lines of my code.

Please see http://www.bannons.id.au/tomboy . Source and binaries for Windows and Linux there. Importantly, all you need is the one binary. No additional dependencies !

Does not do sync and a whole lot of other things. I have not tried on a Mac yet. Its just proof of concept, no more at this stage.

The key point is its someone else's problem to ensure it continues to build and run on other platforms. With a single code base, it leaves us free to build on the 'extras' users need. Relatively easily. Should be easy to link to external (c-style) libraries if we decide to implement the Tomboy Library idea.

I would like to cross post this issue on the mailing list. But don't want to do so if its going to cause problems.

Thanks David for posting this. I haven't yet got any time to read through (I'm swamped with other projects currently and had to take time "off" Tomboy, except for issue triaging, that will last for a couple of weeks I think), but I plan to when I finally get time back.

There's nothing wrong with going to the mail list - feel free to do that. I personally treat this stage of the discussion as abrainstorming more than anything else, so the wider the reach, the better the brainstorming material (well, and potentially noise, but that's for the later stage to decide).

commented

OK Alex, I am just about to get my hands on a Mac, so might wait until I have tried out my draft against that before posting. May have a go at getting the 'real' Tomboy working on the Mac too, be nice if we could start shipping Mac binaries again.

So I've read through - and I think it pretty much describes it. Not sure about Lazarus/Free Pascal specifically though, I'd be aiming at something more widespread, with bigger community and support - to make sure that's not going to end one day. To that end, I'd say wxWidgets or Qt (even more so) look like better solutions, but that's up to discussion and more detailed comparison.

In any case, looks like that's unfortunately going to be the point for me, where I stop and say goodbye to Tomboy, as an active maintainer. Due to some recent "real life" changes (which caused those couple of weeks I had to take off Tomboy), coupled with the need to basically rewrite Tomboy from scratch for this to make any further sense, I just can't afford that any more. When I started reviving Tomboy, my assumption and assessment was that after initial spike of time investment that would be more of an incremental thing, but the more I dug, the clearer it become that there's a glaring need to pretty much start anew, due to basic framework dependencies or solutions (like sync server or Android app) vaninshing or becoming unsupported. That's what David so nicely summarized above and what we discussed in #54 as well. I still believe (and the number of those various half-baked note-taking apps out there confirms that) there's a need for a solid, cross-platform (Android, iOS, Linux, Windows and MacOS are the bare minimum these days), well-supported, open-source note-taking solution which would enable the user to have full control over their notes (with end-to-end encryption, using standalone files as storage, providing easy ways to spin their own synchronization server if needed), but I just don't have enough time any more to write my own one from scratch. I'll be around (same as I think past maintainers do) if there are people willing to take over, but effective today I won't be doing any major work on bugs or the code. It's been a bit more than a year since I revived Tomboy and made it build again - it was a fun ride, but sometimes you just need to cut the investment when it stops making sense for you.

Here is a suggestion, build Tomboy on top of StandardNotes (core/backend), this will give tomboy modern capabilities (like sync, encryption, etc) and build the UIs using an hybrid architecture (https://m.signalvnoise.com/basecamp-3-for-ios-hybrid-architecture-afc071589c25)

Everyone interested in this should follow its development at https://github.com/tomboy-notes/tomboy-ng !!!