Microsoft va aider à adapter Java aux Mac Apple Silicon

Nicolas Furno |

Apple a mis la main à la pate en soutenant la transition à ARM de plusieurs projets open-source, en amont de la sortie des premiers Mac Apple Silicon prévue cet automne. Microsoft participe également à cet effort, mais pas sur ses propres outils destinés aux développeurs : la firme a en effet annoncé soutenir la transition de Java. Cette transition contribuera aussi à Microsoft toutefois, puisqu’elle permettra d’apporter Java aux PC Windows sous ARM.

Le travail sur les versions pour macOS et pour Windows va avancer en même temps, ce qui est logique pour ce projet dédié précisément à créer des apps multiplateformes. Microsoft n’est pas la seule entreprise impliquée et parmi les participants, Azul est aussi en bonne place. Ce spécialiste de Java propose des solutions moins coûteuses que celles d’Oracle, propriétaire original de ce langage de développement.

Plusieurs versions d’OpenJDK, la version open-source de Java, seront proposées en version Aarch64, pour les Mac Apple Silicon et les PC ARM. Le travail va d’abord se concentrer sur les versions 16 et 17 actuellement en développement et qui devraient sortir en versions finales avec la compatibilité intégrée. Mais comme de nombreux développeurs reposent sur des versions plus anciennes, l’équipe se chargera d’adapter également OpenJDK 11 et 8 qui sont très populaires.

Les premières builds ARM d’OpenJDK devraient être disponibles début 2021. Java est toujours très utilisé dans les grosses entreprises, notamment pour l’environnement de développement Eclipse.

avatar bonnepoire | 

Le titre est trompeur. Le passage vers ARM est inéluctable également pour Windows.

avatar Krysten2001 | 

@bonnepoire

On verra car les développeurs n’ont pas vraiment envie de changer et les PC sous ARM on fait un flop.

avatar Furious Angel | 

@Krysten2001

Normal, y’a pas de marché, donc y’a pas de développeurs, donc y’a pas de marché, etc...

Apple a la possibilité d’imposer le passage à ARM. Dans le monde PC c’est plus compliqué

avatar bonnepoire | 

@ Krysten2001
Le choix stratégique de Apple ne peut qu'être suivi. Ce n'est qu'une question de temps.
La position de Nvidia va rendre cette évolution possible plus rapidement.

avatar Ducletho | 

@bonnepoire

« Le choix stratégique de Apple ne peut qu'être suivi. Ce n'est qu'une question de temps. »

Tout dépend de l’apport aux fabricants de PC : bénéfices/coûts : ils ne concevront pas les puces de toute manière. Donc la stratégie n’est pas à leur niveau, en plus de supporter le souci logiciels.
Donc j’y crois pas. D’autant plus qu’intel sait accompagner les fabricants.
Nvidia, faut voir mais je pense qu’ils vont se concentrer à gagner le marché puce graphique des mobiles, bien plus juteux

avatar bonnepoire | 

@ Ducletho
Nvidia a des propositions très puissantes pour le monde du PC. Je suis convaincu que quelque chose va émerger.

avatar oomu | 

@Ducletho

"Tout dépend de l’apport aux fabricants de PC : bénéfices/coûts : ils ne concevront pas les puces de toute manière. Donc la stratégie n’est pas à leur niveau, en plus de supporter le souci logiciels.
Donc j’y crois pas. D’autant plus qu’intel sait accompagner les fabricants. "

vous avez raison

c'est ici que se situe une éventuelle migration de l'industrie vers ARM : si un industriel propose aux constructeurs quelque chose de mieux en coût et qui accompagne autant que le fait Intel.

avatar ifranz67 | 

Java quelle merde aussi comme environnement !!

avatar YetOneOtherGit | 

@ifranz67

« There are only two kinds of languages: the ones people complain about and the ones nobody uses. »
Bjarne Stroustrup

avatar oomu | 

@YetOneOtherGit

merci.

avatar YetOneOtherGit | 

@oomu

"merci."

Sans parler des critiques issues de l’ignorance du sujet traité, on en a un florilège ici.

