I want to know about Which language is best for long term career and How?

Which language should I choose among Java and .NET Platform or Should I choose Oracle like DBMS Language (SQL/PLSQL)? I am confused?

Detailed answer would be appreciated.

  • 8
    All of the above. Sep 17 '10 at 10:09
  • 2
    Programming or DBA? Chose the one you find most fun.
    – user1249
    Oct 9 '10 at 2:09

10 Answers 10


All of them. Both are solid technologies and they will stay in mainstream for long long time.

Anyway the most characteristic of our career is change (evolution, new technologies introduction). You need learn new things forever.

Technologies knowledge are not important to stay relevant on career, fundamentals, hard work, motivation and evolution is the key.


First, define "Long Term".

If you mean "Five Years" then any of these technologies are going to be safe bets.

Microsoft, for example, typically provides support for developer tools for 10 years after the last version is withdrawn from sale. With .NET 4.0 just released, you've got at least 12-13 years of availability.

However, if you mean "Ten Years" or "Twenty Years", then I think you might need to readjust your expectations.

This is an industry of change - not only does the technology change at an ever increasing rate, but the whole reason for writing software is to change the way other people do their jobs. Change is inherent in what we do, and there's no way to avoid it.

No technology stack is going to give you long term stability.

You can't spend x years learning, then y years doing (where x < 5 and y > 10).

Instead, you need to commit to continuous learning.

As an example:

My Computer Science degree focussed on C programming. (C++ was only a committee's wet dream at the time, 1990).
First job out of university, the major programming I did was in an early version of FileMaker Pro (as in, I used FMPro, I wasn't creating it). Taught myself Delphi and SQL in my own time.
Next job: Apple hardware support. Learnt that I'm a software guy. :-)
Next job: Delphi Developer. Learnt some Java and XML on the job.
Next Job: Delphi Developer, again. Taught myself XSLT and C# in my own time.
Current Job: C# developer. Now learning functional programming (F#) and immutable data structures.
Next Job: who knows?

  • +1. @Bevan, maybe you should change the second-last "Next Job" to "Current Job".
    – Geoffrey
    Oct 8 '10 at 11:01

So you want to stick to one language/technology for the time being (long-term relationship). Well, if I were you, I wouldn't do that. Actually I already did it twice and the outcome is bad. I was once Object Pascal (or Delphi as many people call it). It was fun, but the job market dried out. Now I stick to Localization/Internationalization programming niche. No good career perspectives either.

What I am going to do (and in fact what I am doing) is to learn constantly and try out new things like Google Go, Scala, new frameworks and/or programming models. I am afraid that if you want long-term job security, it is the only way to go.


If you look back 15-20 years, what were big then? Facebook, Google, and Apple's current form in terms of iPod, iPhone and iPad were still years away. Windows 95 was the big consumer O/S, browsers wars hadn't started yet, and Y2K was still a threat.

Anyone trying to predict the next big thing that will last for 20 years should be careful to look at former top dogs. Remember when Netscape, Yahoo! and AOL were the Internet kings with the latter buying Time Warner? Remember when the Japanese were considered the big threat in the late '80s?

How about back when Atari, Sega and Nintendo were the game makers? There are probably tons of these stories, but my point is that if you are going to try to build your career on one technology, be aware that it probably won't be the same decades later. I wonder how COBOL has changed as hardware advances happened for another idea...


It's difficult to make any predictions of the future of Java and .Net. Both are still widely supported and there are big projects being undertaken in each. .Net is still heavily pushed by Microsoft as the main development platform, and there is the Mono team doing good work too. Java on the other hand has just been brought by Oracle so perhaps it's official future is slightly less clear, but as nearly all of Java is open source and there are so many major teams doing Java related projects it's certainly not going to go away. Google's Android, just to name one, is heavily dependant on a modified version of the Java runtime, so Google will continue to support and develop that.

It's impossible to predict the future, so all I can really say here is that I would be very surprised if either wasn't still around in some form in 5 years time. Beyond that is anyone's guess.

Personally I think every developer should know SQL, at least to some extent. So learn this on the side in addition to Java or .Net. When you are learning SQL for your chosen database pay attention to the differences between your database and ansi standard SQL, that way when you come to switch to a different database in the future you'll already know some of the bits to watch out for.


SQL everyone should know. Personally I would then focuss getting decent at one of C#,Java, C++ or maybe F# which seems to be gaining ground. Also a solid grounding in unix admin has been very helpful in my career.


I would hope that you are seeking a long-term career that you would actually enjoy as much as possible. Knowing more than one is pretty good advice, but you have to start somewhere. Do you want to be a programmer or a DBA? That is really going to drive how specific you get with Oracle. If you want to be a programmer, learn about databases, but in the context of writing applications for them. If you want to go the Microsoft route, it's .NET.

What will end up happening is you will pick one and then find work/projects with it or you'll end up being required to learn something else. Don't look at picking one and ending up in another as a bad thing. Life's a journey not a destination.


Learn the concepts underlying the specific brands (for want of a better term). Learn object-oriented design with Java / .NET as a tool to that end. Learn about relational databases (and SQL, as that is fairly generic), with whatever database you have access to.

I was taught databases at university on Postgres but have never touched it since leaving the last exam. I use MySQL, Oracle and SQL Server frequently, but everything I learned in classes and practical sessions is still entirely valid.


Any technology that achieves a certain critical mass are guaranteed to be around for a while. All three of these are well in this category and even if for some reason they were canned tomorrow you would still find work for the next 10 years, time enough to retrain.


Between database development(sql/plsql) and normal development(.net/Java) go for the one suits better to you. If you choose normal development, choose any of .net and Java. Consider switching if situation requires.

Not the answer you're looking for? Browse other questions tagged or ask your own question.