macOS Sonoma : t'as le look, Cocoa

Stéphane Moussie |

La plus grande surprise de la WWDC 2023, ce n'est pas l'Apple Vision Pro, mais le fait qu'une petite partie de macOS utilisait encore jusque-là Carbon, un vieux framework qui a servi à faire la transition entre Mac OS 8/9 et Mac OS X. « Les menus ont été réécrits pour utiliser pleinement Cocoa », annonce l'ingénieur Raleigh Ledet dans une session consacrée à AppKit, la couche applicative du Mac.

Les menus entièrement Cocoa de macOS Sonoma autorisent de nouvelles fonctions pour les développeurs. Session WWDC 2023-10054.

Cocoa est, pour schématiser, le framework de création d'interfaces qui a succédé à Carbon. En 2008, l'optimisation générale que constituait Snow Leopard était passée entre autres par un Finder entièrement réécrit en Cocoa. Enfin, c'est ce que l'on croyait jusque-là. Il a fallu attendre quinze années supplémentaires pour que macOS Sonoma dispose de menus en Cocoa.

D'après Raleigh Ledet, « [cette réécriture] réduit l'empreinte Carbon d'AppKit en diminuant significativement la consommation de mémoire et de CPU. » Il n'y a pas de différence esthétique avec les menus de Ventura et l'amélioration des performances est difficile à mesurer sur de si petits éléments du système, mais on veut bien croire que l'abandon de cette vieille technologie est bénéfique.

Le passage à des menus entièrement Cocoa ouvre aussi la porte à de nouvelles possibilités. Les développeurs peuvent désormais créer très facilement des en-têtes de sections, des palettes de menus (des menus dans lesquels les éléments sont alignés horizontalement, par exemple les tags de couleur), de nouveaux modes de sélection, ainsi que des badges.

De NeXTSTEP à SwiftUI, comment Apple a réarchitecturé ses systèmes

De NeXTSTEP à SwiftUI, comment Apple a réarchitecturé ses systèmes

avatar fredazou | 

Quel horreur ce nom !
Il y a tellement de jolis noms, en Californie…

avatar CostaDelSol | 

@fredazou

Si ça avait été un nom que tu avais aimé toi et d'autres non, ça n'aurait rien changé au problème. Quelle serait la solution d'après toi ?

avatar CostaDelSol | 

@Urubu

😂 J'avais reformulé mon commentaire, mais je ne l'avais pas bien corrigé avant de l'envoyer par faute d'inattention 😅

avatar Adodane | 

@fredazou

T'aimes pas le sodoma ?

avatar Madalvée | 

C'était bien la peine de se moquer de Windows quand il reposait encore sur MS-Dos…

avatar oomu | 

@Madalvée

non. ça valait la peine de se moquer de Windows quand il reposait sur MS-Dos. C'était horrible et nul.

concernant "carbon", ce _cadre applicatif_ (bibliothèque de fonctionnalités pré-fournies) n'ont jamais empêché le système et les applications d'être 64b et modernes.

c'est juste un sympathique ménage. avec quelques nouveautés pour les développeurs.

avatar fte | 

@Madalvée

"C'était bien la peine de se moquer de Windows quand il reposait encore sur MS-Dos…"

Il faut se moquer de tout, le sérieux est pour les croûtons grincheux.

avatar madaniso | 

>Il n'y a pas de différence esthétique avec les menus de Ventura

Je veux bien le croire mais avec un mac sous Intel, j'ai l'impression que les caratères de mon menu sont légèrement plus mince, mais c'est peut être dans ma tête...

avatar Siilver777 | 

« [cette réécriture] réduit l'empreinte Carbon d'AppKit »

Bien joué 🥲

avatar raoolito | 

@Siilver777

oui j’ai pensé pareil
comme le titre barzogien, cette phrase est délicieuse

avatar stefhan | 

@Siilver777

Ah ah je l’ai vue aussi ! 😅

avatar occam | 

@Siilver777

👍

avatar arakylien | 

« réduit l'empreinte Carbon d'AppKit en diminuant »
Bien joué le bon mot !

avatar mne | 

Quelqu’un peut me reexpliquer la différence entre cocoa et SwiftUI ?

avatar atom 06 | 

@mne

d9pouces t’as répondu juste en dessous ⬇️

avatar d9pouces | 

De mémoire : Cocoa est accessible en C++ et ObjectiveC, SwiftUI est son remplaçant pensé pour être utilisé en Swift (avec un style très différent pour l’utiliser : ça passe plus par des descriptions de chaque fenêtre plutôt qu’une programmation traditionnelle… mais on va sûrement me compléter ou me corriger).

avatar joneskind | 

@d9pouces

Je pense qu’il y a une petite confusion dans la formulation de l’article.

SwiftUI, AppKit et UIKit sont des frameworks de création d’interfaces. Ça permet d’initialiser un composant dans ton app. Le composant lui est toujours rendu par Cocoa.

Ici on parle d’une relique dans le code de macOS, une vieillerie qui n’avait jamais été mise à jour, probablement parce qu’il n’y avait pas d’utilité immédiate à sa mise à jour.

On peut imaginer qu’Apple ait décidé de nettoyer le code de macOS, en supprimant ces derniers morceaux.

avatar r e m y | 

Apple va pouvoir ajouter un paragraphe à son rapport annuel "sustainability" en ayant réduit à neant l'empreinte Carbon de macOS ! ☝️

avatar aspartame | 

manque plus que le support des icones dans le menus, c'est ça ?

avatar Cyrille50 | 

"L'empreinte Carbon" : excellent 😉

avatar Sonic Tooth | 

@Cyrille50

J’avais pas percuté 😉

avatar Mac1978 | 

Ils auraient peut-être mieux fait de ne pas supprimer les plug-in dans AppleMail !

Adieu Antidote, adieu BusyContact, adieu SmallCubed, plugs-in indispensables pour rendre Mail un peu plus efficace et professionnel😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡 😡

avatar BeePotato | 

Il manque un smiley quelque part, parce que là tel que c’est rédigé on pourrait croire que l’auteur y croit vraiment. Et on a déjà pu voir que ça déteint sur les commentaires, certains partant à fond sur cette théorie des restes de Carbon dans MacOS en 2023. 😉

avatar Yohmi | 

@BeePotato
Pourtant ils ont pas l'air de spécialement plaisanter dans la vidéo de la WWDC2023 qui annonce le passage à Cocoa de ces éléments d'interface sur AppKit…

avatar BeePotato | 

@ Yohmi : C’est un peu ambigu, ce qui est dit dans la vidéo. « Menus have been re-written to fully use Cocoa », ça peut faire référence à pas mal de choses. Une amélioration permettant de mieux utiliser Cocoa ne signifie pas pour autant que le code ne reposait pas sur Cocoa auparavant. Ça peut juste être qu’il n’en exploitait pas toutes les possibilités — et donc ne l’utilisait pas « pleinement » (ce qui n’aurait rien d’étonnant si cette partie n’a pas été revue en profondeur depuis vingt ans).
Et surtout il n’y est nulle part fait mention de Carbon. Je doute que le passage sur l’empreinte carbone soit réellement un jeu de mots, surtout à destination des développeurs actuels qui pour la plupart n’ont aucune idée de ce qu’était Carbon.

CONNEXION UTILISATEUR