Replies: 1 comment 3 replies
-
|
So, first we need to talk about the architecture, i.e. the way the code was organized and the techniques used, of the old C# app. Now this has nothing to do with the fact that we were using C# (because we can use any language to write and to do the things we do in the app), but I am just going to label the old version as the C# version and the new version as the C++ version. As I'm sure you know, Parabolic is a front end GUI for the yt-dlp CLI tool. But yt-dlp isn't just a CLI tool but it's also an entire python library that you can use from within python scripts programs that use yt-dlp directly...as you can with any library for any language. Using yt-dlp as a library provides some extra customization (or so we thought) than the CLI tool. So in the C# version we embedded an entire Python interpreter (the thing that runs python programs) into our app and basically wrote mini python scripts every time you added a download and ran it in the interpreter. This caused many performance slowdowns and unnecessary complications in the code. So something needed to be done. Now again, we could've rewrote everything in C# to begin with, but I have always loved C++ as a language and being written in C++ gives us a performance boost just by being native. It also allowed us to have much more control over the system as the Linux kernel and Windows kernel are directly usable in C/C++. Therefore, we rewrote everything in C++. And instead of using a Python interpreter, we removed Python completely and use the yt-dlp executable directly as a process from within the app. This simplified the code greatly while keeping all of the configuration options Parabolic provides to users. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
You know, I've been wondering... Why? The app was working fine with C# and the UI was clean on both, Windows and GNOME, so... I'm pretty curious about the change 🤔
Beta Was this translation helpful? Give feedback.
All reactions