[This fragment is available in an audio version.]
I’m a person who knows a lot about how computers and software work, is generally curious, and reads fast. I’ve been wrong about lots of things over the years. But there have a been a few times when a combination of technology-literacy and just paying attention to the world have made me 100% sure that I was seeing something coming that many others weren’t. Here are a few of those stories. The reason I’m telling them is that I’m in another of those moments, seeing something obvious that not enough other people have, and I want to offer credentials before I share it. Also, some of the stories are entertaining.
Unix in the Eighties · As an undergrad, I used Unix V6 on a PDP-11/34 back in 1979, but when I graduated the dinosaurs that stomped the earth had labels like “VMS” and “MVS” painted on the side, and mega millions of investment and marketing behind them. (If you don’t know what those labels stood for, that’s OK). But from time to time I got my hands on a Unix command line and kept thinking “This is just better” and then one time I wrote code that did networking and understood the power of fork and exec.
So I started going around telling all these IT management types that Unix was better than what they were using, and got blank looks, and when I got really insistent was eventually told to shut up. At that point I was young enough that I was convinced that, well maybe, I was just crazy, after all these were guys who’d been doing IT for decades. The rest is history.
Java in the Nineties · I was a C and FORTRAN guy, then in 1996 I was helping design XML and told myself that it’d be cool if XML had a working XML parser. In 1997 Java was The New Hotness so I decided to learn it and use it. I actually used Microsoft’s Visual J++ which, for the time, was pretty great.
Eventually I published Lark, the world’s first XML parser, then a couple of years later gave up on it because Microsoft and Sun both had their own parsers and who was I to compete with titans? I regret that because Lark was faster and had a nice API and if I’d maintained it, it’d probably be popular to this day.
By the time I’d done Lark, I’d seen the advantages of a programming language that came with a good standard library, ran on a VM, had garbage collection, and had a reasonably clean, minimal design.
So I started telling everyone I knew that they should do their next project in Java. Everyone I knew blew me off and said that Java was too slow compared to C++, had a primitive GUI compared to Visual Basic, didn’t have government buy-in compared to Ada, didn’t have a mainframe story compared to PL/1, or didn’t let you go fast and loose compared to Perl.
By this time my ego had expanded and I didn’t shut up and I think I may have actually changed a few people’s minds.
The Web in the Nineties · This was the one that was most irritating. By the late Nineties, the Web had expanded out of the geek-enthusiast space and Open Text, a company I co-founded, had done a nice IPO based on Web search and a Web document-management UI. I remember like yesterday a presentation at one of the early Web meetups, an engineering lead for a (then) big computer company. She said “This is so great. Our interfaces used to have to be full of sliders and dials and widgets or people would say we were amateurs. But now with the Web, there’s so much less you can do, but the important things are easier, and that’s what people want!” She was right.
Between 1996 and 1999 I was an indie consultant, trading off my ill-gotten fame as a Web Search pioneer and XML co-inventor. Everyone who hired me got told that they should damn well invest in Web delivery and stop investing in anything else. I heard “But native GUI is a much richer environment” and “The network will never be fast enough” and “Yeah, that stuff is just toys for kids, we’re serious Enterprise Analysts here.”
The change came, as they always do, maddeningly slow then frighteningly fast. My recollection is that the advent of fedex.com was very influential. Even the most non-technical business person could glance at it, realize “All I have to do paste in a tracking number, didn’t have to install any software, and there’s my answer.”
WS-* in the Naughties · Once the Web had become everyone’s favorite GUI, people started to notice that it was pretty easy to set up a network-facing API using HTTP. (And at that time XML, which made things harder, but it was still pretty easy.) Way easier than the incumbent technologies like CORBA and DCOM and so on. Meanwhile, Roy Fielding was working on his doctoral dissertation which established the key concepts of REST.
For some reason that I’ve never understood, IBM and Microsoft chose this time to launch a land-grab. In a really annoying and unprincipled way, they rallied behind the banner of “XML Web Services” and jammed a huge number of mammoth, stupidly-complex “WS-*” specifications through compliant standards organizations. Even the most foundational of these, for example WSDL, was deeply broken.
A few people (including me) thought the Web didn’t need WS-layering, and that what we would come to call REST was astonishingly simpler and already known to work. We recoiled in horror and became avid anti-WS-* campaigners. Of all the things in my life that I’ve found myself against, WS-* was the softest target, because it basically just didn’t work very well. I remember with glee publishing blog pieces like WS-Pagecount and (especially) WS-Stardate 2005.10. Because the best way to attack a soft target is to make people laugh at it.
WS-* actually survives, last time I checked, as Microsoft WCF. But nobody cares.
Android in 2010 · When the iPhone launched in 2007, I was working at Sun, i.e. Java World Headquarters. Like everyone else, I was captivated by the notion of a pocketable general-purpose computer with a built-in GPS and phone and camera and so on. Unlike most, I was appalled by the App Store axiom that I could write code for the thing, but I couldn’t publish it unless Apple said I could. Also, I was (and remain) not crazy about Objective C.
So when Android arrived on the scene, it got my attention. Among other things, you programmed it with what felt like pretty ordinary mainstream Java, which I and a lot of people already knew. And if I didn’t want to use the Google store, I could post my app on my website and anyone could use it.
So in 2008, I wrote the Android Diary series, describing my experiences in getting an Android phone and writing my first app, which was so much fun. I discovered that the development environment, while immature, was basically clean and well-designed, and accessible instantly to anyone who knew Java.
People laughed at me, saying the iPhones were faster (true), had better UI design (true), and were uncatchably-far ahead, measured by unit sales (not true). Eventually Oracle bought Sun and I left and I got a nice job in the Android group at Google. When I joined, there were roughly ten thousand Android devices being sold per day. When I left, it was over a million.
What I see now: Run screaming from Bitcoin · It is completely unambiguously obvious to me that Bitcoin, a brilliant achievement technically, is functioning as a Ponzi scheme, siphoning money from the pockets of rubes and into those of exchange insiders and China-based miners. I’m less alone in this position than I was in some of those others, I think a high proportion of tech insiders know perfectly well that this is a looming financial disaster.
I am not going to re-iterate all the arguments as to why this is the case. If you want to find out, follow Amy Castor.
OK, let me add one additional argument for why Bitcoin is not and can never be “real” money. You know what real money is? Money you can use to pay your taxes. The USA, in 2018, had about 140 million taxpayers. Suppose 10% of them wanted to use Bitcoin to pay their taxes. Let’s say the global Bitcoin network can process ten transactions per second (it can’t, it’s slower than that). By my arithmetic, at 10/second it would take the whole network, running flat out, not doing anything else, over five months to process those payments and refunds. This is just Federal Income Tax.
Don’t get into Bitcoin. If you’re in, get your money out while you still can.
Trust me on this.