Anki's Svelte future

Which languages should I prioritize to learn for future development of Anki add-ons?
(In other words, which languages will be reduced or enhanced in the long run?)

1 Like

JavaScript and Svelte (which is build upon JS) will most likely be the important ones. I don’t know about other languages though.

1 Like

Anki has a Rust backend with an RPC API that is used on all platforms.

2 Likes

Thanks! Is there a possibility that Python will no longer be available or nearly useless in Anki in the future?

1 Like

As dae already stated in the beginning, it will be a gradual development towards Svelte. I can imagine Python being obsolete at some point, this will take a few years though. There will be most likely a long “inbetween”-time, where JavaScript and Python will be in its importance equal to each other.

(Im not a developer of Anki, so take everything with a grain of salt.)

2 Likes

Would it be better for the backend to be in a standalone repo?

2 Likes

Why? Seems to work for Ankidroid and AnkiMobile.

1 Like

Hmmm, if PyQt(and Python) is discontinued and replaced to Svelte, I do not know how the popups and main window will be displayed.
For example, I think the Stats and Deck option use PyQt QWebEngineView for now (maybe).

In the case of Add-ons, PyQt is basically used to configure Add-ons.
Simply put, it is enough for Add-ons to be able to push a button to open PyQt, even if Anki is almost entirely Svelte(At least in my case).

If PyQt in Anki on the desktop is replaced by some kind of Svelte-specific UI, then Add-ons developers will not be able to use Python and PyQt. So I think Add-ons developers will need to change the UI.

If Python and PyQt are partially essential for desktop Anki, even after Svelte is almost fully deployed, then Add-ons developers should still be able to use Python and PyQt. So I do not think the Add-ons developer would need to change the UI.

If it is already possible to popup using only Svelte, I thought it would be interesting to create a simple popup for Add-ons configuration using Svelte.
But so far such a mechanism does not seem to be used in Anki (Though I could be mistaken), so I don’t know if that is possible or if such a plan is in the official Anki.

1 Like

IMO, it would be useful to have basic sample code in AnkiManual (Writing Anki add-ons) when the widget mechanism changes or new features become available.

For example, there are many add-ons to customize old deck option, but rarely are there add-ons to customize new deck option. Maybe this is because even after reading the AnkiManual it is not clear how to develop them.

5 Likes

Is there a plan for screens that are too big to fit on a phone?
In Tried to implement syntax highlighter for card template editor - #5 you mention moving the card layout in svelte. I doubt we can display on a phone the previewer on the right of the template editor. I’d be interested in what you intend to do for such cases

fall back to a more permissive license.

Is this something that you’d want to do @dae?
I guess since we all gave you BSD licence (if I recall correctly), that could work, if you decided to release your own work under BSD

@tatsumoto

but the overall experience is poor.

those programs are a nightmare to run

I’d be curious, can you give more specific example?
I understand the problem with add-on. I used to create many of them, and many are now broken. But that would a an argument against most change.

I’ve not noticed anki being particularly slow, and I use it often. Maybe it’s better on linux, I don’t know. Or that I have a recent desktop with more than correct ram and cpu. Would you have time measure of the difference between now and the oldest version you preferred ? Or difference in ram usage or anything.
Because, I understand that you don’t lake moving to svelte. But I admit I right now fail to understand exactly your argument. You want to revert a ton of work, but it 'd seem we’d have to trust you that it’s bad practice and that

many agree that it looks ridiculous

But I don’t even know why we should care about those many. (Because, yeah, developers have strong opinions. You’ll find many that agree against almost any idea)

3 Likes

Though unrelated to the discussion in this thread, do you have any plans to update those your add-ons?
I try to fix broken add-ons and upload them to AnkiWeb if I’m successful, but basically if the author is active I don’t do it (Because it interferes with their activity). You have a lot of add-ons so I often get requests to repair them.

On a somewhat different note, a genuine problem with UI is what works for desktop doesn’t always work with mobile. If you look at image occlusion, we have a top toolbar, with icons very little in size along with a left toolbar. In mobile, the best position to have toolbars is at the bottom and not at the top. So it seems desktop focused development is ruining the experience on mobile.

I also don’t like the deck options screen for similar reasons. On the top, the save option is too little in size which has even smaller sized button on right to open a menu of options. The back to default option shows a revolving two arrows which can be easily mistaken for “processing” but it means that you press there to go back to default. The best option for mobile is a simple pop up asking whether I’m sure I want to go back to default.

Stats screen is fine though. It also looks better now.

1 Like

Making those pages work on smaller screens is one of the things we’ll need to tackle as they’re ported.

A liberal license makes it easy for other individuals/companies to include the code in their closed projects and make money off it without sharing back.

4 Likes

Hmmm, this means it will be possible to make the Anki add-ons closed projects?

+People would be able to make “custom versions” of Anki that are not open source.

Aren’t some addons already closed source and paid for?

And is there actually anything stopping people right now from doing a total revamp of, let’s say, Anki desktop in the form of a paid addon? (Given that they do not use any of Anki’s GPL code in their addon.)

I am a bit curious what would happen if open source Anki and closed source add-ons were combined. (Since developing a custom version of Anki is not possible for me)

I think PyQt(Anki GUI) can be sold for a fee if it is open source, and if it is closed source and sold, the developer would need to purchase a license.
So even though the Anki add-ons are sold, I think the source code is all open source.
But this information is based on a little searching in the python community, so it may not be accurate. (I am not familiar with license)

If Anki doesn’t have copyleft license then nothing. But for copyleft, any modifications and additions to code are required, by the force of law, to be made open-source. That’s my understanding.

But eventually it means Anki will be overshadowed by behemoth companies with big budgets that can promote their subpar Anki versions 24×7.

1 Like

This could be interesting news for school teachers. Basically, if they want to develop textbook decks, they need to make them closed source and not be able to redistribute these decks.

Perhaps Duolingo and Quizlet already exist.