5 ms·
I would have thought that Go would be perfect for this sort of system-level-like programming ?
by rawoke083600 8y ago
I would have thought that Go would be perfect for this sort of system-level-like programming ?
- kenhwang 8y agoLooks like they already have Rust/C++/obj-c in use, which all fill that purpose a bit better than Go would.
- basic1 8y agoGo wasn't a thing in 2007.
- mrgordon 8y agoGo wasn't created until 2009 and Dropbox already had tons of Python code by then as well as extremely accomplished Python programmers (they hired the creator of Python only a few years later). I also don't think Go would have allowed the tight integration with, for example, OS X where Dropbox actually superimposes their icons onto your Finder icons. As far as I understand, it was only because of smart programming and use of OS X's Python / Ruby bridge functionality that they were able to do it.
- Longhanks 8y agoThere’s an official API since 2014 (Yosemite): https://developer.apple.com/library/archive/documentation/General/Conceptual/ExtensibilityPG/Finder.html https://developer.apple.com/library/archive/documentation/Ge...
- NegativeLatency 8y agoDropbox predates that api though. They used to hack into Finder.app's api IIRC.
- Longhanks 8y agoWhich is part of why that extension point was introduced :) https://twitter.com/nickjshearer/status/608833134902140928 https://twitter.com/nickjshearer/status/608833134902140928
- crdoconnor 8y agoGo code is about ~30% more verbose than equivalent python.
- azhenley 8y agoWow, I wouldn't have expected that. Do you have a reference for the 30%? I'd like to see what is going on to cause that big of a difference.
- SEJeff 8y agoEvery other 5 lines being the equiv of: if err != nil { ... error handling ... } Python just uses exceptions, and they bubble up. No need for this excessively verbose error checking.
- SEJeff 8y agoI'm not sure why it is downvoted. This is true. I write both Golang and Python as part of my day job. I love both languages, but this is definitely the truth. Go is more verbose. It also gives you the wonder of the compiler telling you about doing stupid things. That doesn't make it a worse language.
- samfisher83 8y agoDoes go not have exception handling?
- lacksconfidence 8y agogo has something in the same general area of error handling called panic/recover. It's not exceptions in the normal sense, and devs expect nothing should panic across api boundaries.
- SEJeff 8y agoGo does not have exception handling at all. It is a proposal they're seriously considering for go2: https://go.googlesource.com/proposal/+/master/design/go2draft.md https://go.googlesource.com/proposal/+/master/design/go2draf... See the bits about error handling and error values.
- ChrisSD 8y agoGo isn't good at the system level. I.e. calls to C APIs are expensive, etc.
- JustSomeNobody 8y agoWait, I thought Go was designed as a system language.
- xapata 8y agoGo was designed for concurrency (and the docs take care to distinguish that from parallelism), fast compilation, and easy deployment.
- floatboth 8y agoOnly in the Google sense i.e. "for building big systems… like servers". Not as in "close to your operating system" or "you should write an operating system in it".
- rrdharan 8y agoDropbox uses Go (https://github.com/dropbox/godropbox https://github.com/dropbox/godropbox), Rust (e.g. https://github.com/dropbox/rust-brotli https://github.com/dropbox/rust-brotli) and Python on the server-side, and both Rust (https://github.com/dropbox/finderinfo-rust https://github.com/dropbox/finderinfo-rust) and Python on the client-side. As other commenters have noted, a lot of their Python use for large scale systems was an artifact of history and available choices at the time, but from my experience during my time there and following as an outside observer since leaving, they seem to make reasonable infrastructure and language decisions for their core product.
- bdr 8y agoWhy are people downvoting this? It’s a fine question to ask. I think people have been downvoting questions more lately, and it’s unfortunate.
- rawoke083600 8y agoSo much downvoting for a honest question :/
- kryptiskt 8y agoThere are few comments worser on HN than "why didn't you implement in [rival language]?" as if [rival language] was a default choice that could only be deviated from if it was extensively motivated. The claim that Go is "perfect" doesn't make things better.