2001? Wow, die Zeiten haben sich geändert. Das war was? Java 1.3?
Zum einen Sprach-Feature:
- Generics: Java hinzugefügt Generika in der Version 5.0 im Jahr 2004, im Grunde als syntaktischer Zucker zu stoppen, alles, was Sie tun, um diese Abgüsse von Objekten aus Sammlungen;
- Anmerkungen: auch in Java 5. Wird intensiv in Persistenz-Frameworks, Spring und anderswo verwendet;
- TypeSafe Enums: Java 5 hinzugefügt einen Enum-Typ, der im Grunde eine Klasse (Art) ist;
- Parallelität: Java 5 hinzugefügt umfangreiche Parallelität Utilities so Multithreading hat sich sehr verändert; und
- Asserts: ein stark unterverwendetes Sprachfeature in Java 1.4 hinzugefügt. Wenn aktiviert, wenn Sie Ihr Programm ausführen, können Assets nach verschiedenen Bedingungen suchen und ausbomben, wenn sie nicht wahr sind. Die Tatsache, dass Sie sie beim Ausführen Ihres Programms ein- oder ausschalten können, ist für die Diagnose sehr hilfreich.
Die Sache ist jedoch, die oben genannten sind nicht einmal die großen Veränderungen. Zu Beginn dieses Jahrzehnts durchlief Java radikale architektonische und philosophische 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 die größte Sache in Java (seit seiner Gründung imho) ist Frühling und Frühling wirklich vor 5 Jahren groß geworden. 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. Grundsätzlich würden Sie Code wie folgt sehen:
public MyClass() {
this.dataMember = ServiceLocator.locate("some service");
}
Wenn Sie in diesen Tagen diese Art von Ansatz befürworten gehen um Sie als Anachronismus betrachtet werden, ein blutiger Anfänger, ein crackpot oder eine Kombination der drei.
Die Abhängigkeitsinjektion wird in ihrer einfachsten Form 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 das Komponententesten 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 so viel mehr. 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 (Sortierung) und Anmerkungen von POJOs (einfache alte Java-Objekte) verwendet.
Servlets und JSP waren groß im Jahr 2001. Struts begann dann oder bald danach und war groß bis vor ein paar Jahren. Es wurde jetzt von anderen modernen Web-Frameworks übertroffen (wie Struts 2 - trotz des Namens keine echte Beziehung zu STruts 1 - Spring MVC, Seam und so weiter).
Die große Sache in diesen Tagen - nicht nur in Java - ist von coruse das Web und RIAs. Flash/Flex und Javascript/HTML/CSS (plus Frameworks) beherrschen in diesen Tagen hier den Raum (und ja, es gibt GWT, aber es hat eine kleine Anhängerschaft).
Weblogic und Websphere sind nicht so groß wie 2001. JBoss hat immer noch eine Menge Dynamik, aber mein Anwendungsserver der Wahl ist Sun Glassfish v2 oder v3 Prelude.
IDEs haben sich ebenfalls geändert. JBuilder war im Jahr 2001 groß. Jetzt gibt es nur noch drei: Eclipse, Netbeans und IntelliJ (in dieser Reihenfolge der Popularität probalby, aber meine Vorliebe ist IntelliJ, die auch die einzige kommerzielle der Reihe ist).
Ich bin ein Swing-Entwickler und Ihr Beitrag machte mich weinen – willcodejavaforfood
Sicher war es nicht die Tatsache, dass Sie ein sind Swing-Entwickler, der dich zum Weinen gebracht hat? :) – cletus
jsp nicht mehr groß ?? JSF hat es noch nicht ganz ersetzt – tehvan