Not blaming them - the framework should support it out of the box. You shouldn’t have to understand virtualized lists.
I made a TableView in SwiftUI and I can scroll through thousands of without having the slightest idea how it works under the hood.
React is not a UI framework, it's a low level reactive library with very limited scope - even the DOM bindings are shipped separately! Bring your own batteries.
It’s so much nicer to just be able to trust that an extensive library of stock widgets will be able to do whatever it is that you need, as tends to be the case with AppKit/UIKit.
And UI libraries like Tailwind, Shoelace etc are surprisingly extensive and constantly being improved. And if something isn't to your liking it's often to trivial to change it.
The real problem is that the Web platform doesn't offer a good set of customizable UI elements other than the most barebone basics.
I'm building an app using it now and it's significantly better than past attempts at browser-based, cross platform app development. It is extremely fast and efficient so apart from UI controls not looking the same it will be on par with a native app.
And one of the big advantages for me is that I get to leverage Rust's excellent low-level capabilities e.g. cross platform SIMD support, io_uring with minimal investment.
It uses system-provided WebView (WebKit on MacOS and Linux, and Edge on Windows) to display the UI shell, so the UI portion will be just as slow as any Electron app.
It's the fact that the app is so slow to launch, consumes ridiculous amount of resources, does not take advantage of the hardware, is unstable etc. And then when you're using the app all of the interactions are slow because NodeJS's concurrency is so poor.
Rust and Tauri fixes all of those. It's not perfect but for a cross-platform app development library I've not seen anything better. Happy to be enlightened with alternatives.
You've just described almost any web-based UI ;)
> And then when you're using the app all of the interactions are slow because NodeJS's concurrency is so poor.
Most of the slow interactions come from the web-based UI. I mean, Slack needs 17% CPU to draw an animated emoji. And it's already running in a hyper optimised Chrome: https://twitter.com/dmitriid/status/1486364312910368769
> Happy to be enlightened with alternatives.
Qt :)
Unfortunately, it’s licensing is not suitable for everyone.
Unironically, FreePascal/Lazarus had a decent shot at this with LCL: https://en.m.wikipedia.org/wiki/Lazarus_Component_Library
It could target Win32, GTK and Qt all at compile time (even Android and OS X but that never got developed all that far AFAIK), depending what runs on your target platform, while you get common components and RAD at design time.
I haven't seen anything like it since and sadly the language and ecosystem are mostly dead, which is a shame, because the idea was brilliant and it actually worked (and is still used in some software, like CudaText and PeaZip I think).
Aside from that, something like MAUI could be worth a look: https://dotnet.microsoft.com/en-us/apps/maui
Or as fast as any website built with a pinch of care to performance.
I do applaud anyone that tackles the challenge of building a proper native cross-platform UI.
It is one of the ultimate goals in software so wish them all the best.
For integration with cloud services you're going to run into OAuth, and guess what, that dance happens in a browser: get access to cloud drive -> get sent to provider login <<web>> page (or authorization page) -> get sent somewhere else.
I mean, you can build it without the browser, but a key and very early step involves a browser, you need it anyway. Might as well ship your own if you can do it.
You don't need to embed a browser engine for this, let alone build the entire app inside a browser.
Now do the same for: Windows · Linux · iOS · watchOS · Android [1].
I'd rather embed the browser and get a free cross platform UI toolkit that's guaranteed to work everywhere :-)
Next update we'll fix the bug browsing non-locations, as those who open the app tend to try browsing first, before adding as a location it seems. It's alpha software so I hope you give us time to iron it all out!
Also, judging from the GitHub description, it's not a file explorer. It's a slightly extended Dropbox:
--- start quote ---
From cloud services to offline hard drives, Spacedrive combines the storage capacity and processing power of your devices into one personal distributed cloud, that is both secure and intuitive to use.
--- end quote ---
At the end of the day, it is an amazing experience simply just to search and organize files from not just devices, but disconnected drives. Search is lightning fast, the UI is clean and you own all the data, given its local first and peer-to-peer.
Hate it if you must, but we're super passionate about it and are ruthlessly working to reach full stability across all platforms.
I don't think many people on here actually understand it.
Comparison table on your website showing what makes it different to Dropbox etc. would help.
I think that you should be pitching it a little differently: many people are confused about what your soundbite is actually saying (I also thought it was a file explorer, like all other file explorers I have even used).
Maybe lean hard into a phrase like "Unified file browser; see all files on all your devices, all at once, all the time".[1]
The other thing I would emphasise is that this isn't syncthing. You don't have to mention syncthing by name, but you could emphasise that "Your files aren't synced between devices, they're visible to all your devices".
Too many people who would otherwise use this would dismiss it with "I'm already using syncthing"! AIUI, you aren't syncing files between devices, only syncing file-listings.[2]
PS. For my own use, unfortunately, I don't need something like this. Sorry.
While it would be a nice to have in theory, it just doesn't solve any pain-points I am currently experiencing.
For example, any important document I need to read on different devices is already either in my email, or on google drive. I view movies on Netflix+AMZ+Disney+, I only ever share photos with others, not with other devices that belong to me. It's rare that I look at a file stored locally on my phone and say "I need to see this on my PC", or vice versa. It just never happens.
[1] That came out sounding super-weird: I did warn you that I wasn't any good at marketing :-)
[2] I expect you provide value on top of that, like transparently copy-n-paste between two different devices, even from a third device.
You know, I had quite a bashful [though in a good spirit] comment on your work before, but, thankfully, HN throttled me.
But thanks to your reply here now I not only can't endorse you, but I have an evidence what you really make some extremely opinionated thing and everybody else is wrong.
I can't wish you luck and I don't see myself as someone who would wait for news for this project.
Here you are in the church of pg giving shit to people following the scriptures of pg.
Creators - ignore shit like this. Keep iterating. I like your idea, your execution will get better and better. Well done both on releasing stuff and going open source!
Likewise if you decide to charge for some parts of the tool then you're more than welcome to.
Ignore the haters.