Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 144859
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 11, 20262026-05-11T08:19:15+00:00 2026-05-11T08:19:15+00:00

I am applying for a job as java developer. I programmed some hobby apps

  • 0

I am applying for a job as java developer. I programmed some hobby apps in java until 2001, after that I have mostly worked in c++ and other languages. Meanwhile, it feels like java has grown a lot, and there are all kinds of acronyms (EJB, spring, etc) unknown to me.

Where can I find a concise, clear explanation of the recent (5 years) development of java? What are key elements to understand?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. 2026-05-11T08:19:15+00:00Added an answer on May 11, 2026 at 8:19 am

    2001? Wow, times have changed. That was what? Java 1.3?

    Firstly, language features:

    • Generics: Java added generics in the 5.0 release in 2004, basically as syntactic sugar to stop you do all those casts from Objects out of collections;
    • Annotations: also in Java 5. Used extensively in persistence frameworks, Spring and elsewhere;
    • Typesafe enums: Java 5 added an enum type, which is basically a class (sort of);
    • Concurrency: Java 5 added extensive concurrency utils so multithreading has changed a lot; and
    • Asserts: a highly underused language feature added in Java 1.4. If enabled when you run your program, assets can check for various conditions and bomb out if they aren’t true. The fact that you can turn them on or off when you run your program is great for diagnostics.

    Thing is though, the above aren’t even the big changes. In the early part of this decade, Java underwent radical architectural and philosophical changes.

    Back in 2001 the big things were EJB, Swing and servlets/JSP. None of them really are anymore (at least not directly).

    Proably the biggest thing to happen in Java (since its inception imho) is Spring and Spring really became big about 5 years ago. Spring is a lightweight container that also seeks to hide implementation differences between different providers and APIs. The biggest thing about Spring however is the principle of ‘inversion of control’ or ‘dependency injection’. The idea is that classes (‘beans’) are assembled from an external config (‘application context’).

    A typical pattern in the earlier J2EE days was the Service Locator. It’s now viewed largely as an anti-pattern. Basically you’d see code like this:

    public MyClass() {   this.dataMember = ServiceLocator.locate('some service'); } 

    If you go around advocating this sort of approach these days you will be viewed as an anachronism, a rank amateur, a crackpot or some combination of the three.

    Dependency injection, in its simplest form, will instead inject the necessary behaviour into classes without regard for the actual implementation. This kind of separation is deceptively powerful and a profound shift that Sun (still) hasn’t really caugh tup with. It also greatly enhances unit testing.

    Swing is still around but not so big anymore. Sun released JavaFX as a Flash competitor and applet replacement in recent months. I personally don’t think it has much of a future (as Joel put it in his recent podcast, Java on the desktop is basically dead) but others will disagree.

    EJB was big in 2001. Not so much anymore. It was (correctly) viewed as a nightmare of XML configuration, differences in application servers that made them largely non-portable (or non-trivially portable if you prefer) and they’re such a heavyweight solution (pre-3.0) that they don’t really have that many applications.

    EJB 3.0 has taken a much more Spring-like approach of dependency injection (sort of) and annotations of POJOs (plain old Java objects).

    Servlets and JSP were big in 2001. Struts began then or soon thereafter and was big until a few years ago. It’s now been surpassed by other more modern Web frameworks (like Struts 2–no real relation to STruts 1 despite the name–Spring MVC, Seam and so on).

    The big thing these days–not just in Java–is of coruse the Web and RIAs. Flash/Flex and Javascript/HTML/CSS (plus frameworks) rule the roost here these days (and yes theres GWT but it has a small following).

    Weblogic and Websphere aren’t as big as they were in 2001. JBoss still has a lot of momentum but my appserver of choice these days is Sun’s Glassfish v2 or v3 Prelude.

    IDEs have also changed. JBuilder was big in 2001. Now there are only really three: Eclipse, Netbeans and IntelliJ (probalby in that order of popularity but my preference is IntelliJ, which is also the only commercial one of the bunch).

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Ask A Question

Stats

  • Questions 89k
  • Answers 89k
  • Best Answers 0
  • User 1
  • Popular
  • Answers
  • Editorial Team

    How to approach applying for a job at a company ...

    • 7 Answers
  • Editorial Team

    How to handle personal stress caused by utterly incompetent and ...

    • 5 Answers
  • Editorial Team

    What is a programmer’s life like?

    • 5 Answers
  • Editorial Team
    Editorial Team added an answer Your regex has the global (g) flag set. Every time… May 11, 2026 at 5:55 pm
  • Editorial Team
    Editorial Team added an answer Acl9 works great with AuthLogic: http://github.com/be9/acl9/tree/master May 11, 2026 at 5:55 pm
  • Editorial Team
    Editorial Team added an answer Your problem is that "YYYY" isn't a valid ICU date… May 11, 2026 at 5:55 pm

Related Questions

I am writing an application where one of the features is to allow the
I have a large database and want to implement a feature which would allow
How to approach applying for a job at a company owned by a friend?
Over the years, I think I have seen and tried every conceivable way of

Trending Tags

analytics british company computer developers django employee employer english facebook french google interview javascript language life php programmer programs salary

Top Members

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.