Two issues facing software in the 2020s

I have been thinking about the problems in software a bit lately. As I see it we have 2 core issues, the first is the diseconomies of scale in software. The more and bigger the software, the more it costs to develop. The second issue is software security and maintenance. 

Diseconomies of scale are an issue because we keep writing more software. And the expectations of that software continue to rise. Smartphones started out with phone calls, texting, and surfing the web. Now your smartphone tracks your exercise, interacts with your smart home devices, does payments and more. As the smartphone becomes your main connection to the digital its complexity increases, and at the same time the expectations for everything else increase. 

I have four potted plants in my apartment. I could have smart water meters in each pot that track when I need to water those plants. In the past no one would have expected your plants to be smart. Today it is an obvious next step for people who’s plants always die. 

Since your smartphone is in many ways you, long term I expect things like door locks to transition from keys to phones. Cars have already made this transition. My car unlocks via a button press. Using the actual key requires me to first remove it from the dongle. 

Now a serious question is, “Why do you need a dongle to start your car?” Your phone has all the capabilities of the dongle. You don’t use the key anyway, what is the point of the dongle? Extend that question to everything in your life. 

Why not have a way to check on your phone if you left the oven on? 

Why not have your water heater hooked up to your phone so you know if your kids left you any hot water?

Why not have a GPS dog collar hooked up to your phone so you always know where your dog is?

Gradually everything moves to your phone, and as more things move to your phone you will begin to ask “Why isn’t this on my phone yet?” 

The phone ends up as an incredibly complex, absolutely essential part of your life. And as it does so it pushes everything else to connect to it. 

We are on a trajectory that yields an incredible amount of computerization. Who is going to write all that code? It is going to be incredibly expensive with today’s linear coders. 

Software maintenance is the second big issue. We keep building more and more software, but we aren’t getting any better at maintaining it. Software is a weird animal because it is never ‘done’. You can reach a point where software is feature complete and seems perfect. But not really, hackers could discover a vulnerability you must patch at any time going forward. If that happens you need to have people who can update your software quickly. But if you reached feature complete 10 years ago and laid off all the programmers, your project is now poisonous. No one can use it until you hire and train people to update that software. 

Software seems like it can be completed, but that is a trap. Security is not the only risk. Operating System updates are another problem. Microsoft and Apple constantly update their systems and API requirements. Customer expectations change as the software marketplace changes. 

The final trap is what happens when you get off the treadmill. Say your software is complete, it works perfectly and has no vulnerabilities. So you let it sit with minimal updates, a skeleton crew to keep it running. Well, ten years from now no one will be willing or able to modify that software. Maybe it’s Cobol, or Java 8 or Typescript, but the tech is now old. Any programmer who works on it will have to spend time learning technology that is worthless long term. 

Links Post

Lots of links this round. I’ve had a lot of time to surf around the interwebz and came across a number of belief updating thoughts. Overall these updates make me feel very optimistic about the future. 

Watch out for the Zircon 5 though!

A Chemical Hunger

Why is everyone so fat these days? Is it just because humans are lazy gluttons? This series of posts dives into possible chemical factors to fatness. 

SpaceX:  Starlink and Starship

SpaceX has improved cost to orbit substantially. I haven’t paid a lot of attention recently, but I was big into space exploration in college. My original thought was to work for Space X as a materials engineer. But after realizing what my plan B was likely to be, a steel mill on the Mississippi River, I made the practical decision of switching to Physics. 

The summary is that Space X has put the competition in a rough spot. There isn’t even a reason to keep maintaining the rockets that compete with Space X because they are so much more expensive. Starlink is an opportunity for SpaceX to increase demand of satellites and thereby increase demand for launches. It is a very Amazonian style play. I like it and am pretty excited about the potential of cheap and good satellite internet. 

Solar + Batteries

I was also put onto this one by Casey Handmer’s blog. Solar panels have had a 75% or so improvement in cost since 2000 or 2010. Batteries are starting to encroach on gas powered peaker plants to the point they are uneconomical. I was always a nuclear power guy. But if solar continues improving at even half the rate it did in the last decade, nuclear is probably dead. Building a nuclear plant could take 10 years, by the time that plant starts producing power solar could have improved enough to make it obsolete. 

RethinkX

RethinkX has a great document on the potential of Solar power in the next decade. I like that document a lot. They also have a very interesting prediction paper on Autonomous vehicles.

Disruption, Implications, and Choices

Rethinking Energy 2020-2030

https://static1.squarespace.com/static/585c3439be65942f022bbf9b/t/5fa57fc9d228a73c73ec4669/1604681700368/Rethinking+Energy+2020-2030.pdf

Tesla

I’ve watched a number of Munro Tesla teardown videos and they have won me over on the Tesla question. I’ve also had the thought that an electric car is going to be more useful in a collapse scenario. A home solar installation will last for 20 years and charge your car the whole time. But you aren’t going to be able to procure gasoline in a collapse for 20 years without serious preparation compared to buying a solar roof + electric car. 

At this point I may never need to buy another combustion engine car again. In 5-10 years electric cars will have equivalent range and competitive pricing to ICE cars. Electric cars will also have more power and require less maintenance. The decision of what you buy will be pretty heavily in favor of electric at that time. 

Monro Live

RSS still works and is pretty awesome

Despite it being the age of social media, I get a lot of my content via RSS. I have the mac Reeder app which lets me subscribe to blogs. It is nice because without RSS I will see a blogger on Hacker News or reddit, enjoy their post and then their next post won’t be on the front page so I won’t see it. RSS fixes that because I can read their post and if I enjoy it, subscribe to their RSS feed. 

Most blogging software supports RSS natively. WordPress comes with RSS by default and so does Ghost. I find it pretty easy to use and really enjoy how it lets me control my ‘feed’ without influence from any algorithms or anything. 

Why not just subscribe to the email list? Well, I’ve found that I use my email inbox for different things than my RSS feed. When I’m going through emails, reading a long form email breaks my flow. Whereas when I’m going through my RSS feed I’m planning on reading longer form content. 

Blockchains are the first mega scale software daemons

A software daemon is some bit of software that runs independently of human control. We have been creating them for most of computing history. But the majority are not that important. Nobody knows their names. Nobody really cares that much if they have bugs. If one stops working you restart it and move on with your life. 

Cryptocurrency blockchains are also daemons. Each blockchain is just software that performs whatever tasks it is programmed to do. The interesting differences are the scale and the distributed nature of the blockchain. Millions of people contribute hardware to run blockchain software as opposed to a cronjob running only on my laptop. 

The Ethereum blockchain is a billion dollar distributed computing platform powering things like DNS names (ENS) and art NFTs. Anyone can submit a ‘contract’ to Ethereum as it is essentially a daemon that runs other daemons. Compared to the log daemon that collects logs on your computer, Ethereum is immensely larger. Restarting your log daemon is essentially a free operation. Restarting Ethereum from zero would cause billions of dollars of losses. 

Due to their decentralized nature it is also impossible to ‘stop’ a blockchain software daemon. Ethereum exists on millions of computers and as long as even one of those copies continues to operate Ethereum will continue to exist. 

People also care enough about these blockchains that they have names. You have the ‘Ethereum Classic’ and ‘Eth2’ daemons which run very similar software, yet their identity is actually important to humans. Millions of copies of Linux and Windows are running right now, but none of them are important enough to have names.