{"id":4206,"date":"2018-08-29T18:17:34","date_gmt":"2018-08-29T16:17:34","guid":{"rendered":"http:\/\/www.tutego.de\/blog\/javainsel\/?p=4206"},"modified":"2018-08-29T18:17:34","modified_gmt":"2018-08-29T16:17:34","slug":"die-entwicklung-von-java-und-seine-zukunftsaussichten","status":"publish","type":"post","link":"https:\/\/www.tutego.de\/blog\/javainsel\/2018\/08\/die-entwicklung-von-java-und-seine-zukunftsaussichten\/","title":{"rendered":"Die Entwicklung von Java und seine Zukunftsaussichten"},"content":{"rendered":"<p>Vor 20 Jahren war ein gro\u00dfer Pluspunkt die Einfachheit im Vergleich zum Vorg\u00e4nger C++ und das Fehlen von \u00bbgef\u00e4hrlichen\u00ab syntaktischen Konstrukten. So schrieb einer der Sprachv\u00e4ter, James Gosling \u2013 der nach der \u00dcbernahme von Sun durch Oracle das Unternehmen verlie\u00df \u2013, schon 1997:<\/p>\n<p>\u00bbJava ist eine Arbeitssprache. Sie ist nicht das Produkt einer Doktorarbeit, sondern eine Sprache f\u00fcr einen Job. Java f\u00fchlt sich f\u00fcr viele Programmierer sehr vertraut an, denn ich tendiere stark dazu, Dinge zu bevorzugen, die schon oft verwendet wurden, statt Dingen, die eher wie eine gute Idee klangen.\u00ab<a href=\"#_ftn1\" name=\"_ftnref1\"><strong>[1]<\/strong><\/a><\/p>\n<p>Der Wunsch nach einer einfachen Sprache besteht bis heute, allerdings ist in den letzten 20 Jahren viel passiert, und Java deutlich komplexer geworden. Bedeutende Sprach\u00e4nderungen gab es in Java 5 (also etwa zehn Jahre nach der Einf\u00fchrung von Java) und in Java 8. Das Modulsystem in Java 9 bringt ebenfalls neue Herausforderung.<\/p>\n<p>Bei der Dreifaltigkeit der Java-Plattform \u2013 1. Java als Programmiersprache, 2. den Standardbibliotheken und 3. der JVM als Laufzeitumgebung \u2013 l\u00e4sst sich erkennen, dass es gro\u00dfe Bewegung bei den unterschiedlichen Programmiersprachen auf der Java-Laufzeitumgebung gibt. Es zeichnet sich ab, dass Java-Entwickler weiterhin in Java entwickeln werden, aber eine zweite Programmiersprache auf der JVM zus\u00e4tzlich nutzen. Das kann JavaScript, Groovy, Kotlin, Scala, Jython, JRuby oder eine andere JVM-Sprache sein. Dadurch, dass die alternativen Programmiersprachen auf der JVM aufsetzen, k\u00f6nnen sie alle Java-Bibliotheken nutzen und daher Java als Programmiersprache in einigen Bereichen abl\u00f6sen. Dass die alternativen Sprachen auf die \u00fcblichen Standardbibliotheken zur\u00fcckgreifen, funktioniert reibungslos, allerdings ist der umgekehrte Weg, dass etwa Scala-Bibliotheken aus Jython heraus genutzt werden, (noch) nicht standardisiert. Bei der .NET-Plattform klappt das besser, und hier ist es wirklich egal, ob C# oder VB.NET Klassen deklariert oder nutzt.<\/p>\n<p>Als die \u00dcbernahme von Sun vor der T\u00fcr stand, zeigte Oracle sich sehr engagiert gegen\u00fcber den Sun-Technologien. Nach der \u00dcbername 2010 wandelt sich das Bild etwas, und Oracle hat eher f\u00fcr negative Schlagzeilen gesorgt, etwa als es die Unterst\u00fctzung f\u00fcr OpenSolaris eingestellt hat, seitdem es MySQL zur\u00fcckf\u00e4hrt und als Gefahr f\u00fcr die eigene Datenbank sieht und weil es OpenOffice erst sp\u00e4t an Apache \u00fcbergeben hat (als sich LibreOffice schon verselbstst\u00e4ndigt hatte). Auch was die Informationspolitik und Unterst\u00fctzung von Usergroups angeht, verh\u00e4lt sich Oracle ganz anders als Sun. Durch die Klage gegen Google wegen Urheberrechtsverletzungen in Android machte sich Oracle auch keine Freunde. Android gilt als Beweis, dass Java auf dem Client tats\u00e4chlich erfolgreich ist. Anl\u00e4sslich der Sicherheitsl\u00fccken in Java machte das Unternehmen ebenfalls keine gute Figur, insgesamt d\u00fcrfte auf einer Bewertung zu finden sein: \u00bbOracle hat sich bem\u00fcht, den Anforderungen gerecht zu werden.\u00ab<\/p>\n<p>Fast 10 Jahre nach der \u00dcbernahm gibt es neue radikale \u00c4nderungen. Erstmals entfernte Oracle Teile der Java SE-Bibliothek, wie CORBA-Unterst\u00fctzung, JAXB, JAX-RS (Web-Services), Applets, Java Web Start und JavaFX, auch die JavaScript-Engine soll verschwinden. Damit ist die bisher heilige Abw\u00e4rtskompatibilit\u00e4t aufgegeben \u2013 Java 11 kann nicht in jedem Fall \u00e4ltere Java-Software ausf\u00fchren. Ein weiter Schock ist die Kommerzialisierung. Oracle bringt mit dem OracleJDK alle halbe Jahre ein neues Release heraus, was jedoch ab Java 11 nur f\u00fcr \u201edevelopment, testing, prototyping or demonstrating purposes\u201c genutzt werden darf, also nicht mehr kommerziell; f\u00fcr eine kommerzielle Nutzung fallen Geb\u00fchren an.<a href=\"#_ftn2\" name=\"_ftnref2\">[2]<\/a> Da das OracleJDK allerdings nur eine Java SE-Implementierung von vielen ist, gibt es gute Alternativen, wie das OpenJDK.<\/p>\n<p><a href=\"#_ftnref1\" name=\"_ftn1\">[1]<\/a> Im Original: \u00bbJava is a blue collar language. It\u2019s not PhD thesis material but a language for a job. Java feels very familiar to many different programmers because I had a very strong tendency to prefer things that had been used a lot over things that just sounded like a good idea.\u00ab (http:\/\/www.computer.org\/portal\/web\/csdl\/doi\/10.1109\/2.587548)<\/p>\n<p><a href=\"#_ftnref2\" name=\"_ftn2\">[2]<\/a> http:\/\/www.oracle.com\/technetwork\/java\/eol-135779.html<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Vor 20 Jahren war ein gro\u00dfer Pluspunkt die Einfachheit im Vergleich zum Vorg\u00e4nger C++ und das Fehlen von \u00bbgef\u00e4hrlichen\u00ab syntaktischen Konstrukten. So schrieb einer der Sprachv\u00e4ter, James Gosling \u2013 der nach der \u00dcbernahme von Sun durch Oracle das Unternehmen verlie\u00df \u2013, schon 1997: \u00bbJava ist eine Arbeitssprache. Sie ist nicht das Produkt einer Doktorarbeit, sondern [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[11],"tags":[],"class_list":["post-4206","post","type-post","status-publish","format-standard","hentry","category-insel"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/4206","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/comments?post=4206"}],"version-history":[{"count":1,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/4206\/revisions"}],"predecessor-version":[{"id":4207,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/posts\/4206\/revisions\/4207"}],"wp:attachment":[{"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/media?parent=4206"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/categories?post=4206"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tutego.de\/blog\/javainsel\/wp-json\/wp\/v2\/tags?post=4206"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}