Après un très long développement, la huitième version de l’environnement Java est enfin disponible pour les développeurs de manière officielle. Plus que les moutures précédentes, Java 8 doit remplir de nombreux objectifs, car outre la modernisation d’un langage et son adaptation aux besoins d’aujourd’hui, notamment ceux du « Cloud », Oracle avait également besoin de revoir largement le modèle de sécurité de son produit.
La part belle au développement fonctionnel...
Java 8 est donc la nouvelle version de l’environnement de développement proposé par Oracle. L’actualité des deux dernières années concernant la technologie était essentiellement marquée par la sécurité et ce sont plus de 50 mises à jour qui ont été diffusées pour colmater plusieurs centaines de brèches. On se rappelle d’ailleurs qu’Oracle avait expliqué l’année dernière que cette version 8 serait repoussée pour que la sécurité soit davantage retravaillée.
Mais commençons par les expressions lambda, clairement la nouveauté la plus importante de cette nouvelle version. Il s’agit pour le développeur de découper son code en différentes fonctionnalités qui s’échangent ensuite des informations. Pour Oracle, c’est une réponse directe à l’explosion des langages de type JavaScript et Scala et, en filigrane, au déplacement progressif des produits vers le « Cloud ». Or, ce dernier se trouve essentiellement dans des environnements fortement parallélisés à cause de la présence de multiples processeurs, nécessitant de repenser les architectures logicielles pour en tirer parti.
... et au parallélisme
Cet effort pour axer Java sur le développement parallèle se retrouve dans d’autres nouveautés, notamment les API Streams. Ces dernières permettent justement d’effectuer des traitements parallèles sur de grandes quantités de données. C’est également l’orientation de la nouvelle machine virtuelle JavaScript (Nashorn) qui doit permettre une hausse très sensible des performances quand les serveurs ont à faire avec de fortes charges.
Java 8 dispose d’un très grand nombre de nouveautés mais toutes n’ont pas pour autant été implémentées. À cause notamment des gros travaux sur la sécurité, Oracle a dû faire l’impasse sur le projet Jigsaw, qui devrait apporter des gains notables de modularité. Cette fonctionnalité a été reportée à Java 9.
Quant à la sécurité, la liste des améliorations est particulièrement fournie. On notera par exemple l’intégration de TLS 1.2 côté client, des algorithmes renforcés pour le chiffrement basé sur des mots de passe, le support des algorithmes AEAD, le support de la fonction de hachage SHA-224, une meilleure gestion de la High Entropy Random Number Generation, la prise en charge de PCKS11 sous Windows, le support amélioré de Kerberos 5 ou encore celui du service SASL pour les noms de domaines multiples.
Signalons enfin que de très nombreux outils ont été mis à jour au passage et que la nouvelle version modernise enfin les interfaces proposées dans JavaFX, lui aussi passant à la version 8. La liste complète de tous les changements apportés par Java 8 peut être consultée depuis le site officiel.
Les développeurs intéressés pourront quant à eux récupérer la nouvelle version de l’environnement depuis cette page. Notez que l’IDE IntelliJ a déjà été mis à jour pour prendre en charge Java 8.
Commentaires (183)
#1
Aucune mise à jour détectée par mon PC ! Sur Java.com c’est la 7 update 51 qui est encore proposée !
C’est une honte de la part d’une société comme Oracle !
#2
Premier message, premier troll ??
Sinon pour l’utilisateur lambda que nous sommes, ça vaut la peine de mettre à jour ou pas vers la version 8 ?
#3
Ramiel.
Il y a des chances que oui, ils ont due boucher des failles de sécurité
#4
#5
avec ses expressions lambda
Supporté depuis C++11…
Ca craint pas un peu un langage managé qui propose moins de fonctionnalité sur sa plateforme qu’un langage natif aussi standard et vieux que le c++? " />
‘fin, je dis pas ça pour dire les java-istes sont des personnes arriérés… Rassurez vous les mecs, c’est toujours mieux que du Delphi…" />
#6
Bah, quand tu vois que dans les boîtes ils en sont encore à java 6 (dans le meilleur des cas) , que t’as même jamais pu tester le multicatch ou le switch de string, bah t’as plus envie d’aller danser la lambada que d’apprendre à te servir des lambdas…
#7
Et le c++ c’est à vomir. En 2014 ton langage a pas de garbage collector? Allo? Autant faire du cobol…
#8
Supporté depuis C++11…
Depuis python 2 (voire 1 mais pas sûr), C#2, php 5.3…
Néanmoins, pour avoir vu et codé quelques codes JAVA 8 avec des lambda et leur intégration dans l’API Stream, je peux dire que ça m’a fait moins détester le Java.
Par contre d’autres choix sont plus douteux…
#9
#10
J’ai installé ça ne m’a même pas désinstallé la version 7 ! Faut le faire soit même ! Faites attention vous allez remplir votre disque pour rien !
#11
#12
“Remplir votre dique” parce qu’il reste une ancienne version de java. Je sais pas s’il faut rire ou pleurer.
#13
#14
. . JavaFX.
Wow.
… …Such native look’n’feel.
…So much integrated.
… . .Wow.
#15
#16
#17
#18
#19
#20
#21
#22
#23
#24
Mais commençons par les expressions lambda, clairement la nouveauté la plus importante de cette nouvelle version. Il s’agit pour le développeur de découper son code en différentes fonctionnalités qui s’échangent ensuite des informations.
" /> " /> Il s’agit de définir des fonctions anonymes. Par exemple, en Scala :
val lst = List(1, 2, 3)
lst.map(x => x + 1) // ou lst.map(_ + 1)
Va produire List(2, 3, 4)
#25
#26
#27
#28
#29
#30
#31
#32
En même temps, java ça pue non?
Bon après ça permet de faire des logiciels plutôt bon, en un temps raisonnable et même de supporter la mobilité accrue des employés. Et puis faut avouer que J1.7 et 1.8 ont de bonnes perf grâce à la compilation à la volée donc ça amenuise un peu les faiblesses.
#33
#34
#35
#36
#37
Oui enfin ça ne vaut quand même pas le brainfuck tout ça. Quand on veut écrire un programme concis, lisible et auto-documenté, il n’y a pas photo.
#38
#39
#40
#41
#42
Entre
dites donc on a un grand Chelem ici bas ! " />
#43
Attention la grande nouveauté de Java 8 ce n’est pas les lambdas … Mais les default implementation dans les interfaces.
Car vous voyez faire de l’héritage multiple c’est pas beau… Donc tu implémentes plusieurs interfaces qui ont des implémentations par défaut…
Ils fument quoi chez Oracle?
#44
#45
@sr17, belle tentative d’expliquer à un troupeau d’abrutis de trolls que le Saint Graal n’existe pas et que la diversité des langages répond à la diversité des besoins. Sur ce point, c’est parfait.
Par contre tu te vautres sur la fin, à la fois sur le fait que le seul intérêt de Java concernerait le RAD et l’efficience du coding, et également sur la place de la valeur ajoutée du côté du bas niveau (c’est justement plutôt l’inverse: la valeur ajoutée est désormais du côté des couches hautes).
#46
#47
j’espère que le nouveau runtime viendra avec une maj de la barre ask.com
… ma préférée
#48
#49
#50
Mouais… Pour moi le java est, et restera, un langage de merde.
Ça permet uniquement à des développeurs inexpérimentés/nuls de sortir de la merde rapidement sans rien comprendre à ce qui se passe réellement en dessous. “T’inquiètes pas, je gère”
Tout ce que le dev java ne fait plus, par feignantise ou par incompétence, c’est le sysadmin qui se le tape en maintenant l’environnement nécessaire à faire marcher tout le merdier qu’est java.
La jvm est censée suivre une norme (j2ee il me semble) pour que n’importe quelle code java tourne dessus. Et bah j’ai plus assez de doigts pour compter le nombre de softs qui ne fonctionne plus après avoir mis à jour la jvm. Donc on garde un magnique système faillible, et pi cé tou…
Le dev n’as plus à s’occuper de nettoyer les objets déréférencé…. Mais à quel prix? rien que de devoir spécifier les xmx et xms est une aberration en soit pour un programme…
java essaye de réinventer tout ce qui est déjà présent dans un OS, mais forcement en moins bien, c’est quoi l’utilité? Quant à gérer des permissions systèmes, et bien c’est magique, tout programme lancé depuis /usr/bin/java… Donc pour faire de la sécurité système apparmor ou selinux… et bien tu peux pas…
Quant au serveur d’application jboss and co… touours sencé simplifier le boulot des développeurs, juste LOL, l’usine à gaz complètement inmaintenable, qui du coup n’est jamais mis à jour. Sauf à avoir une équipe de plusieurs personne dédié à le gérer.
Tant que les choix techniques partent du dev, forcement, java a de beaux jours devant lui. Mais combien de dev sont capable d’administrer une jvm? 10%? Bref…
Voilà, c’est ça java.
#51
#52
#53
Le cauchemar, je vais sur PCI, et je vois une news qui annonce que Java continue au lieu de jeter l’éponge (ses créateurs devraient aller en prison vu toutes les failles de sécurité dont ils sont responsables).
#54
#55
Signalons enfin que de très nombreux outils ont été mis à jour au passage et que la nouvelle version modernise enfin les interfaces proposées dans JavaFX, lui aussi passant à la version 8. La liste complète de tous les changements apportés par Java 8 peut être consultée depuis le site officiel.
c.a.d des zolis boutons, des zolies couleurs ? comme a peu près toutes les boites now " /> juste du cosmétique comme d’hab " />
#56
#57
#58
#59
doublon, à supprimer merci ^^
#60
#61
#62
#63
#64
Les Loutres (Lutrinae) sont une sous-famille de mammifères carnivores de la famille des Mustelidés. Il existe plusieurs espèces de loutres, caractérisées par de courtes pattes, des doigts griffus et palmés (aux pattes avant et arrière) et une longue queue.
Cette sous-famille a été décrite pour la première fois en 1838 par le zoologiste Charles Lucien Bonaparte (1803-1857), l’un des neveux de Napoléon Bonaparte.
Dans de nombreux pays les loutres ont disparu de tout ou partie de leurs aire naturelle de répartition, de même que les castors qui partageaient leur milieu de vie. Ces deux espèces-clé font l’objet depuis un siècle environ de protection et de programmes ou projets de réintroduction2 ou confortement de populations par translocation3. La loutre étant particulièrement discrète elle fait souvent l’objet d’un suivi par recherche d’indice (poils, marquage de territoire, pièges photographiques et suivi télémétrique par puce électronique4,5.
Voilà, ça fera au moins un comm’ apportant une quelconque valeur ajoutée à ce fil de discussion.
#65
#66
#67
#68
Sa me fait marrer cette gueguerre debille a savoir qu’elle est le meilleur language…
Excepter pour les dev amateur qui vont choisir leur langage sur des critères plus ou moins valable (on est plus dans les année 90, la gestion de la ram n’est plus le centre des préoccupation), on choisi un langage pour sa finalité.
Si le C++ est idéale pour faire du bas niveau, dev des pilote ou encore des jeux, il n’est certainement pas adapter a l’informatique de gestion ou le web… (en tous cas j’ai jamais vu d’entreprise, surtout ces dernière année faire du web en CGI/C++)
Par contre .net et java eu le sont, ils sont dailleur fait pour sa, et il n’est pas question de ne pas savoir codé ou d’être feignant (bien que pour un dev la feignantise est un gros plus), mais bien d’utilisé les outils adéquate…
Il ne faut oublié (pour les pro en tous cas) que se qui compte avant tous c’est la productivité et le rendu final, que le code soit fait en bas niveau avec une gestion tres optimisé de la ram, le client il sans fout complètement, par contre si on doit y passé deux semaine au lieux d’une pars-que le bas niveau implique d’y passé plus de temp, la sa le fait toute de suis moin bien
Aprés en lisant les coms de certain, je ne suis pas convaincu que se qui se permétre de critiqué java et/ou le .net ont réellement regardé se que ces langages pérmétait réellement et qu’elles était leur réel atout (il n’y a pas que les perf et la conso ram dans la vie).
#69
#70
#71
#72
#73
#74
#75
#76
#77
#78
#79
Java est en tres nette perte de vitesse en ce moment et tarde à se repenser. Les lacunes historiques sont toujours la et les nouveautés font vraiment “usine à gaz”.
Quant à la stratégie d’Oracle, il est à craindre qu’ils pensent Java pour leurs interets et donc le tuent à moyen terme …
#80
#81
#82
#83
#84
Sympa cette news, ça permet de se distraire en lisant les commentaires.
Sur ce, je vous quitte, et je retourne coder mon bootstrap en assembleur
" />
#85
#86
#87
#88
#89
Continuons avec les posts à valeur ajoutée dans ce fil:
galinette n. féminin: Petite poule, poulette.
Une poule naine, est une poule atteinte de nanisme. Selon les provinces et les patois la poule naine a de nombreuses dénominations : poule de Cayenne, bassette, gallinette…
Il faut distinguer deux types de poules naines :
Différents noms en usage:
Les poules naines sont communément appelées en France sous le terme anglophone de bantam, le club officiel en France affilié à la Société centrale d’aviculture de France qui publie le standard officiel et regroupe les clubs et éleveurs de poules naines s’appelle le Bantam Club français.
But de l’élevage:
La conduite d’un élevage de poules naines ne diffère guère de celui des grandes races. Il y a plusieurs raisons de préférer l’élevage des poules naines aux grandes races :
Certaines races naines sont sélectionnées pour leur aptitude à couver (nègre-soie, Pictave…), ce qui est est recherché par les éleveurs qui veulent une incubation naturelle de leurs volailles (poussins, canetons…), ainsi que certains chasseurs qui leur confient leurs œufs de faisans et perdrix.
#90
#91
#92
#93
#94
#95
#96
Toujours les mêmes débats " />
Pour le moment aucun langage ne remplit tous les usages. Ca devrait être le cas quand M# sortira " />
En attendant je code en C++ pour la programmation cliente et .net (C#) sur serveur.
sinon visual studio 2012 consomme 161Mo chez moi avec une dizaine de projets ouverts et une centaine de fichiers sources.
Pour le fait que les hello world consomment plus de ram en java ou .net c’est parce que le runtime est chargé dans le processus de l’application.
#97
Pour revenir à la news : ne pensez vous pas que les lambdas expressions vont nuire à la lisibilité du code ?
Franchement, quel intérêt, à part mettre des miettes de code partout ?
#98
#99
#100
#101
#102
#103
#104
#105
#106
#107
#108
#109
#110
#111
#112
#113
#114
#115
#116
#117
#118
#119
#120
#121
#122
#123
#124
#125
#126
#127
Que pensez-vous de la montée de Node.js vs Java.
J’ai beaucoup de mal à m’adapter à Javascript car je viens d’un environement Objet (C++, Java). Cependant je m’efforce de comprendre le monde prototypé.
Avec Google derrière Node.js et un stack full JS: Angular/Node/Mongo cela nous fait qu’un langage à gérer et les performances sont plutôt bonnes.
Maintenant c’est beaucoup moins mature en terme de framework que Python, Ruby et Java :(
#128
#129
#130
Si seulement Python pouvait avoir un typage plus strict et autant d’outils que pour le Java… On pourrait simplement arrêter d’utiliser le Java et utiliser un langage plaisant à utiliser. Vous savez, pas un C++ simplifié. Un langage qui permet d’exprimer en peu de lignes ce qu’on cherche à faire et de manière élégante.
#131
#132
#133
#134
#135
#136
#137
#138
#139
#140
#141
#142
#143
#144
#145
#146
#147
#148
#149
#150
#151
#152
#153
#154
#155
#156
#157
#158
#159
#160
#161
#162
#163
#164
#165
#166
#167
#168
Il faut pas oublier que pour le code managé il est aussi possible de faire des optimisations conséquente mais pour ça il faut une bonne connaissance du langage.
Ce qui est bien comme on a un code intermédiaire qui est exécuté par la VM, si on récupère une VM optimisé on aura un programme plus performant sans même recompilé notre projet.
#169
#170
#171
#172
Si on regarde l’histoire de l’informatique les grands changements ont souvent été accompagnés par de grosses avancées au niveau des compilateurs et langages.
M# est à Midori ce que le langage C est à Unix.
#173
#174
#175
#176
#177
#178
#179
#180
#181
#182