Ich bewerbe mich um einen Job als Java-Entwickler. Bis 2001 habe ich einige Hobby-Apps in Java programmiert, danach habe ich hauptsächlich in C ++ und anderen Sprachen gearbeitet. In der Zwischenzeit fühlt es sich an, als sei Java sehr gewachsen, und es gibt alle Arten von Akronymen (EJB, Frühling usw.), die mir unbekannt sind.
Wo finde ich eine knappe, klare Erklärung der jüngsten (5 Jahre) Entwicklung von Java? Was sind Schlüsselelemente zu verstehen?
2001? Wow, die Zeiten haben sich geändert. Das war was? Java 1.3?
Erstens, Sprachfunktionen:
Die Sache ist jedoch, die oben genannten sind nicht einmal die großen Veränderungen. Zu Beginn dieses Jahrzehnts unterzog sich Java radikalen architektonischen und philosophischen Veränderungen.
Im Jahr 2001 waren die großen Dinge EJB, Swing und Servlets / JSP. Keiner von ihnen ist wirklich mehr (zumindest nicht direkt).
Wahrscheinlich ist das Größte, was in Java passiert (seit seiner Gründung imho), dass Frühling und Frühling vor fünf Jahren wirklich groß wurden. Spring ist ein leichtgewichtiger Container, der auch Implementierungsunterschiede zwischen verschiedenen Anbietern und APIs verbergen soll. Das größte an Spring ist jedoch das Prinzip der "Inversion der Kontrolle" oder "Abhängigkeitsinjektion". Die Idee ist, dass Klassen ("Beans") aus einer externen Konfiguration ("Anwendungskontext") zusammengesetzt werden.
Ein typisches Muster in den früheren J2EE-Tagen war der Service Locator. Es wird jetzt weitgehend als ein Anti-Muster betrachtet. Im Grunde würden Sie Code wie folgt sehen:
%Vor%Wenn Sie heutzutage diese Art von Ansatz befürworten, werden Sie als Anachronismus, Rang-Amateur, Spinner oder eine Kombination der drei angesehen.
Die Abhängigkeitsinjektion in ihrer einfachsten Form wird stattdessen das erforderliche Verhalten in Klassen einbringen, ohne die tatsächliche Implementierung zu berücksichtigen. Diese Art der Trennung ist täuschend stark und eine tiefgreifende Veränderung, mit der Sun (noch) nicht wirklich fertig wird. Es verbessert auch den Gerätetest erheblich.
Swing ist immer noch in der Nähe, aber nicht mehr so groß. Sun hat JavaFX in den letzten Monaten als Flash-Wettbewerber und Applet-Ersatz veröffentlicht. Ich persönlich glaube nicht, dass es eine große Zukunft hat (wie Joel in seinem letzten Podcast sagte, Java auf dem Desktop ist im Grunde tot), aber andere werden nicht zustimmen.
EJB war 2001 groß. Nicht mehr so viel. Es wurde (richtigerweise) als Albtraum der XML-Konfiguration angesehen, Unterschiede in den Anwendungsservern, die sie größtenteils nicht portabel (oder nicht-trivial portabel, wenn Sie bevorzugen) und sie sind solch eine schwergewichtige Lösung (vor 3.0), die sie nicht Ich habe wirklich so viele Anwendungen.
EJB 3.0 hat einen viel springhafteren Ansatz der Abhängigkeitsinjektion (Art von) und Anmerkungen von POJOs (einfachen alten Java-Objekten) genommen.
Servlets und JSP waren 2001 groß. Struts begann damals oder bald danach und war bis vor einigen Jahren groß. Es wurde jetzt von anderen moderneren Web-Frameworks übertroffen (wie Struts 2 - keine echte Beziehung zu STruts 1 trotz des Namens - Spring MVC, Seam und so weiter).
Das große Ding heutzutage - nicht nur in Java - ist das Web und RIAs. Flash / Flex und Javascript / HTML / CSS (plus Frameworks) regieren heutzutage hier den Platz (und ja Theres GWT, aber es hat eine kleine Fangemeinde).
Weblogic und Websphere sind nicht so groß wie 2001. JBoss hat immer noch eine Menge Dynamik, aber mein Appserver der Wahl ist heutzutage Sun Glassfish v2 oder v3 Prelude.
IDEs haben sich ebenfalls geändert. JBuilder war 2001 groß. Jetzt gibt es nur noch drei: Eclipse, Netbeans und IntelliJ (probalby in dieser Reihenfolge der Popularität, aber meine Vorliebe ist IntelliJ, die auch die einzige kommerzielle der Reihe ist).
Ich empfehle Ihnen dringend, Blogs zu lesen. Das ist normalerweise der beste Weg, um auf dem neuesten Stand zu sein.
Sieh dir diesen SO-Thread an: Java lernen
Cletus hat eine erstaunliche Antwort gegeben, aber ich stimme stark mit
übereinJava auf dem Desktop ist im Grunde tot
Tatsächlich ist es mehr als lebendig:] Eclipse IDE ist weit mehr als nur ein Entwicklerwerkzeug. Sehen Sie sich das SWT / JFace / Eclipse RCP Framework auf eclipse.org an - mit ihm können Sie selbst Anwendungen wie Eclipse erstellen. Texteditoren, grafische Diagrammeditoren, Modellierungstools, Berichte .. Ich kann selbst nicht mit Eclipse-Technologien mithalten ... einige von ihnen haben es in Spring geschafft und sind sogar in der nächsten Java-Version geplant, um nativ unterstützt zu werden (Module wie OSGi) ). Vergessen Sie Swing, Desktop-Apps werden heutzutage auf RCP Weise entwickelt.
Einige Informationen finden Sie unter Ссылка und finalisieren Sie die Zone unter dzone.com.
Java unterstützt jetzt standardmäßig JavaScript und zusätzlich wurden eine Reihe von Sprachen wie python, ruby usw. als Jython , JRuby . Es gibt auch eine neue Sprache namens groovy und ihr Flaggschiff-Projekt grails (die Spring und Hibernate verwendet).
GWT (Java zu JavaScript Converter + Widget-Set) gewinnt an Aufmerksamkeit. Es gibt sogar ein emergentes Projekt namens Eclipse RAP, das darauf abzielt, RCP-Inhalte ins Web zu bringen.
Abgesehen von JBoss und Glassfish könnten Sie sich für Jetty interessieren - eine extrem leichte und dennoch leistungsstarke Alternative.
Tags und Links java