4D v19 is Silicon Native!

Automatically translated from English

Apple’s groundbreaking release of the new Silicon Macs pushed us to release 4D v19 six months earlier to provide you with a Silicon native version of 4D as soon as possible. We reviewed all our code, ensuring its compatibility with Silicon, performed extensive testing on this new platform, and we’re finally ready to provide you with the first Silicon native version of 4D. Let me guide you through this revolution!

I had read many articles praising the new M1 processor, so I must confess that when I finally got a Silicon native version of 4D running on my brand new MacBook Air, the first thing I did was run my most CPU-intensive compiled 4D applications on it to see how it was handling them. I was impressed by the performance of this little machine on computational work like encryption and decryption, and completely baffled by its memory management capabilities.

I’ve also compared the performance of 4D run both in the native version and under Rosetta using some of our testing 4D applications. Let me give you a quick comparison:

 

So, we can see that CPU-intensive operations are much faster in native compared to Rosetta. But, when it comes to memory access, the difference in performance is stellar! I performed the same tests on my 2017 iMac and saw similar performances in Rosetta.

Now, let me tell you about the biggest change Silicon Macs bring to 4D. As Silicon Macs are no more using an x86 processor architecture like Intel Macs and PCs, they can’t execute the same compiled code. As such, we had to enhance our compiler with a specific Silicon compilation. You’ll now be able to compile your applications for Intel architectures (Windows and Intel Mac), Silicon architecture (Silicon Mac), or both architectures. We’ll explain how the new compiler works in another blog post.

Plugins will also be slightly impacted. For a plugin to work on both Intel and Silicon Macs, you’ll need to compile it as a universal binary. You can download the Silicon-compatible version of the plugin SDK here. And if you use third-party plugins, make sure you download Silicon-compatible versions. 

There are also new guidelines for multi-platform applications and we’ll explain everything in a dedicated blog post.

Of course, 4D v19 will continue to work with Rosetta. If you need time to get your application working natively, it’s always possible to execute them on Rosetta.
If you have any questions about the transition, don’t hesitate to get in touch with us on the 4D Forum!

Nicolas Brachfogel

• Product Owner & Senior Developer •

Nicolas Brachfogel joined 4D in 2017 as a Senior Developer (4D Server and networking). As Product Owner to manage the release of Apple Silicon, he's in charge of writing user stories and translating them into functional specifications, as well as making sure that feature implementations meet customer needs.

A graduate of the Institut Supérieur d'Informatique Appliquée (INSIA), Nicolas began his career as a software developer in 2001. Following several years coding in Java and C++, he went on to specialize in client-server development for video game companies. As a server developer/architect, he successfully worked on the server architectures of many games (Dofus Arena, Drakerz, Trivial Pursuit Go!).