This is very exciting. Here is the APK I downloaded. And the associated discussion.

It even already seems to support stylus input which is very exciting seeing as there has been talk of porting RNote to Android.

  • ExLisper@lemmy.curiana.net
    link
    fedilink
    arrow-up
    0
    ·
    20 hours ago

    I tried using GTK with C, JavaScript and Rust and the experience was always terrible. The tools, the documentation… C is just sooooo old and GTK doesn’t translate well to Rust. For me GTK is great for Window Manger level tools that need to be small, super fast and are fairly static (you don’t add new features do settings app or clock widget that often). I definitely wouldn’t do cross platform apps in it.

    • subarctictundra@lemmy.worldOP
      link
      fedilink
      arrow-up
      0
      ·
      edit-2
      16 hours ago

      I definitely recommend using Vala for Gtk as it was tailor made for it. It’s built on top of the object system that Gtk uses so the API fits in to the language flawlessly, unlike Rust. It even has its own website for browsing the Gnome APIs https://valadoc.org/

      • ExLisper@lemmy.curiana.net
        link
        fedilink
        arrow-up
        0
        ·
        16 hours ago

        I read about Vala but a language that compiles to C seemed icky to me. I don’t know, maybe it solves all the issues that C has. Maybe I will give it a try one day.

    • illucidmind@programming.dev
      link
      fedilink
      arrow-up
      0
      ·
      19 hours ago

      First, what do you mean by “C is just so old”? That seems like a language problem, not a GTK problem. Tbh, when it comes to documentation, you’re likely better off with C as the official GTK docs targets the C API (https://docs.gtk.org/gtk4/).

      Also, what do you mean by “it doesn’t translate well to Rust”? Because, Rust, like other supported langs like Python, have bindings that are equally well-documented to an extent. I haven’t used the Rust binding but I’ve used the Python binding extensively and there are references to all the APIs (https://lazka.github.io/pgi-docs/)—same with Rust (https://gtk-rs.org/gtk4-rs/).

      Lastly, I can understand not using GTK for cross-platform apps, but not for the reasons you mentioned. While GTK’s primary target is Linux, you can technically still make it cross-platform.

      • ExLisper@lemmy.curiana.net
        link
        fedilink
        arrow-up
        0
        ·
        16 hours ago

        By “C is so old” I mean it lacks a lot of features modern languages have. Proper linting, code formatting, dependency management, version management, virtual environments, modules. Yes, you can solve some of it with docker but it’s terrible compared with Rust for example.

        By “it doesn’t translate well to Rust” I mean that GObject doesn’t translate well to Rust structs so you end up with weird structures split into multiple modules and terrible code overhead. Compared with modern UI frameworks it’s just not ergonomic to work with.

        Yes, I know GTK supports multiple platforms but if I want to develop for desktop and mobile I had way better experience using Tauri+Leptos. It’s not just about having some bindings and some docs for it. It’s about how much effort does it take to set it up and figure out how to implement specific functionality. Good docs, good tools good compiler and readable code for the framework help a lot.

        • illucidmind@programming.dev
          link
          fedilink
          arrow-up
          0
          ·
          edit-2
          8 hours ago

          Your statement about C is still mostly wrong. First, linting isn’t typically a built-in feature for many languages; you mostly depend on external tools or IDEs (for C/C++, CLion and VSCode with specific extensions solve this). A similar occurrence is seen in formatting, where, except for a few languages like Rust and Go (with officially maintained formatters), you still have to depend on external tools or IDEs. For dependency management, it is well-known that C/C++ lacks an official package manager, but there are well-tested third-party package managers such as conan (https://conan.io/) and vcpkg (https://vcpkg.io/). Another benefit is the project-local support in both package managers (although it is more robust in Conan), which effectively addresses both the version management and virtual environment issues you raised. You don’t always need virtual environments anyway (Rust doesn’t use one either).

          I haven’t used the Rust binding, so I don’t have direct experience with this and may not fully understand the pain points. However, a glance at the docs shows the Rust binding and trait-based pattern still does the job effectively. I don’t understand what you mean by “weird structures split into multiple modules”, as you’re just reusing built-in structs like you would use a class in the Python binding, for instance. So I don’t see the problem.

          Well, mobile support for GTK is currently experimental, so there’s that.

  • k0e3@lemmy.ca
    link
    fedilink
    arrow-up
    0
    ·
    edit-2
    1 day ago

    I can’t read the discussion because some damn Canadian neko waifu thinks I’m a bot.

      • PumaStoleMyBluff@lemmy.world
        link
        fedilink
        arrow-up
        0
        ·
        7 hours ago

        It actually doesn’t do that for all clients, according to the docs

        It’ll let you straight through if your user agent doesn’t contain “Mozilla”

      • You just need to wait for the proof of work to complete

        I will never find the irony in this anything other than pathetic.

        The one legitimate grievance against Bitcoin and other POW cryptocurrencies - the wasteful burning of energy to do throw-away calculations simply to prove the work has been done… the environmental cost of distributed scale meaningless CPU cycle waste purely for the purpose of wasting CPU cycles, has been so eagerly grasped by people who are largely doing it to foil another energy wasteful infotech invention.

        It really is astonishing.

        • Cethin@lemmy.zip
          link
          fedilink
          English
          arrow-up
          0
          ·
          5 hours ago

          The point is to make it too expensive for them, so they leave you alone (or, ideally, totally die but that’s a long way off). They’re making a choice to harvest data on your site. Make them choose not to. It saves energy in the long run.

        • fmstrat@lemmy.nowsci.com
          link
          fedilink
          English
          arrow-up
          0
          ·
          edit-2
          16 hours ago

          I willl never find the irony in how tech literate people still make assumptions about technology without reading up on it.

          Proof of work does not equal mass power usage. The proof of work here is fingerprinting.

          It really is astonishing.

          • Do you understand how Proof-of-Work works? Perhaps you can give me an ELI5 that shows that it does not use the client’s CPU to perform calculations for only the purpose of proving that the client’s CPU performed the calculations?

            • fmstrat@lemmy.nowsci.com
              link
              fedilink
              English
              arrow-up
              0
              ·
              9 hours ago

              I do, yes, you are just too crypto-focused. Anubis uses the result of the PoW to fingerprint, I.E. to do a job greater than just the calculation. It’s also an extremely efficient alg. I won’t read the docs for you, but feel free to read them first if you would like to discuss it further.

              • It’s also an extremely efficient alg.

                Not if it’s an effective proof-of-work anti-scraping mechanism. The point of these are to make it prohibitively expensive for scrapers to harvest data.

                A mire energy efficient way to do this is with lags and tar pits, which do not cause CPU cycles to be wasted.

                Any mechanism - any - that uses proof-of-work is by definition wasting CPU cycles. If there’s a useful waste product, like boinc, where the work that’s proved to be done is science, then the POW isn’t pure waste energy. There are certainly more efficient ways of generating fingerprints than PoW; Google and Facebook are peerless at fingerprinting without any PoW at all. The value of these fingerprint coins tokens is entirely incidental to the real purpose: to cost the scraper CPU cycles, cost them energy, and make scraping less profitable.

                Anubis is all of the execution cost of cryptocurrency, without the financial flavoring.

        • Jumuta@sh.itjust.works
          link
          fedilink
          arrow-up
          0
          ·
          edit-2
          17 hours ago

          either you have the service with anubis or you have no service at all

          unlike pyramid coins, anubis serves a purpose