41 karma · joined September 5, 2010
"To set the scene, our codebase is mainly Go, including vendor directories, and a considerable amount of data compiled in, we have 2.5M lines of code, a full build from a clean clone on one of our Jenkins slaves takes 1 minute.
We had between 8 and 20 engineers working on that codebase. Importantly we all develop on Mac, but run in production in linux."
I have added a link to the classic scene as referenced by philbarr
I would contribute to a federated non-repudiable system.
Moderation can be just as auditable. (Perhaps with some emergency actions that then require a follow up consensus to make permanent)
On some occasions the original content must be purged, but the signatures can remain. Communal censorship is vastly different from changing the content.
I suspect your "pray" == monitor closely and fix fast (often never).
I agree it can be problematic that there is nothing in the language that indicates that the author is explicitly in 'pray' mode. It could well be that even a brief defence of a missing error check during a PR code review is not worth avoiding (un-triggered) err handling.
Poor old Tony Hoare (algol was mentioned earlier (rightly) as an exemplar of innovation) but Null in a safe memory managed context is a different beast to a true Null reference.
Null appears then as something between a known state and an not quite an exception, it carries different semantics from either, and whilst this could be seen as more complexity, I think the "I just don't know" case in practicality is useful, if harder to reason about.
Your point about the runtime is very true. Partly because of this - error checking is overrated! Yes I said it! We have go code that has been running in a reasonably high scale production environment for over two years and there are `if:...;err != nil` blocks that have never been touched in millions of calls per day, for 2 years. We have redundant services and trap panics in the rpc handlers, the nil becomes very clear and the rest of the system makes good progress. We save lines, save tests, and release a single binary fast. One example of where Go helps us deliver value faster, by being able to choose to ignore exceptions. Many people find this very uncomfortable. I say they are mistaking where the true project risks lie.
I'll definitely give that a go
I dont just mean government held data - but data the supermarket holds or the bank etc.
I want to be able to see my Nectar data alongside my bank data in a google spreadsheet or any other service that I trust.
"The title may present a slightly unfair impression. Not all of these issues have anything to do directly with the PhoneGap or Sencha Touch codebase, but are simply limitations of browsers, web-views and performance of mobile devices, though Sencha Touch / Phonegap framework does inherit those problems (and go to some lengths to work round the issues)"
But there are defects and issues in both PhoneGap and Sencha Touch that I mention. But I also recognise that they are both doing a good job on balance to further the cause.