7 ms·
can anyone tell me why anki is implemented so poorly in its core functionality? it works, but its slow, clunky, and error prone. that's the drawback for me and
by aye01 5y ago
can anyone tell me why anki is implemented so poorly in its core functionality? it works, but its slow, clunky, and error prone. that's the drawback for me and reason i am even willing to check out competition in this tech.
things like deck syncing, card creation, and the general ui all seem like they can be implemented to be much more user centric and functional. For me personally and my girlfriend in med school have lost data due to anki's strange sync pattern.
I can't be the only software engineer that thinks they can think of an implementation in their head that would make anki as a product much easier to deal with, right? As far as I can tell, people are tied to anki due to Stockholm syndrome and lack of worth-it, well maintained alternatives.
- fny 5y agoIt's maintained by a sole developer who competes against goons who rode off the back of his brand name: https://www.ankiapp.com https://www.ankiapp.com
- Hamuko 5y agoTo be fair, "anki" (暗記) simply means "memorization" in Japanese so it's hardly super original by itself.
- johnmaguire 5y agoWatching my med student girlfriend use Anki the past few years has been horrible. The syncing in particular is bad, as you pointed out - and bad in a "irreversible data loss" kind of way. I've thought about trying to create something better, but Anki itself is so entrenched in some communities that there's a strong network effect - both through shared decks and add-ons. (Also, I don't personally have an application for rote memorization, so someone who does would probably create something better.)
- CodeGlitch 5y agoI use SyncThing [0] to sync my anki databases between a laptop, desktop and a raspberry pi. Fingers crossed nothing has gone wrong yet, apart from problems such as using incompatible versions on the same db. [0] https://syncthing.net https://syncthing.net
- johnmaguire 5y agoThank you for the suggestion - as a med student, she has an iPad that can access certain medical resources, and is already an iPhone user, so I don't know if SyncThing is really an option for her. I'm not sure that most users can be expected to figure out things like "does this update include a database upgrade?" "which devices are running an old database?" and "what do I do when the software told me the database on disk is corrupt?" And I think SyncThing would still suffer from the issue of needing to make sure only one device writes to the Anki sync at a time. I really think some sort of cloud service that handles multi-headed sync of cards/notes (and makes it hard to take permanently destructive actions) would be a real competitor in this space - if they can overcome the Anki network effect.
- ehaliewicz2 5y agoWhat issues has she had? I sync between mobile - macbook -pc desktop every day and rarely have any issues, and all of them have been salvageable. This is over maybe 5-6 years of usage at this point.
- johnmaguire 5y agoIIRC, it's basically just that if she leaves Anki up on her Macbook without explicitly syncing & exiting, and then tries to use her iPhone or iPad, she will lose state on one of the devices. It's a lot of cognitive overhead to remember not to touch Anki on any other devices unless you've synced and closed it out on the most recently used one. Since she has a ton of cards, syncing takes a while. And occasionally it just throws a random error. Moreover, there's a sense of fear every time she uses Anki that she will hit the wrong button and lose her expected state.
- ehaliewicz2 5y agoI suppose remembering to sync is an issue, but I've just built the habit of always syncing when finished. Anki will also sync automatically when you exit (this might be an option you have to enable in the settings).
- blakesley 5y agoI totally agree with this, especially the last bit about just the mentality it creates. I wish Anki had an (optional) auto-sync feature (like every 15 mins), but maybe there are too many edge cases for that kind of feature.
- andrewzah 5y agoI agree that this is annoying, but it's also not too hard to build a habit of syncing after every session. It's 'y' by default. I haven't had any issues after remembering to do that, but I only really use text-heavy decks and not ones with lots of media.
- aye01 5y agoyour comment itself points the huge issue out. the way i see it, as evident in your comment, anki has given you several issue over just the 5-6 years youve used it that requires your to manually salvage your system... what other apps do you do that for?
- klevertree 5y agoAnki has a lot of features and it's been around forever. It's tough to keep something like that smooth and sleek. But yeah, my original impetus for creating this was loving the idea of Anki, but having a really hard time sticking with it because of how clunky it is.
- aye01 5y agoi agree. i say all these gripes knowing anki isn't some huge corp that can throw money at this problem, but it really is time for a revamp or more competition in the space that is worth moving to.
- dharmaturtle 5y agoI'm building an open source Anki clone, and lemme tell you shit's surprisingly hard. Getting syncing working without resorting to uploading entire SQLite databases is nontrivial. You're basically doing multi-master database replication... but you gotta build it yourself (there's no easy way to sync sqlite with some serverside database (ignoring firebase/couchdb/pouchdb for various technical reasons)): https://en.wikipedia.org/wiki/Multi-master_replication https://en.wikipedia.org/wiki/Multi-master_replication The lack of "worth-it" alternatives is due to the fact that there's no money in this market. Students are very unwilling to buy software, and if you use ads you end up like Quizlet. YC funded a startup in this area (Hickory) and they're... not doing well. The main reason why everyone still uses Anki despite its issues is because it is still hands-down the best solution out there, despite all the bugs and clunkiness. There are a million and one spaced repetition systems out there, but Anki's plugin system and shared decks make for a very strong network effect. If you're a med student, I don't recommend moving off Anki. The ecosystem there is too strong. If you're losing data, post in the /r/anki subreddit - Anki automatically generates backups and they'll walk you through restoring them.
- fire 5y agoNaive q: would solutions like GUNdb[1] relieve the synchronization issue or are there special considerations with flash cards that favor some other strategy? 1: https://github.com/amark/gun https://github.com/amark/gun
- allenu 5y agoI've built my own flashcard app and I ended up just syncing a journal of all your actions on a device (creating/edit cardings, evaluating them) and having all your other devices play those back to get to the "shared state". I store data using SQLite as well. It works pretty well for me. You're definitely right about students being unwilling to buy software. They're already cash-strapped, so they're very unlikely to pay for an app, let alone a monthly subscription.
- dharmaturtle 5y agoHah - you're describing "event sourcing" and it's the technique I'm using: https://flpvsk.com/blog/2019-07-20-offline-first-apps-event-sourcing/ https://flpvsk.com/blog/2019-07-20-offline-first-apps-event-... Unfortunately event sourcing means distributed systems... and I'm learning this on the fly on nights & weekends. Martin Kleppmann's "Designing Data Intensive Applications" has put the fear of god in me.
- esrh 5y agoI've rarely encounter bugs in Anki. The ones i have encountered have been the result of me hacking on it in some way. Sure it's hard to use and pretty clunky, but i wouldn't call it buggy.
- aye01 5y agoid beg to differ. i've had plenty of bugs happen myself and you can find tons of posts around the web of people experiencing similar frustrations. I'm sure there are decks that people make that are less error prone when syncing, but that is not my experience with the decks i make.
- allenu 5y agoI think the reason it is where it is is because it was created a long time ago when some of the things we expect today weren't the norm (cloud sync, friendly UX). I think it has such a large user base that it would be very difficult to revamp it without disturbing a lot of users (and add-ons). I think people who use Anki are happy with it as-is, so there's momentum there. And new users who don't like it, well, they don't stick around. I've written my own spaced repetition flashcard app (see my profile), so I've looked a little bit at how the data is stored in Anki and have a general idea of how sync works, and my impression is sync was bolted onto an existing system meant for a single device. I've seen posts from users in the sub-reddit about how if you do lessons on one device and then do lessons on another, there'll be a conflict in the data and you'll have to manually tell Anki to pick one over the other. (This may have been fixed since, of course.)
- aye01 5y agoi know this motivation all too well in my line of work, but i hate it. its the code conservative approach that will just let things cobweb since people don't hate it enough for anki to change it app dev. granted, anki isn't some corp that has money to throw at this product, but theres such a high demand for this app to be better and it just isn't and people are just okay with it because its the best they have.
- asp_net 5y ago> it works, but its slow, clunky, and error prone. Interesting assessment. I use it almost daily, and I have no issue with it whatsoever (macOS <-> iOS <-> iPadOS). Sync works absolutely flawless. UI is not modern and it's a bit slow with Rosetta, but stable and fast enough to add and edit cards. Copy and paste of images works ... stats are okay. And, the most important part, the algorithm just works well for me. tl;dr: I love it.
- aye01 5y agoi have no complaints on the memorization system itself. it works and thats why i will continue to use anki despite my gripes with it. i do not agree that syncing is flawless though since i've had many major issues in the past. i imagine there are plenty that do not have issues depending on what they're studying and the contents of the decks they make, but that is not what i've experienced.
- ehaliewicz2 5y agoMaybe I've just internalized how to use Anki in a way that works well and avoid it's pitfalls, but what are the actual problems you have with it?
- aye01 5y agojust what i've said in the post. deck syncing is error prone, card creation can be tedious and unintuitive for most, and general ui is dated among other issues.
- ehaliewicz2 5y ago>deck syncing is error prone I suppose making it manual might not be ideal, but errors are very few and far between. >general ui is dated I don't really know what this means. Why change something that works just because it's stayed the same for a while?
- blakesley 5y agosurprised to hear you think the GUI is fine. I've been using it for a year, and I know my way around the app & menus by now, but I still struggle on occasion, as things are just not intuitively laid out and/or not well-presented.
- ehaliewicz2 5y agoOh, well everyday usage is totally fine (reviewing cards, adding cards), but some things are still a little weird, card types vs note types for example, but that comes up rarely enough that it doesn't bother me. Maybe I'm just tired of apps that get more and more bloated and slower year after year, while the ui gets changed to "simplify" things and become less usable as a result. But anki has mostly stayed the same, it's fast, responsive, does what I need it to do, almost never crashes, etc. It's also been a daily routine to use for literally years, so it's sort of soothing. Yeah it has some rough edges, but they don't come up very often.
- knubie 5y agoI had the same thought and created my own implementation [0]. As another user said it's surprisingly difficult, and Anki is incredibly extensible, so it can be difficult to fill everyone's need. What I've noticed is that a lot of the power users and influencers are very much invested in Anki, which makes it difficult to get them to check out your alternative. And because these are the type of users that are promoting Anki, it has gained a lot of mindshare in this space. That said, the people that have found my app are very grateful it exists as an alternative to Anki. As far as the syncing, as another user said, it is actually quite difficult. There just are not a lot of options out there for this kind of use case. Anki's syncing is custom-built. [0] https://mochi.cards/ https://mochi.cards/