API as a Value Chain
“Humans are an API to ChatGPT. ChatGPT is an API to Python. Python is an API to C. C is an API to assembly. Assembly is an API to binary. Binary is an API to physics. Physics is an API to the machine that runs the universe. It’s computation all the way down.” — Lex Fridman
The statement above highlights the idea that everything in the universe can be considered interconnected systems, each functioning as a handy dandy API for the next. It gives a thrilling new perspective on the world. Imagine the universe as a big old software program where everything is connected and communicating through APIs; even our thoughts and the laws of physics are just a bunch of code talking to each other.
Everything can be seen as a value chain made up of APIs, whether we’re talking about software applications or the universe itself. The idea that each system component offers a service or a set of functionalities to other components is at the heart of this value chain. The API serves as the interface between the various parts and makes this service or capability available. By giving access to its features and capabilities, an API, for instance, in the context of software applications, enables interaction between one program and another.
This is similar to how physics offers the fundamental building blocks and laws that guide how everything functions in the universe. Other systems, such as the machines that control the universe, have access to and use these laws. Each link in the value chain depends on the one that comes before it, and each link lays the essential groundwork for the link that comes after it.
The value chain can be thought of in this way as a cycle of interdependence, where each link depends on and benefits from the others. As the parts combine to form the intricate systems that comprise our world, the value chain is self-sustaining and self-reinforcing.
What is an API?
An API, or Application Programming Interface, is simply a set of rules that specify how various system parts must communicate with one another. When we use a software application, we interface with the APIs that govern its behavior. APIs allow software applications to communicate with one another, facilitating the creation of integrations between different systems. An API acts as a messenger that takes requests and tells a system what you want to do, then returns the response back to you.
APIs are a crucial component of modern software development because they enable developers to connect and integrate various systems, thereby increasing an application’s functionality and user experience. For example, a travel app might use an API to connect to a database of flights, hotels, and rental cars, providing users with up-to-date information on prices, availability, and booking options.
APIs also play a critical role in developing new technologies, such as artificial intelligence and machine learning, as they allow developers to easily access and utilize complex systems and algorithms within their applications.
At the top of the hierarchy, Fridman suggests that humans are the API that interacts with the AI-powered language model known as ChatGPT. This model has been trained on vast amounts of data, allowing it to respond to natural language queries in a conversational manner. However, it’s important to note that ChatGPT is just a tool and can only respond in the way it has been programmed to.
Moving down the hierarchy, ChatGPT is an API that interfaces with the programming language Python. Python is a high-level language that makes it easy for people to write and understand code. However, just like ChatGPT, Python is just a tool that can only do what it has been programmed to do.
Next, Python is an API that interfaces with the low-level language C. C is a considerably simpler language that comes closer to computer-friendly machine language. Compared to higher-level languages like Python, it is more effective for system-level programming.
This allows Python to interface with the lower-level language, allowing it to take advantage of the performance benefits that come with working directly with the computer’s hardware. In this sense, Python acts as an API that provides a higher-level interface to the lower-level capabilities of C.
Going further down the hierarchy, C is an API to assembly language, which is a language that is even closer to machine language. Programming for the central processor unit of a computer is done in assembly language (CPU).
When developers write a program in a high-level language like C, they create an API for the underlying hardware. The program acts as an interface between the hardware and the developer, allowing the developer to write code that interacts with the hardware in a more human-readable way.
However, the hardware itself can only understand machine code, which is written in binary. To bridge the gap between high-level and machine code, the compiler translates the C code into assembly language, a low-level language specific to the architecture of the target hardware.
Assembly language is then used to create machine code, which the hardware can understand and execute. In this sense, C acts as an API to assembly language, allowing developers to create high-quality, reliable, and efficient applications while providing the necessary control and efficiency required to interact with the hardware at a low level.
At the bottom of the hierarchy, assembly language is an API to binary, which is a series of 1s and 0s that the computer can understand and execute. Binary is the lowest level of abstraction and is the most fundamental building block of computer programs.
It provides a higher-level, human-readable way of writing code that can be translated into machine-readable binary code. Assembly language is a low-level programming language that uses a set of mnemonics to represent the operations that can be performed by the computer’s central processing unit (CPU).
The mnemonics are translated into binary machine code by an assembler, which converts the human-readable instructions into a sequence of binary instructions that can be executed by the CPU. In a sense, assembly language acts as an interface between the programmer and the underlying machine, providing a more abstract representation of the binary instructions that the computer executes.
By using assembly language, programmers can write code that is more readable and easier to understand while still having the ability to access the full power of the machine at a low level. This abstraction is what makes assembly language an API to binary.
Finally, binary is an API to physics, which governs the behavior of the universe and everything in it. Binary code is used to control the behavior of machines and computers, which are ultimately physical systems. The underlying physics of these devices, such as the movement of electrons and the interaction of transistors, can be described and controlled through binary code.
Binary code links the physical world of hardware and the abstract world of software in this manner. We may take advantage of the rules of physics to execute numerous computations and operations by employing binary code to control physical systems.
Physics provides the underlying rules that determine how objects in the universe interact, and it can be thought of as the API to the machine that runs the universe.
To sum it up, APIs are like the legos of tech, they help all the systems play nice together. By seeing how APIs fit into the big picture, we can make better decisions about using and improving technology. Whether you’re a developer, a business person, or just a tech lover, understanding APIs and their role in the value chain is worth your time and investment. The future of technology depends on it!
A Lex Fridman praise paragraph
Lex Fridman is a standout in the tech and AI world. He’s an expert researcher, professor, and communicator who brings a unique perspective and deep understanding of cutting-edge technology and its impact on society. He’s a brilliant mind and a great educator, making complex ideas accessible to a wider audience. On his podcast, Lex invites some of the most influential and knowledgeable individuals in technology, AI, and related fields, offering listeners diverse perspectives and valuable insights. His guests are always top researchers, tech executives, or thought leaders, and they bring their A-game to provide an entertaining and educational listening experience. If you’re a tech enthusiast or just curious about the future, don’t miss out on this must-listen podcast hosted by the talented Lex Fridman.