Let us start with an assertion made before by Stanislav Datskovskiy:

The computers we now use are descended from 1980s childrenâ€™s toys. Â Their level of bedrock abstraction is an exceedingly low one. Â This would be acceptable in a micro with 64K of RAM, but when scaled up to present proportions it is a nightmare of multi-gigabyte bloat and decay. Witness, for instance, the fabled un-debuggability of multi-threaded programs on todayâ€™s architectures. Â It stems purely from the fact that truly atomic operations can only exist at the bedrock level, and to fully comprehend what is going on in the entire machine requires wading though a vast sea of binary soup, boiled and stirred continuously by an asynchronous world. Â The futility of this task is why programmers arenâ€™t usually given even a sporting chance â€“ observe the lack of a hardware debugger in any modern computer

I take this largely to reflect on the failings of the dominant x86 architecture and its derivatives, but this principles carries through SPARC, PowerPC, DEC Alpha, ARM, and nearly every other architecture used today. Some minor exemptions might exist in incredibly restricted embedded systems like smart cards or the Zilog 80 and its derivatives embedded in nearly everything that needs a bit of computing. Even the exceptions are beginning to become less common now as low power ARM chips become more economical substitutes to previous embedded systems. Your coffee maker or breathalyser may not need or benefit from the additional computational power a multi core gigahertz class ARM CPU provides, but as the gigahertz class ARM chips drop in price they are replacing the simple enough to accomplish the task at hand chips of the previous age. The exceptions are cases in which the cost of regulatory compliance exceeds savings from switching to cheaper chips.

Now to Urbit. What does it do? Well, it takes the existing x86 architecture and Unix people run for a lack of better maintained alternatives, and it builds a Virtual machine atop of them.

The first thing this reminds me of is Clojure, the attempt to rebuild LISP inside of the Java Virtual Machine with all of Java's native libraries and all of Java's native limitations. Now, many useful things have been written in Java. Now with respect to Bitcoin I do admire some things written in Jave like the BitcoinJ library that powers MultiBit and SatoshiDice. As of this writing there simply is not any better implementation of Simplified Payment Verification in Bitcoin than those written in Java. The problem with these things, Clojure and BitcoinJ, however is not they way they work now, but how they work into the future.Â Java exploits, with respect to the browser plugin and local Java Virtual Machines, are nothing new and frighteningly common.

Urbit in ways beyond its foundation in the sand of x86 and Unix however failed its most crucial test, one in which a lucrative bounty was placed for the implementation of a simple program. While structural damning's for a future of computing ought to be damning enough, the failure to have an implementation of a simple vintage game written in the language in order to claim no small bounty speaks to both the small appeal of the Urbit solution and its lack of development in the sense that tools were unavailable for completing the task. Now, generally any Turing complete computing language is going to be able to complete all of the tasks another Turing complete computing language can. Depending on the languages involved though this could mean substantially more code and programmer's time to accomplish the task in one language rather than in another language. Consider the challenges that would be involved in rewriting DOS or MINIX in either Fortran 77 or COBOL. Or the amount of time it took for Javascript to birth the turd cultured from Clostridium Difficile and once potentially healthy portions of the colon known as Node.JS for which I have never met a website operator that does not constantly suffer attacks from outside. Inputs.io, CoinChat, WhiskChat, and other sites that both handle Bitcoin and run off of Node.JS have suffered trouble. Whether this sort of failing is inherent to Node.JS or the srt of people attraced to Node.JS I care not one whit.

The failure of Node.JS to either allow security or attract people who can create security is a fatal flaw. With Urbit a corresponding failure is that Urbit actually did attract people capable of creating things and did nothing more than waste their time. The primary social contract that has existed between people and computing technology has been that computing automates tasks and prevents people from having to repeat the brute work behind tasks to free people from the drudgery of having to focus on developing mastering of such wasteful tasks as making palatable coffee.

A best endgame for Bitcoin and computing, whether it happens next year or twenty years from now is going to be computing hardware that interacts directly with high level computer programming languages. First steps towards this goal might be simple reimplementation of CPython in a hardware description language running off of common FPGA development boards. More advanced implementations might involve LISP machines in the MIT tradition running off of ASICs developed with fealty towards their masters as their primary imperative.

More than any new "Payment Protocol", that abortion of a thing implemented in Bitcoin's first release or any new mining hardware could add to Bitcoin. The future, will not be some abortus offered by Intel under the guise of "Trusted Computing" but an actually trustworthy computer. A computer for which intelligibility is offered for anyone who cares to know is offered all of the way down to the silicon.

A primary challenge to Bitcoiners and people who use Bitcoin over the next year to next several decades will be that of choosing the straw in which they would like to lay verus the bedrock in which they actually can. No blockchain, not Bitcoin, not Litecoin, and not DogeCoin will be able to tell who made their beds in which foundation now will they care. In this future Edward Snowden was little more than a swift kick in the ass. If you want Bitcoin you choices going forward are going to be to either make your bed in the bedrock or to lay out your bed in the straw.

Half measures will survive into the future for some time I imagine. Still! People who wish to remain hostile. People who wish to steal, and people who demand central control. The commimg movements in computing are going to make Richard Stallman himself seem conservative with respect to the definition of open source.

This entry was posted on Saturday, December 14th, 2013 at 7:40 a.m. and is filed under Uncategorized. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.