6 ms·
Why?
by rmdashrfstar 8y ago
Why?
- saagarjha 8y agoBecause they're platform specific. For example, on macOS, the UI and file manager integration should be done in Swift or Objective-C(++), the authentication in some C-compatible language to match the security frameworks, and the daemon in some language that isn't single threaded or garbage collected.
- chrisseaton 8y agoYou’re talking about that it uses platform specific APIs. You can use these APIs from Python, and then there is all the logic which decides how to use the APIs and that can be in Python as well.
- saagarjha 8y ago> You can use these APIs from Python You can do it hand-written assembly too, but usually it's more trouble than it's worth.
- chrisseaton 8y agoI think what we've worked out what you mean is just that if you were doing it you'd chose to do it in Objective C etc. That's not quite the same as anyone else 'should' do it.
- sametmax 8y agoNot only you can do all that confortably and productively in python, but you should. It's crossplatform, the task has not bottleneck for this vm, and it takes complexity down to one language. One language that as the very specific characteristic of being the best at nothing, but pretty good at everything, which in such an heterogenous software is what you want.
- saagarjha 8y ago> the task has not bottleneck for this vm Which is why Dropbox uses 100% of the CPU while syncing? It's pretty clear that trying to handle thousands of files is not a trivial operation. Sure, Python can do the job, but something native will probably do the job faster. > in such an heterogenous software is what you want No, not really. I'd rather the software work well, and I'd rate Dropbox as "passable" rather than "great".
- sametmax 8y agoIf dropbox is passable, please point at the alternative with the same features and better perfs. I'd say it's just a hard problem. After all, the fs routines in python are all written in c, file watching uses the os api such as inotify, so python speed has little impact on those operations. Same for the gui. Same for the network since you only have a few connections to one server. Dropbox doesn't even index the file content, so basically not many stri g or numerical operations. I've got 15 years of python behind me, and i'm pretty good at guessing what workload it's going to be slow at. This is not one of those. Many people tried to compete with dropbox. None of them won, because eventually, their software either can't match the features, the perfs, the availability, the price, or the ease of use. I should know, i tried to escape dropbox, as i don't like the company ethic stance, and tried many alterntive. Dropbox is just very, very good.
- saagarjha 8y ago> If dropbox is passable, please point at the alternative with the same features and better perfs. iCloud Drive works pretty well for me. > After all, the fs routines in python are all written in c, file watching uses the os api such as inotify, so python speed has little impact on those operations. Same for the gui. Same for the network since you only have a few connections to one server. You'll notice that these aren't the things I mentioned as things you shouldn't be doing in Python, aside from the GUI, which I will maintain should not be done in Python. Writing parts of Dropbox in Python is fine, but there are places where they really shouldn't.