En commençant par la confusion entre JS et Java qui partagent des éléments de dénomination pour des raisons historiques purement marketing.

Java est un langage qui a profondément changé la donne et qui reste essentiel sur la part serveur des usages.

Et à la phrase de Stroustrup je rajouterai celle-ci : « Il y a beaucoup plus de mauvais développeurs que de mauvais langages » voir de dev in name only 😈

avatar Jacti | 

J'ai enseigné de nombreux langages pendant au moins 30ans àdes ingénieurs de développement connaissant déjà d'autres langages. Les langages que j'ai enseignés principalement sont : LISP, ADA, C, C++, JAVA, JS.
Je me suis rendu compte combien les développeurs avaient de mauvaises habitudes. Je n'ai pas fait de statistiques précises mais, en gros, je considère que seulement environ 10% des développeurs programment proprement. Comme me disait un de mes amis prof de fac, les autres sont des "pousseurs de boutons".

avatar Jacti | 

Java est très utilisé dans les "systèmes complexes" genre logiciels de commandement militaire, plateformes interopérables et pour l'informatique enfouie. Vous dénigrez un environnement que vous ne connaissez pas réellement.

avatar banabap | 

On peut espérer un support de ces langages sur iPadOS ? (De meilleures applications d’éditeur de code crées plus facilement)

avatar damien.thg | 

Nooooonnn

Java, ça doit crever dans les ordi, comme flash.

avatar r e m y | 

@damien.thg

Ne pas confondre Java et JavaScript

avatar jackWhite92 | 

@r e m y

Oui et je pense que beaucoup de développeurs en auront besoin (je parle bien de java)!

avatar flux_capacitor | 

@r e m y

Javascript est indispensable au web tellement c'est utilisé absolument partout. Pas Java. Personnellement en temps qu'utilisateur, j'ai toujours détesté le look & feel pas du tout macOS des menus (même les boutons font grimmés et "faux") et la lenteur des programmes en Java, auxquels je refuse de donner le nom d'applications.
Quand je pense que c'était le langage le plus appris chez les devs 🤦‍♂️

avatar koko256 | 

@flux_capacitor

Plus personne n'utilise Swing (qui est censé est remplacé par javafx depuis un bout de temps mais qui est aussi moche). En général, on utilise de front web. Mais Java ce n'est pas que cela. C'est toutes les applications natives Android, beaucoup de web côté serveur (node.js permet d'avoir du javascript côté serveur mais ce n'est pas la majorité) et Minecraft aussi (et n'est pas lent à cause de Java car le version bedrock est tout aussi lente) ! Et Java n'est plus lent depuis l'invention du JIT (sauf les programmes à durée de vie inférieure à la dizaine de seconde) mais traîne son boulet des premiers jours.

avatar ssssteffff | 

@flux_capacitor

Java est probablement plus indispensable au web aujourd’hui que JavaScript. JavaScript ajout le dynamisme aux sites, mais bien souvent derrière c’est fait en Java.
Au passage, il n’y a pas que les IDE comme Netbeans où Eclipse qui sont fait en Java, mais aussi ceux de JetBrains par exemple, au look and feel parfait. D’ailleurs WebStorm et PHPStorm (IDE JetBrains développés en Java) sont très utilisés par les développeurs web non-Java.

Par ailleurs Java n’est pas (plus ?) un « langage lent » en soit, mais certaines applications faites avec les pieds (bien souvent au look and feel que vous décrivez) sont simplement mal codées.

avatar damien.thg | 

@r e m y

je confonds pas

avatar occam | 

@damien.thg

@ifranz67

Deux exemples :

1. MinimServer, le serveur UPnP universel — du Raspberry Pi à x64 — le plus svelte (à ma connaissance). Libre et Open Source. Il repose sur un framework écrit en Java. Indispensable si l’on souhaite se créer un environnement musical multi-plateforme UPnP/DLNA ouvert et flexible. De nombreux clients UPnP lui sont redevables, y compris sur iOS.
Par quoi le remplacer, si Java doit crever ?

