Chris Lattner adore manifestement crĂ©er de nouveaux langages de dĂ©veloppement. Câest lui qui a crĂ©Ă© Swift au sein dâApple, le dĂ©veloppeur a quittĂ© la Pomme et aprĂšs une tentative ratĂ©e chez Tesla, il a Ă©tĂ© embauchĂ© par Google oĂč il a adaptĂ© Swift Ă TensorFlow, avant de quitter lâentreprise puis⊠Swift lui-mĂȘme. CâĂ©tait en fĂ©vrier 2022 et cette dĂ©cision semblait liĂ©e autant Ă la culture du secret dâApple qui colle mal avec son dĂ©sir de dĂ©velopper en public et des dĂ©cisions qui ne lui convenaient pas. Il avait peut-ĂȘtre dĂ©jĂ en tĂȘte Mojo đ„1, son nouveau langage de dĂ©veloppement qui est dĂ©sormais disponible sur macOS.
Mojo a les mĂȘmes ambitions que Swift, Ă savoir ĂȘtre un langage de dĂ©veloppement universel, qui peut servir autant Ă Ă©crire des scripts que du code bas niveau. Son concept de base est de combiner la souplesse de Python, avec les performances de C, soit deux autres langages de dĂ©veloppement respectivement de haut et bas niveau. Ses objectifs le rapprochent davantage de Rust ou mĂȘme de C++ que de Swift toutefois, avec en plus un accĂšs complet Ă Python. On peut ainsi Ă©crire du code en Python 3 et lâutiliser avec des programmes entiĂšrement Ă©crits dans ce langage, mais il est aussi possible de les convertir en grande partie en Mojo.
Pourquoi faire ? AmĂ©liorer les performances est peut-ĂȘtre la promesse initiale la plus importante de Mojo. Lâun des exemples fournis par ses concepteurs permet de mesurer le gain de performance pour un mĂȘme code, exĂ©cutĂ© en Python et en Mojo et la diffĂ©rence est impressionnante. Sur mon Mac Studio M1 de base, le nouveau langage est 76 892 fois plus rapide. Il faut dire que Python ne gĂšre pas les tĂąches en parallĂšle, alors que ce nouveau-venu est entiĂšrement optimisĂ© pour cela et il peut ainsi exploiter tous les cĆurs de mon ordinateur pour offrir ces rĂ©sultats incomparables.
Le choix de Python ne doit rien au hasard : ce langage de dĂ©veloppement est couramment utilisĂ© dans le domaine de lâintelligence artificielle, un domaine qui intĂ©resse tout particuliĂšrement Mojo. MĂȘme si le nouveau-venu entend rĂ©pondre Ă tous les besoins, il met lâaccent sur lâIA et sert de fondations au moteur de Modular, lâentreprise derriĂšre cette initiative. Il sâagit avant tout dâoffrir aux spĂ©cialistes du domaine une solution plus rapide pour entraĂźner et exploiter des modĂšles construits sur les apprentissages automatisĂ©s, avec des gains de performances notables face Ă PyTorch et TensorFlow.
Que ce soit votre domaine ou non, vous pouvez dĂ©couvrir Mojo sur macOS et Linux, en suivant les instructions affichĂ©es sur le site officiel. Le langage de dĂ©veloppement doit ĂȘtre rendu open-source Ă terme, mais ce nâest pas encore le cas et il faut ouvrir un compte en laissant une adresse mail pour rĂ©cupĂ©rer le kit de dĂ©veloppement.
Terminons en notant que Mojo nâest compatible nativement quâavec les Mac Apple Silicon pour le moment. Il est toutefois possible de lâinstaller sur un Mac Intel, via Linux et un systĂšme de virtualisation comme Docker. Cette mĂȘme mĂ©thode permet aussi de lâexploiter sous Windows, via le sous-systĂšme Linux.
-
Lâemoji est utilisĂ© non seulement pour agrĂ©menter le nom du langage, mais aussi pour les extensions des noms de fichier. On peut ainsi crĂ©er un fichier
code.đ„
et Mojo lâidentifiera autant quâun fichiercode.mojo
. On nâarrĂȘte pas le progrĂšs⊠ â©ïž
Source : Michael Tsai