Error handling, interface {}s, package management, no comprehensions, slice behaviour … lots of things that fall on the “annoying” spectrum. But I’ve used Go in a few successful projects and it has a list of attractive features too, including fast adoption and a solid stdlib. Compile times and static builds are also pretty great.
I’ve been on the hunt for the sweet spot building web and back end services and have yet to find a language that fully satisfies.
I agree with the Jenkins sentiments here – has anyone tried http://concourse.ci/?
Last time I looked at it (~4 months ago), I just couldn’t grok how it worked or how to set it up. Seemed fairly tied to Cloud Foundry – or at least how CF is set up (BOSH, et al), but I admit to not spending much time on it. I need to take another look at it though, since I like the thinking behind it.
“Do users want their own general-purpose personal cloud computer?”
I think that by now it is clear that the answer is a resounding “no”.
I’m not so sure about that. Sometimes it takes a significant push toward certain ideas before value becomes apparent. Personally I think Urbit is speaking to a very serious need for individuals to regain control of the network. Not everyone knows how to express their frustration with the current everything-as-a-service model that industry has imposed – it’s very hard to have it any other way, even though so many other orientations are possible.
The answer may be ‘no’, but how can we be sure? There isn’t an available option that’s easily usable by an everyday person.
Off the top of my head, two business terms for this are “market research” and “customer validation”. There are many more, to say nothing of hundreds of books on the topic. Business seems the most relevant, but other fields certainly express this concept and have ways of doing so.
I can sort of understand Urbit’s loner nerd desire to redo everything at once, except “right” this time, but I assumed the constant failure to cite existing any pre-existing work was pretension and not sheer ignorance.
Thanks for the implication that we’re ignorant to prior work. Appreciate that!
I do understand that we aren’t doing a great job of explaining ourselves though, so it’s fair to be annoyed with how opaque the project seems. So, fair criticism. Let’s see if I can explain:
Clearly ours is a problem that many smart people have worked very hard on. Let’s pick a grab bag of contemporary examples: IPFS, tent.io and Ethereum. In all these cases the projects are taking on a single specific component of giving individuals control over their computing. These are all great efforts, and in some cases there are is some overlap in problems they are solving and things that Urbit handles. How does an ordinary user get all of these services running on the network in a place that they trust?
As I see it the closest “market research” is the early PC era, which we think about a lot and perhaps could cite more often. Today there are plenty of mainframes that live on the network, but nothing that resembles an Apple I. A unix box with an internet connection is usable by a developer, but it costs a lot of time and energy to bridge the usability gap between unix and user interface. So, rather than figuring out how to get a PDP on your desk we say: forget it, let’s just build a new and simpler layer.
The entire Urbit stack is <20KLOC. I have seen developers more or less fit the entire thing in their heads. This is a very different experience than dealing with the complexity of unix, and it addresses a pretty different market than that grab-bag of projects I mention above. In fact, we’d be really happy if we could interoperate seamlessly with those services such that it makes them easier for ordinary individuals to access and put to good use.
So, do people want open-ended tools that they can own and control? Well, historically, I think the answer is yes. But we don’t have such a thing that lives permanently on the network and is easily accessible. I can rewrite the unix running on my laptop, but I can’t fork the Facebook UI or send a message from Facebook to G+. Our hypothesis is that there’s simply a missing software layer that would enable us to build services as people actually want to use them.
I’m sorry I was unclear: I did not mean to imply Urbit’s creators were ignorant, I meant to state it. I no longer see the project’s comprehensive failure to cite existing work as arrogance and ignorance is my new, current understanding.
Thanks!
I’d be more than happy to hear or discuss the prior work you think we ought to be citing. I’d also be curious to understand it in terms of how you think it ought to effect the project.
I think I appreciate this as a pretty good U/X compromise while we learn to adapt to the instantaneous relationship we have with computer intelligence. Inevitably, and hopefully with some awareness, we’ll learn to harness the electric extension of our mind, although I keep thinking that awareness itself is biologically limited. Deep thoughts.