00:00:04.860
Hello everyone! I know I'm giving the closing keynote at a great software conference: RailsConf. Normally, I'm used to being in person, allowing me to gauge a room's body language.
00:00:11.160
But looking out over the virtual room, my guess is that most folks have not engaged a lot with hardware in their careers. I assume there are many software engineers present—certainly, I am one of them. Depending on when you started your career, we've gotten further and further away from hardware.
00:00:28.500
Before my talk begins, I want to mention the interesting segment we heard from the sponsor discussing deployment on ARM. This leads me to my subject today, which is hardware/software co-design and what I perceive as a coming golden age.
00:00:51.480
Historically, there has been a divide: software has grown further away from the underlying hardware. On one hand, this separation has allowed us to focus on pure software architectures, which is important. If you're from my era, you probably have stories of racking and stacking servers, cabling, and dealing with different vendors. Many of us are thankful not to be back in those times, where we can now provision resources in the cloud. However, this disconnection carries risks.
00:01:24.540
One significant risk is that we might take this software-centric thinking too far, beginning to believe that only software matters. It can lead to a mindset where the hardware we operate on becomes irrelevant or, even worse, is dismissed or denigrated. I believe this attitude is deeply problematic. Such software centrism can be damaging.
00:02:00.840
Mark Andreessen's 2011 essay, 'Why Software is Eating the World,' epitomizes this sentiment. I confess I have a complicated relationship with this essay. Initially, I found it naïve, thinking it contained obvious truisms or predictions that wouldn't materialize. However, five years later, I revisited it and began to think I might have been too hasty in my judgment.
00:02:40.500
While I recognize that software companies have indeed disrupted industries, this disruption has not been complete; it tells only part of the story. Andreessen cites healthcare and education as sectors ripe for transformation by software, yet I question the extent of success in those areas.
00:03:37.560
In healthcare, one of the most significant innovations in the past decade has been mRNA-based vaccines. While software played a critical role in this development, it would be an overstatement to claim that software alone enabled this healthcare innovation. The same skepticism applies to education, where we see that a multitude of kids, including my own, have been using Chromebooks for distance learning.
00:04:23.460
The Chromebook exemplifies an integrated hardware/software innovation. Its advantages stem not solely from software but also from hardware-based innovations—the capabilities for managing numerous devices across educational systems. This stands in stark contrast to Andreessen's perspective that views only software as critical for disruption.
00:05:06.720
He proclaims that software, through its economic capabilities, will transform any industry. Yet, as we've seen in sectors like healthcare and education, this vision underestimates the complexities of these systems. On the ground, the realities often hinge on hardware, architecture, supply chains, and operational capacities.
00:06:36.540
I want to argue for a more balanced view where we recognize the interplay between hardware and software. Companies that Andreessen highlights as thriving are often those whose success intersects both realms, such as Amazon and Google. Both rely heavily on significant hardware components alongside their software solutions. Their reliance on hardware is not incidental; it's a co-dependent relationship.
00:07:54.840
If we consider the so-called success stories touted by Andreessen, many correspond to software companies that have not persisted over the long term, while hardware-oriented companies like Nvidia and AMD have outshone them. The narrative of 'software eating the world' must include a recognition of ongoing hardware innovation and the need for software engineers to better appreciate this relationship.
00:08:22.800
Turning to Gordon Moore's 1965 essay, there's much that still resonates today as we examine the evolution of microprocessors and their economics. Moore foresaw the potential for technology to scale down costs and simplify design, leading to revolutionary applications. However, he didn't discuss a critical factor: that as we pushed for denser circuits and lower costs in manufacturing, challenges would arise, especially in yielding sufficient productivity.
00:09:29.760
This observation led to what we now refer to as Moore's Law: the doubling of transistor density and the drop in cost per chip. Yet, we've increasingly found ourselves at an inflection point where traditional scaling doesn't yield the same benefits, and the economics of these innovations are becoming more complex.
00:10:16.740
By around 2006, we started witnessing the slowdown of Moore's Law, leading us toward multicore processing as we pursued more powerful computing even amid challenges with increasing transistor counts. This transition reflects an important shift in how we think about performance and efficiency in computing.
00:10:49.260
Fast-forward to now, emerging technologies in engineering and design breathing new life into hardware. We see the potential for co-designing systems where hardware realization focuses directly on how to make the most effective use of computational resources, alongside efficient software optimizations.
00:11:39.540
As open source projects continue to gain traction, we'll see the barriers fall for hardware and software integration. Examples include the meteoric rise of open-source hardware began to carve pathways for low-cost production and prototyping, allowing makers, engineers, and startups to experiment with hardware in ways that were impossible in previous eras.
00:12:33.420
Likewise, the development of open FPGA and RISC-V instruction sets illustrates how open-source initiatives can seed innovation across multiple layers in computing. As we look over the horizon at what is possible, we are on the brink of a paradigm shift—a co-design of hardware and software designed to leverage both resources seamlessly.
00:13:24.060
If we combine innovative hardware, efficient software, and accessible infrastructure, it amplifies production capabilities and facilitates fresh approaches to a range of applications in technology, from artificial intelligence to telecommunications.
00:14:08.100
All of these advancements point towards a bright future where the integration of hardware/software co-design leads to greater potential within the industry. We are building the capacity for systems to deliver these interactions, thus embracing a dual focus on both hardware and software as we advance.
00:14:48.720
In closing, the opportunities for collaboration across disciplines within technology have never been more abundant. We stand to benefit tremendously through improved interconnectivity of systems and a shared commitment to delivering high performance, cost-effective solutions. I urge everyone in the software engineering community to acknowledge the importance of hardware in our mutual endeavors.
00:15:30.600
Thank you for your attention! I'm thrilled to navigate this exciting terrain along with you as we embark on this journey of hardware/software co-design, looking to build unprecedented solutions together.