Apple’s Worldwide Developer Conference, which kicked off at the end of June, brought a slew of software changes to all of its devices. We finally got to see widgets on the home screen of iPads and iPhones, and macOS has received its biggest visual update since macOS Yosemite. But, the biggest announcement was saved for the end of the Keynote, where CEO Tim Cook announced over the next two years, their Mac lineup would transition away from Intel to their own Apple Silicon.

Let’s break down what this means.

Here’s me explaining why Apple has taken this move to move to their own silicon

As a software engineer who has done a 4 year computer science degree, I thought I’d try to explain exactly what this change means, and why I think Apple has decided to go down this path.

Let me begin by explaining what happens when software is built. Every app on your phone, website built or program on your PC is backed by code. The code describes exactly how everything on screen is displayed, and what happens when you click a button or tap an image. Even when you use a tool like Wix or Squarespace to create your website, even though you don’t need to write any code, in the background they are generating code for you, as this is what web browsers need to display the website.

Image for post

An example of some code used to generate an app

And, each of these programs, websites or apps needs to be understood by the hardware in your computer. The CPU or processor, the graphics card and the memory all need to be told what to do in order to display and run the app you have just downloaded. But, this hardware doesn’t directly understand the code that a software developer has written. In fact, the code that the developer is writing is often very far removed from how the processor in your computer or phone runs the program.

Image for post

Computer hardware — Photo by Thomas Jensen on Unsplash

The best way to explain this is through a metaphor. Imagine you need to get 5 basic robots to bake you a cake. The robots only know a few basic words — move their arms up or down, clasp their hands, and release their hands. Basically, they have the motor skills to bake a cake, but they have no idea how to open a packet of chocolate chips, or that eggs need to be combined with flour.

So, what you could do is spend a lot of time meticulously telling them every step along the way:

  1. Grasp the packet of chocolate chips
  2. Lift your arms up
  3. Keep one arm still
  4. Move the other arm in the opposite direction etc.

But, this process is tedious, and if you had to write it down and give it to the robots before they started baking the cake, and you couldn’t modify it while they were baking it, you’d probably find they’d make a lot of mistakes because you’ve missed some steps.

And, this is the same with programming or coding a program. The processor is the robots, and the processor only understands very basic commands — although it can do a lot of them at once. So, if you wanted to write a simple program to multiply two numbers together, you’d need to specify a large number of steps to get it to multiply the numbers, like pull the first number out of memory, pull the second number out of memory, multiply the numbers, and then put the product back into memory. This is tedious, and it’s easy for a software developer to make mistakes.

So, some smart person invented the idea of compiled programming languages. The idea being, you can write some code, and a program compiles, or converts the code into much simpler commands that the processor can understand.

#apple #hardware #apple-silicon #mac #ios

A software engineer explains why Apple is moving to its own silicon
1.45 GEEK