ever tried to port a complex application across cpus? Especially from a cisc to risc platform?
Well, anybody who has debugged iOS Apps in XCode has
without knowing it, because testing the apps on the Mac involves compiling an x86 version and running it in a sandbox on the Mac with an iOS (not ARM) emulation library.
Play with a Raspberry Pi sometime - the majority of the usual range of
free Linux software runs on it - including full-blown desktop apps like LibreOffice, Chromium, Firefox as well as the CLI stuff (not to mention several of the competing Linux desktop environments). There are versions of everything from Mathematica to Minecraft. None of that was written specifically for ARM, in many cases it's just been re-compiled or tweaked slightly, often by contributors doing it for nothing.
The vast majority of code in modern applications is written in high-level languages like C, C++, Swift etc. which are mostly independent of CPU architecture. The ARM processors in the A-series chips are 64 bit and little-endian, just like Intel, and most will be compiled with the same compilers so the sizes of various data types will be the same - which takes care of many of the potential glitches.
Writing (CPU specific) assembly code is difficult, time consuming and expensive - developers don't need an incentive from Apple to avoid it wherever possible. Even modern
operating systems are mostly written in high-level languages.
Yes, really complex packages like Adobe CS will still be a headache - but apple switched from PPC (RISC) to Intel in 2005 and the world didn't end - and with every year that passes it's less and less likely that applications will have CPU-specific code in them. Apple have had a big drive to get developers to use supported frameworks like Accelerate and Metal rather than hand-coding for CPU-specific special features.
The hard bit is porting between OSs -
especially old Windows code that has been handed down from the 8-bit days and was often written by people who didn't think the world existed beyond Windows. Unix/Linux (which run on every CPU under the sun) has more of a tradition of not using CPU-specific code, and hopefully many Mac developers will have had an eye on portability, too.