Dans macOS 10.15, alias Catalina, Bash n’est plus le shell Unix du système. Il a été remplacé par Zsh. Apple n’en donne pas la raison, mais The Verge pense la connaître : la licence.
La version de Bash fournie avec macOS jusqu’ici était en effet particulièrement ancienne. Dans Mojave, on trouve ainsi la mouture 3.2 qui date de… 2007. Si Apple n’est pas allée plus loin, ce serait à cause de la GPLv3, dont plusieurs clauses poseraient de vrais difficultés à l’entreprise.
La première empêche un revendeur quelconque d’utiliser du code sous licence GPLv3 sur des systèmes empêchant des tiers d’installer leurs propres logiciels. L’autre oblige l’éditeur publiant du code à fournir automatiquement une licence pour les brevets éventuellement associés.
En dépit d’une utilisation massive de l’open source dans ses produits, Apple cherche à se débarrasser du code protégé par la GPL depuis longtemps. En témoignait le bilan d’un développeur il y a quelques années : de 47 paquets sous licence GPL dans macOS 10.5 (Leopard), on n’en trouvait plus que 16 dans macOS 10.12 (Sierra). Zsh est pour sa part sous licence MIT, plus souple (et utilisée la plupart du temps par Microsoft pour ses projets open source).
Les développeurs devraient largement profiter du changement, quelles qu’en soient les raisons. Compatible en grande partie avec sh et bash, Zsh fournit des fonctions modernes que l’on peut attendre d’un shell Unix en 2019, comme la complétion de la plupart des commandes, une plus grande facilité de manipulation des variables et tableaux, les commandes multilignes dans un même buffer ou encore la personnalisation de l’invite.
Les développeurs sont évidemment invités à se pencher sur cet important changement, pourtant très discret. Apple ne l’a en effet pas abordé sur scène et le changement n’est pas même référencé dans la page contenant les changements apportés par Catalina.
Commentaires (31)
#1
Hum… ça reste étonnant qu’ils remplacent bash sans période de transition…
Ca va piquer
#2
J’utilise Zsh depuis des années en remplacement systématique de Bash, ce shell est simplement supérieur en tout point, notamment pour toutes les raisons que vous avez citées.
Très bonne nouvelle pour ma part
#3
Perso je suis passé de Zsh à Fish depuis quelques temps, je le trouve supérieur à Zsh en ergonomie et features de base (avec un petit oh-my-fish et fisher des besoins plus particuliers, là où oh-my-zsh est presque obligatoire pour avoir une bonne expérience de Zsh)
#4
Il y a transition, puisque bash restera disponible dans Catalina, c’est juste que ksh sera le shell par défaut.
#5
C’est vrai que la GPLv3 sur un système fermé bon…
Dommage, moi qui pensait qu’Apple allait laisser tomber le store obligatoire " />
#6
#7
#8
#9
et utilisée la plupart du temps par Microsoft pour ses projets open source
À quand des modules implémentés par Microsoft dans MacOS ? " />
#10
Yep, j’ai vu ça en regardant Zsh. Maintenant, quid de la console qui va bien avec.
#11
#12
#13
#14
#15
#16
Un “petit” exemple : Linux reste sous la GPL V2, Linus étant par exemple contre la V3.
#17
#18
#19
#20
Il va y avoir de l’édition de shebang à la chaine " />
#21
Ah pour les mises à jours si !
#22
#23
#24
#25
Système de maj interne n’est pas store !
MacOS est le seul système ou il est obligatoire d’avoir un compte (rattaché au store) afin de réaliser les mises à jour (même si on y a échappé de peu avec Win10).
#26
Red Hat aussi nécessite d’avoir une souscription pour accéder aux mises à jour.
#27
#28
Dinosaures … qui pouvaient imprimer. En ‘93, pour imprimer sous Linux autre chose que des textes ASCII, il fallait être motivé…
#29
Ça m’étonnerait que les stations de son école d’ingé étaient sous Linux en 1993. Linux est né en 1991 et en 1993, c’était le début de Slackware et Debian.
Par contre, elles devaient permettre d’imprimer sans problème sur des imprimantes PostScript qui était la norme sous UNIX.
#30
En 93 j’avais tenté d’installer une Yggdrasil…
Imprimante Postscript … tout est dit … faut être motivé
#31
On peut utiliser CentOS ou Fedora si on veut y échapper, mais en effet ça fait partie du pack RedHat (après RedHat fait payer le support, pas l’OS en lui même, c’est relativement différent).