You know, back in my day, computer programs did what you told them to do. You would code them with specific instructions as to what to do. And the computer would faithfully execute those instructions to perform the task. But applications that use artificial intelligence these days, well, they're not like that at all. The most advanced ones act like black boxes, data comes in, output comes out. But the process the model uses to get from inputs to output. Well, that's anybody's guess. So first, let me take a deep breath, Okay And let's discuss the differences in AI and traditional programming and the pros and cons of each. And let's start with defining what a AI programming means. And we're going to do that within three fundamental components. Now, the first of those we can consider as data. Now, data is what makes AI systems learn and make better decisions and AI systems, they require large quantities of data to train effectively. Now we can think of data itself in three separate categories. So with AI systems, there is training data, this is training data that helps the model learn, then there's validation data, validation data tunes the model, And then we have test data, and test data assesses the model's performance. And for the best results will want that data to come from diverse data sets, which hopefully enables the system to generalize its learning to new and unseen data. So stuff that's not already included here. Now, the second fundamental component of AI, well, that is the algorithms that make up an AI system. Now, the algorithms are these sets of rules that AI systems use to process data and make decisions. So, for example, ML, or machine learning, algorithms, they learn and make predictions and decisions without explicit programming. And then this RL, or reinforcement learning, and that enables an agent to learn behavior by performing functions and receiving punishments and rewards based on their correctness. All right. The third component, what is that? Well, the third component is computing power, or "compute". Now, you've probably heard plenty of stories about companies in the news right now scrambling for GPUs. And that's because AI programs often need significant computing resources to process such large quantities of the data and to run these complex algorithms and specialized GPUs streamline these processes. So that's AI. What about then, how that compares to traditional programming and traditional computing? Well, they're quite different. Unlike AI programming, traditional programming requires the program to write explicit instructions, or rules, and that's the things that the computer follows in every possible scenario. So we'll write some logic here, along different paths, maybe an if-then-else, that sort of thing. and we have to program this all in manually. It's a deterministic approach, a bit like a recipe where the computer executes step-by-step instructions to achieve the desired result. That's an approach that's well-suited to clearly defined problems that have a limited number of possible outcomes. But it becomes nearly impossible to write rules for every single scenario when tasks are complex or need human like perception, like image recognition, for example. Those scenarios are firmly in the AI wheelhouse. So let's consider the advantages and disadvantages of AI programming and traditional programming across three aspects. And we'll start with number one, that's stability and scalability. Now, these are two competing concepts. Traditional computing is stable. Once a program is written and debugged, it will perform operations the exact same way every single time. But the stability of rules-based programs comes at the expense of scalability, because traditional programs can only learn through explicit programing interventions. They require programmers to write code at scale. The bigger the scale of operations, the more code has to be written. AI programs offer more scalability than traditional programs, but with less stability. The automation and continuous learning features of AI-based programs allow developers to scale processes quickly and with relative ease. But the nature of AI systems to improvise means that programs may not always provide consistent, appropriate responses. You never quite know what you're going to get. Okay, what about number two? That's control and transparency. Now, traditional computing offers developers full control over the logic and behavior of software. If a program doesn't behave as expected, so it has a bug, developers can trace back through the code base here to identify and correct the issue. But not with AI systems. Complex AI models like deep neural networks often work like black boxes, as I said, where the input and the output are known, but the process the model used to get from one to the other is unclear. AI systems can be hard to control and interpret, and this lack of transparency can be problematic in industries that prioritize process and decision making, like health care, like finance. Now explainable AI, that's a fascinating emerging area. So over time this will hopefully become less of an issue. And then finally, number three, there is learning and data handling. Now, traditional programming is rigid. It relies on structured data to execute programs in order to teach a program new information. The programer must manually add new data or adjust those processes. Also, traditional programs may not be able to accommodate unforeseen scenarios without explicit programing for those cases. But because AI systems learn from vast amounts of data, they're better suited for processing unstructured data like images, like videos and natural language text. AI systems can also learn continually from new data and experiences, allowing them to improve their performance over time. Now, look, this isn't a zero sum game. It's not like traditional programing is going away anytime soon. AI systems, they're not without their complications, but the use of AI represents an opportunity to keep pace with an increasingly complex and dynamic world by meeting it with sophisticated technologies that can handle that complexity. Even if those pesky AI programs don't always do precisely what I ask them to.