Earlier this week at the WWDC 2020 keynote, Apple announced that Macs are officially moving to Apple’s custom silicon. In this video, we take a look under the hood to see what exactly this change means for developers.
I’ll be completely honest I’ve never really understood programming or how developers compile and write codes. But this video was super helpful and now I finally get it. Thank you for doing this in simple terms for people like me who aren’t as tech savvy can understand Great content subbed!
This is probably one of the best videos I've seen discussing the topic of the ARM transition and what it would mean for developers. I'm kinda considering getting started with macOS/iOS development now (even though I haven't written a line of code since I was in middle school and I don't remember anything lol)
Great explanation of how to write a command for the cpu in binary! Going from "add memory 0 to memory 1 and store in memory 2" to "00 00 01 10" was so clear!
if you are a computer science student and are 'enchanted by this' then I wonder what your curriculum is. this type of migration has been around for at least 40 years. Early 90-ties I even asked a software company to develop something similar for a computer system that was WAY more exotic than intel or arm. And ANY gnu or clang computer supports cross compilation for many years now. so generating binary executables on system of type A for a system of type B has been around since the late 70-ties
@@u198091 The thing is if the migration is been done completely or at the very least noticeable, in terms of apple, they already transition from power to intel, now from x86 to arm, this is not easy task, microsoft already fail at this more than a couple of times.
SimGunther in order to take advantage of CISC you need the X86 architecture which belongs to intel and is on lone to AMD otherwise you can’t have a Hybrid version - even if you figure out how to do it some 20 years ago you find out nope intel won’t sell or lone it to you so 2 years of knowing 90% of everything in a cpu - waste bin 🗑
Nice video and well explained. However, as this might apply for general "apps" development, it must not necessarily apply for server-side apps. Specially for cloud developers who most of the time deploy stuff in containers for x86 architecture, the new M1 will have to show that the experience with tools like Docker and x86 containers will be good. Local development can surely take place with arm-based-tooling, but the M1 must be able to properly build and run x86 images for local testing...
Yeah, it will. Compilers not only can compile something for ARM architecture, but they itself compiled for ARM. Also stuff related to neural networks will be much faster than on current intel based macs due to "Neural Engine" built in Apple Silicon.
Great overview. A couple of things I've not seen discussed: As the Macs will become ARM based, are Apple likely to use this as an 'opportunity' to align Macs with the rest of Apple's portfolio and force everyone through the app store and not allow independent loading of apps? And if Apple are in control of chipsets, is one of the knock on effects of this that they move to a far more aggressive update cycle for Macs with potentially significant upgrades in speed and graphics capability?
Haydn Mowbray Craig Federighi said that Apple will not be doing that. You can even disable their security software to load apps that otherwise you couldn’t. There will still be terminal, etc.
You really did a good job explaining this!!!! I have basic knowledge on programming and computing and I got this with your explanation than with any other tech youtuber. Thank you, instant sub
I recently saw an interview with Craig Federighi and he says that the parallels that ran on the Mac they demonstrated during WWDC can only run ARM Linux. I assume it might be able to run ARM windows but certainly will not boot an x86 OS according to his comment. I'm sure someday there may be an x86 emulator / virtual machine available on arm macs though.
As per the Verge article linked, it seems like ARM Windows might be an issue. It'll be interesting to see if VMware and Parallels can rewrite their apps to support x86 hosts on ARM. www.theverge.com/2020/6/24/21302213/apple-silicon-mac-arm-windows-support-boot-camp
Depending on the success of ARM Macs. If they blow Intel PCs out of the water and captured significant more market share, Microsoft will be forced to produce ARM Windows in order to not lose market share.
@@thomasn708 ...and the update/patching process on ARM windows will still be an unstable shitshow. Buy Macs to run Mac apps and some virtualization. If you need PC stuff, buy a (cheaper!) PC
As a Mobile App Developer, should I get an Intel based Mac or should I wait for the Apple Silicon based one? I mostly work on Native Android and Flutter. And plan to do a little bit of swift in the future. My main concern is that whether our frameworks like React, Angular, Django, etc would work properly? Also what about the support IDEs like IntelliJ? Finally, will this mean anything for the most loved bash? I feel like getting a Intel based Mac will be better unless you develop for MacOS. What are your thoughts?
Oh Man, how did I forget about the infamous Gradle system that takes up a lot of resources and the thing I use daily. =) What do you think about support for these things?
This is a fantastic question! One of the great things about macOS being UNIX-based is that we have easy access to lots of great development tools. Many of these tools already run on ARM, and the rest can be ported over with few problems. To answer some of your points directly: Android and Dart already run on ARM devices (of course), so they won't be a problem. Front-end frameworks like React and Angular are based on JavaScript, which already runs in any browser on an ARM-based device. Django is a Python framework, and I've gotten Python to run on my iPad. IntelliJ and the rest of the JetBrains IDEs are written in Java and Kotlin, which already runs on ARM-powered Android devices. And your favorite command-line tools like bash are already running on ARM (just fire up a Raspberry Pi!). In fact, a good benchmark for what's compatible is to see if people have used it on a Raspberry Pi or similar single-board computer. You may be surprised to see just how many tools and frameworks are available. It's honestly up to you as to whether you want to wait for an Apple Silicon Mac or pull the trigger and get a new Mac sooner, but you wouldn't be limiting yourself if you opted to Apple Silicon. Hopefully this helps!
@@NoahRubinCoding thanks a lot, buddy! To be honest, I didn't expect such an informative answer. You cleared a lot of my queries. I really appreciate it. I totally forgot about Raspberry Pi. While I agree with most of your answers, aren't the SDKs made to be run on x86 systems? I was referring to that? Anyway, thanks again for explaining a lot of things. This took away a lot of my confusion.
A good way to think about it is that a framework or SDK exposes access to some service (app, game, API, etc.) in some programming language. If the language can be compiled for or interpreted on ARM, and if the service can run on ARM (i.e. the app or game is compatible - in the case of the web, this isn’t really applicable) then you’re good to go. Given that most development software is already ARM-compatible and many developers use Macs for the Unix environment, I really don’t foresee many compatibility issues - especially not with well-maintained software.
@@NoahRubinCoding Since Apple said that you can run iPad and iPhone apps natively on Apple silicon based Macs, do you think that with a little bit of tweaking, Android apps will be able to be run as well?
What Apple's switch to Silicon means for Users: 1- Every app download will double in size because it will need to have two separate executables. 2- Once the transition period is over and Apple drops Rosetta support, all your old perfectly functional apps (whose developers are no longer around) will stop working completely.
1- So what? 2 - Pretty sure any app worth a damn will get updated to work on Apple Silicone. Apps get abandoned all the time and become obsolete just due to OS updates.
Don't think this is true. You can download either X86 or arm and then if you download X86 on arm it will compile to arm on install. It will be like when devs provided ppc and x86 executables Before if you care about download size. 2 is true but support will probably last many years like last time
Astro Mec so what if the installs are bigger? That’s not a big deal. If apps are mission critical it’s unlikely that they’ll be abandoned by their devs and if they are someone will pick up the slack and fill the need.
Will the silicon be suitable for computer science engineers who are wanting to do coding and learn languages in it? ....Will they be compatible with the silicon?...?? And can we still be able to do android development in it?
This is a bit of an odd question, but I was thinking of getting a new machine this year, and with the announcement of these new macs, I am not sure if I should get one with intel or apple silicon? Most of the work I do is in R, but sometimes I build models in python; I am interested in your input in this. Also, great content and explanation! I subbed!
One correction I’d like to offer is Universal is not storing multiple executables under the .app “folder”.. Universal (1/2) leverage the Mach-O format to embed binaries for each platform into the same executable. It was heavily used back when 32-bit and 64-bit apps coexisted as well. So one executable, and it works even for command line programs. Apple’s porting guide has instructions to produce universal binary using any compiler.
I feel like the only people who really use Macs are developers and they use them to develop tools for other developers on Macs. This means that apple is making sure they keep their consumer base going by making up new work for developers to develop for developers on Mac.
Transition doesnt really matter if you run macOS only as they promise to support x64_86 binaries on ARM based devices. Thing is, this will reduce a chance of booting into other OSes and use the OS's exclusive software, playing triple A title games on Windows for example.
That’s a good point! Boot Camp will definitely be gone on ARM-based Macs. It could potentially come back in the future, but it would run an ARM version of Windows which would defeat the purpose of using Boot Camp to run Windows-exclusive software and games. It’s a price that Apple is willing to pay because very few people (relatively speaking) use Boot Camp.
ARM and x86 aren't RICS and CISC they might have started that way but today they are both "hybrids" of the two. There are no native x86 CPUs today, all of them are a RISC machine with microcode which translates the x86 instructions into a limited instruction set, basically every traditional x86 instruction is translated into a bunch of uops that are then executed by the CPU. ARM on the other hand started as a very limited instruction set but has since been extended extensively the architecture today has about as many instructions as x86. Compare ARM to any traditional "RISC" architecture such as POWER or MIPS and it's basically a night and day difference.
Hello this is a very important thing! I hope that in new ARM based OS we can get rid of temporal ditherig and PWM. Sensitive People cannot use a device with an LED backlight display anymore and even if they cinnect an external eink monitor, it will flash on images and videos... thats something going on on the image to make it appear better.. but being bad for eye health
My only doubt is the SIMD on ARM. Usually ARM architectures use 2 or 4 cores to do a instruction that a x86 does in a single core. This might lead to bad performance for multi-threading because the ARM a core is using cores that should be available for other instructions (this can be used for fake publicity comparing FLOPS VS Intel - since floating point operations are single threaded on ARM) Or Apple is competent and can pull this off and this comment will age like milk 😂. Edit: also idk how ARM will hold PCI lanes
This is my concern as well. SIMD is a must for being able to tune an application, especially games. If you look at the Tomb Raider footage they showed in the Keynote, it actually didn't look right. Many of the effects underwater were simply not there and the lighting was far "harder" with less gradation from lit-surfaces to dark areas.
Great explanations but I still have concerns! Will my current software still work on an ARM based iMac? I used Super Duper to clone my Intel based iMac and install a bootable user image onto another Intel based iMac. Will that image still work on an ARM based iMac?
You explained everything so well! As you suggested, the transition should be relatively easy for most developers who uses Apple's XCode and developer APIs. However, there are many less popular but important 3rd party applications (i.e. research application used by physics or computer scientists) on the Mac that use some old version of C/C++ binary with no ARM support or sometimes no access to the source code for re-compiling into ARM. I am not sure how well Rosetta 2 would work for these kind of applications. With that said, most of these applications are developed on Linux so maybe the solution is for users to move to Linux.
Don't forget OpenGL, they deprecated OpenGL, I would bet these new ARM Macs only support Metal. They probably deprecated OpenGL in the first place because of the switch to ARM.
MrDavibu Yeah! Apple stated in their doc that OpenGL would still be available on Apple silicon developer.apple.com/documentation/xcode/porting_your_macos_apps_to_apple_silicon but who knows how long the support will last.
3 года назад
A lot of devs choose Mac to create android apps or cross-platform. In your opinion, will it possible on M1 processor?
As a CS student, is it wise to buy 1st generation ARM mac? Like is it possible to run a specific IDE and write c, c++, python, javascript without a hustle?
I did Assembler programming when was a college student, it was fun, believe me. But after, I wasn't looking in machine code at all and really do not care which processor my code runs. It is the power of programing languages as C or Fortran. Agree?
This style of learning is not for me. I'm an end goal kind of person, im sure you mean good, but I just can't learning anything if I don't know when, how, or why I need to apply it.
On a somewhat different note, what does this signal to Microsoft? They're already partnered with Qualcomm for their upcoming Windows 10X devices and AMD are trouncing Intel in performance on x86 are we looking at the very least the demise of x86 or even Intel themselves?
I’m thinking of switching to all Apple products. is this good news for someone as a end user who is a semi serious Photographer(post processing) & maybe some video in the future?
ı am a bit confused about e-gpu's . Is this arm based mobile cpus can support e-gpu's . I Think that yolo or similar type of programs can be problematic. Also I think that cuda is again problematic for Nvidia in windows part when use Nvidia e-gpus. Thought I am worry about supporting bootcamp for windows .
A lot of pc elite morons claiming arm is inferior to CISC which is just ridiculous. Pop an already powerful fanless a13 in a laptop with a fan and beefier cooling and you can see why apple is ditching intel.
I was a bit confused because they said in the keynote that the translation happens at install time but their documentation says "If an executable contains only Intel instructions, macOS automatically launches Rosetta and begins the translation process. When translation finishes, the system launches the translated executable in place of the original." Hopefully it does translate on install though. developer.apple.com/documentation/apple_silicon/about_the_rosetta_translation_environment
I didn’t even know you had a channel too 🤪 Thanks for Luke for giving this link, great video... quick tip from a small youtuber 😀 Just try to keep your face and camera in line and the camera straight in front of you so you don’t have to look down, that kinda created a shadow to be honest or else, editing and quality is upto the mark
There is no way the change will be seamless for MOST developers. If you use heavy use of Docker then you'll still have to wait awhile. Go developers have to wait awhile. Game devs that used to BootCamp to DirectX can now never switch. Apparently environments with heavy Homebrew init have problems. Java developers that can use Azul JDK can switch, but MOST Java devs are on sizeable projects linked to older versions, which I assume will take time. So basically a SMALL subset of total developers can switch now. The rest should wait.
Nice video! Do you know what this will mean for web development? Most of webdevs buy a mac since package management (homebrew, node, basically all unix commands etc), develop enviroment and server setup pretty much mirrors linux. It's seamless and fast to setup, will this process me lost or layered behind a bunch of virtual software?
Honestly, you shouldn't notice any changes at all. Pretty much all of the development tools and languages you could need are already compiled for ARM or could be compiled pretty easily. Addressing your examples directly, Homebrew is based on Ruby, which already runs on ARM. Node already offers ARM Linux binaries, so they could easily update their macOS offering to include ARM. All of your favorite Unix commands already run on ARM (just fire up a Raspberry Pi and you'll see!)
@@NoahRubinCoding What if Apple doesn't allow you to install apps from the internet like on iOS (ie App store only)? Many of these development apps won't meet Apples strict guide lines to be in the store
I made those videos back when I was far less experienced and that code looks nothing like what a real compiler/interpreter would look like. I’d consider making a video explaining the intuition behind how interpreters actually work.
Don’t talk about binary please. Plenty of dedicated videos exist of that already. You frame this video as being for developers but the content starts with things a developer should already know.