2. LibreOffice : nécessite toujours des modules en Java pour HSQLDB, JDBC, ReportBuilder, de nombreux Wizards, NLS/Calc, MediaWiki.
Par quoi les remplacer, si Java est voué aux gémonies ? (Car ce n’est pas faute d’efforts de la part de la Document Foundation que ces modules sont encore en Java ; c’est que des solutions stables et viables ne sont pas encore disponibles.)

Sans parler de myriades des logiciels scientifiques et techniques en Java dont 99.5% des lecteurs de MacG n’ont jamais entendu parler, et qui pourtant font tourner le monde moderne. Et qui tournent, et tournent, et tournent, sans histoires. D’une plateforme à l’autre.
Alors, comment les remplacer, quand, et par quoi ?

L’adage de J.K. Galbraith sur l’aide au développement est toujours valable : « It’s one thing to tear down the old shithouse. It’s another thing entirely to install sanitation for all. »

avatar bl@ck warrior_69 | 

@occam

Absolument d'accord. Java est présent dans pas mal d'application open source multiplateforme indispensable dans certains domaines. En tant que scientifique on utilise plusieurs programmes qui n'ont tout simplement pas d'équivalent en natif (et qui ne serait pas aussi poussé s'il fallait maintenant une version pour chaque système). Et pour le coup, même si c'est moche, ça fait le taff demandé.

avatar huexley | 

SPSS entre autre

avatar Tagazok | 

@occam

Ben justement, les logiciels pro en Java, c’est souvent une plaie, surtout ceux qui sont codés par des personnes issus d’un milieu scientifique donné et à qui ont dispense une formation java de 3 mois en leur disant « tiens, maintenant code des logiciels métiers relatifs à ton domaine scientifique ! ». Autant je suis bien content que quelques potes en chimie ou bio aient eu des débouchés grâce à ces recrutements, autant c’est le cauchemar des DSI qui se tapent le support utilisateur de ces apps régulièrement codées avec les pieds (sans qu’on puisse raisonnablement le reprocher aux dev, pour le coup, c’est illusoire de penser qu’ils peuvent coder parfaitement après 3 mois de bourrage de crâne java, et mes potes concernés en sont eux-mêmes conscients).

Ceux que j’utilise, c’est absolument génial, comme ils ne sont pas signés correctement il faut systématiquement passer par Gatekeeper pour en autoriser l’ouverture. Et pourtant c’est pas un truc confidentiel développé en interne hein, on parle de logiciels utilisés par une importante proportion des établissements publics d’enseignement supérieur, et aussi des modules java de la plate-forme achatpublic.com. Sans compter que ça rame, ça plante sans raison apparente (autre que « j’essaie d’aller trop vite et l’app n’arrive pas à suivre », et ce quel que soit l’OS (même constat sur mon MBP et sur le Windows du boulot). Le plus rageant c’est que, pour ce qui me concerne, à peu près 80% des tâches confiées à ces modules java pourraient largement être intégrés aux sites internet qu’on utilise, et que ça serait autrement plus fluide.

Puis l’interface...j’ai l’impression d’être retourné dans les années 1990, mais ça à la rigueur c’est pas si grave.

avatar Ali Baba | 

@Tagazok

+1

avatar byte_order | 

@Tagazok
La situation décrite serait et sera exactement la même quelque soit le langage de programmation, dès lors que celui-ci est d'abord pensé multiplateforme.

> Ceux que j’utilise, c’est absolument génial, comme ils ne sont pas signés correctement
> il faut systématiquement passer par Gatekeeper pour en autoriser l’ouverture.

En même temps, n'espérez pas que les gens vont payer un compte Developer à Apple pour distribuer un programme développé volontairement dans un langage et avec un framework multiplateforme. Ce surcout juste pour signer le truc n'est souvent pas justifiable pour eux.

avatar oomu | 

@byte_order

exactement !

avatar Tagazok | 

@byte_order

Ok, merci pour les précisions :)

avatar occam | 

@Tagazok

Je vois à peu près quel genre de situation vous chiffonne.

Peut-être ai-je eu plus de chance dans les environnements où j’ai travaillé — je ne voudrais pas généraliser — mais les modules Java auxquels j’ai eu à faire étaient plutôt mieux fichus, plus solides et plus durables que le restant des applis maison dans les mêmes boîtes.

Une chose me frappe cependant : jamais il ne me serait venu à l’idée de confier des boulots conséquents à des gars sortis de « trois mois de bourrage de crâne » ; encore moins de leur faire confiance. J’observe que mes collègues (moi-même inclus) qui ont réalisé des modules ou des logiciels scientifiques « d’infrastructure » l’ont fait au bout d’un apprentissage substantiel, dans des cadres où ils restaient impliqués dans le maintien et le développement. Peut-être que l’engagement est plus sérieux et durable si l’on répond de ce qu’on fait : si l’on joue sa peau. Cela incite aussi à demander à plus compétent que soi de jeter un coup d’oeil. Et aussi à apprendre que, pour chaque problème donné, on trouve toujours plus compétent que soi. C’est la base de la collaboration scientifique.

avatar fte | 

@damien.thg

"Java, ça doit crever dans les ordi,"

Pourquoi ?

Il ne doit crever que dans les ordis ? Où tourne-t-il autre que des ordis où il ne devrait pas crever ?

Par quoi le remplacer ?

avatar damien.thg | 

@fte

J’ai bien dit dans les ordinateurs parce que je n’ai jamais vu une bonne appli pour un utilisateur en java.

avatar fte | 

@damien.thg

"J’ai bien dit dans les ordinateurs parce que je n’ai jamais vu une bonne appli pour un utilisateur en java."

Tu n’as pas cherché beaucoup je suppose.

AppCode.

Il fut un temps où cette application m’a sauvé d’une dépression suicidaire.

CrashPlan.

Cette application a sauvé les fesses de ma femme. Et j’adore ces fesses.

Et beaucoup d’apps professionnelles rigoureusement indispensables et absolument super spécialisées et totalement affreuses mais tellement irremplaçables qu’exceptionnelles.

Ceci dit, ça ne répond pas à la question fondamentale : crever certes, mais remplacé par quoi ?

avatar fte | 

@damien.thg

"J’ai bien dit dans les ordinateurs"

Mais où as-tu vu Java ailleurs que dans des ordinateurs ?

avatar YetOneOtherGit | 

@fte

"Mais où as-tu vu Java ailleurs que dans des ordinateurs ?"

A Serang ? 🤗

avatar YetOneOtherGit | 

@damien.thg

../..

avatar Simbel91 | 

Si Java devait « crever », je pense qu’une bonne partie du web ne serait plus disponible. Il y a énormément de services web qui tournent en Java sur les serveurs. Ça ne sert pas qu’à faire des applets dans les navigateurs.

avatar occam | 

@Simbel91

👍
En plus du Web (qui n’est vraiment que la partie émergée de l’iceberg), une grande partie de l’informatique industrielle serait affectée. Celle qui sert à produire, et non pas à se badigeonner les sinus en songeant à quelles nouvelles nuances de peau l’on pourrait rajouter aux emoji, en sus des 210 existantes.

avatar Jacti | 

Bravo, je n'aurais pas dit mieux.

avatar raoolito | 

il me semblait avoir lu que prevoir un soft pour ARM c'est pas comme pour intel. En gros, une app ARM pour A14 ne tournera pas sous un snapdragon par exemple, il n'y a pas que l'OS qui changerait ?

"moins coûteuses que celles d’Oracle, propriétaire original de ce langage de développement."
moi j'aurais dis "originel" mais possiblement que les deux soient exacts ?

avatar Rajindael | 

@raoolito

Effectivement chq Puce ARM a ses spec (valable aussi pour du Intel), mais la c’est le rôle du compilateur de gérer la transformation langage dev en langage machine, c’est la ou MS et Oracle vont oeuvrer, adapter le compilateur et le rendre dispo aux dev pour déployer leurs apps sur ces nouvelles archi.

avatar Jacti | 

Je rappelle quand même qu'à l'origine, Java a été créé par Sun et que son ancêtre était oak.
Ce langage avait été créé par James Gosling (le créateur de Java également) pour les PDA (personal digital assistant) comme on appelait les ancêtres indirects des tablettes.

avatar fendtc | 

Je suis très surpris...
Je fais du développement Java depuis des années, et je participe au développement de produits IoT qui intègrent Java... et nous utilisons des plateforme ARM64 avec openJDK11...
Le package Debian ARM64 de openJDK existe depuis des années! Et ça tourne plus que bien!
On parle de quoi alors? Optimisation? Ou support de Windows de MacOS pour la version ARM?
(Je fais dans le headless... juste de la logique métier et une interface REST... il y a sans doute des choses à faire pour la partie native de JavaFX par exemple... mais le cœur de chauffe est clairement dispo pour ARM64 depuis “longtemps”)

avatar byte_order | 

@fendtc
> On parle de quoi alors?

On parle en fait que suite à la proposition par Azul d'un portage macos/AArch64 du cpomilateur et de HotSpot (la JVM, le runtime quoi), portage reposant très majoritairement sur les ports linux/AArch64 et win/AArch64 pré-éxistants, une proposition de collaboration a été faite par une équipe de Microsoft à celle d'Azul.

Les différences semblent très localisées, principalement l'ABI différente entre Windows et macOS et quelques trucs tricky comme les segments de code en write + execute, que macOS bloque, mais qu'une JVM optimisée aimerait exploiter au mieux.

L'article est trompeur :
" Cette transition contribuera aussi à Microsoft toutefois, puisqu’elle permettra d’apporter Java aux PC Windows sous ARM."

Le port Windows ARM64 existe *déjà*. Il est largement fondé sur celui de Linux ARM64.
C'est justement pour cela que c'est Microsoft qui propose son aide pour le port macOS/AArch64 et non pas Azul (ni Apple) qui propose l'inverse...

avatar ssssteffff | 

@byte_order

Merci pour l’éclairage ! 🙏

avatar ssssteffff | 

@fendtc

Je me posais la même question, bien que je ne développe pas sur ARM j’ai toujours vu le JDK (sur le site d’Oracle, OpenJDK ou dans les paquets Linux) dispos sour ARM. Comme vous dites il doit probablement y avoir des subsets manquants...

avatar free00 | 

Si j’ai bien compris l’article, quand les premiers mac Silicon vont sortir à priori en Novembre, il ne sera pas possible d’installer Java ? Ou alors ça fonctionnera avec un émulateur du Java intel ?

avatar byte_order | 

@free00
> Ou alors ça fonctionnera avec un émulateur du Java intel ?

Au pire, cela sera ça, oui.
Ce qui vu les performances de Rosetta 2, n'a rien d'insurmontable donc.
Et sera temporaire. Un port natif viendra, et il est même probable qu'il soit dispo quasiment immédiatement.

avatar HERVE VILAREM | 

HERVE VILAREM
@YetOneOthergit
« There are only two kinds of languages: the ones people complain about and the ones nobody uses. »
Bjarne Stroustrup

Le bruit est pour le Fat
La plainte est pour le sot
L'honnête homme trompé
S'en va et ne dit mot

avatar oomu | 

aucune raison que java doive "crever".

Java pour des logiciels de "bureau", de par sa nature "multiplateforme" c'était naze (et TOUT environnement/langage d'abord pensé comme multiplateforme donnera TOUJOURS un compromis imparfait et frustant, java, QT, electron, etc). C'est un outil pour baisser un coût de développement, vous obtenez donc un produit dont la priorité était de baisser son coût de développement...

Par contre JAVA est bien vivant et important pour les logiciels serveurs, l'iot, l'embarqué, le monde académique, etc. Et Java est une bonne solution : expérimenté, robuste, de très nombreux outils, framerworks, etc bien connu et maintenus.

Ne voyez PAS que VOTRE usage de l'informatique pour comprendre l'industrie au sens large.

Pages

CONNEXION UTILISATEUR