views:

168

answers:

4

I'm trying to understand trends of the languages. This might be not a "real programming question", but i hope people will correct me promptly.

Currently there are two languages/trends/technologies that i'm interested in: Java and .NET. These are two worlds.

There's an opinion that: 1. Java is most often used in connection with Oracle for ERP/CRM/Banking systems 2. .NET is most often used in connection with MsSQL (captain obvious) for Inter-company communication software (simple ERP/CRMs), websites, portals.

I want you to notice that i emphasized most often not occasionally. Java is truly used for websites. And .NET might be used for complex CRMs as well. It's not a holywar or an attempt to offend .net or java. Simple curiosity. What are you using your tool for? What are the related technologies that are coming along with java/.net. Although the question is pretty abstract, please try to be concrete when answer. Hope you will enjoy reading the answers as well.

A: 

At work we're building a family of web sites and a bunch of windows services. Whereas my personal projects include a package manager and database migration framework, both of which are kind of "for-developers" tools.

Anton Gogolev
+1  A: 

For rich desktop apps .NET (C# usually) wins hands down. Java has been playing catchup for a long time with GUIs and missed the boat with the early releases of awt/swing and poor IDE designer support.

I would say Java is better for server side apps, because of the wide array of high quality third party libraries. Java also integrates with pretty much any DB (JDBC drivers abound) and there's plenty of libs out there to help with database interaction (spring, hibernate, ibatis etc).

Currently I'm using both, Java server/back-end with a C# front-end. Once you jump the hurdle of getting the two to talk to each other you get the benefit of the languages/frameworks working to their strengths.

Mike Q
A: 

We use mostly Java in a bank. Netbanking module (servlets), and internal banking applications are written in Java (Swing). Database is IBM's DB2. Servers are all Ubuntu 9.

Some legacy apps are written in Visual Basic.

ante.sabo
A: 

It's not clear what do you want to get eventually from your question because the answer for the question 'what language should I learn' may be opposite to the answer to 'what platform/technology should I choose for my company'.

My vision is that either java or .net are mainstream platforms, i.e. there are a lot of technologies, ready-to-use products and developers for both of them. It's possible to use both of them for wide range of tasks - starting from GUI finishing complex server-side applications.

About the differences - I see them as follows (note that I'm java guy and may not be aware about many .net benefits):

  • java runtime has support for many platform, .net is for windows and linux (with restrictions - see Mono project);
  • java applications are compiled by jit-compiler and require some time to 'warm up' in order to get a max performance; .net applications are compiled to the machine instructions at first launch (afaik);
  • java has more products and technologies (note that many of them are ported to .net as well);
  • c# as a programming language is evolved more rapidly than java (java spends a lot of effort to backward compatibility);
  • java is less expensive for the companies - there are good free IDEs, profilers, servers and it can be used with free *nix operational systems;
  • java offers a choice between various vendors - web- and app-servers, IDEs, ORM etc;
denis.zhdanov
the question is as i've asked. i'm not asking "what i should choose", neither i ask "what i should learn". i can answer both questions myself. question is: what do people use for their tasks?
ifesdjeen