Analogues of Java and .NET technologies/frameworks

Java.NetComparison

Java Problem Overview


I work in a shop that is a mix of mostly Java and .NET technologists. When discussing new solutions and architectures we often encounter impedance in trying to compare the various technologies, frameworks, APIs etc. in use between the two camps. It seems that each camp knows little about the other and we end up comparing apples to oranges and forgetting about the bushels.

While researching the topic I found this: Java --> .Net rough equivalents

It's a nice list but it's not quite exhaustive and is missing the key .NET 3.0 technologies and a few other tidbits. To complete that list: what are the near/rough equivalents (or a combination of technologies) in Java to the following in .NET?

  • WCF ~=
  • WPF ~=
  • Silverlight ~=
  • WF ~=
  • Generics ~=
  • Extension Methods ~=
  • Lambda expressions ~=
  • Linq (not Linq-to-SQL) ~=
  • TPL ~=
  • F# ~=
  • IronPython ~=
  • IronRuby ~=
  • ...have i missed anything else?

Java Technologies (are there .NET equivalents?):

  • ~= EJB
  • ~= WebSphere
  • ~= GlassFish
  • ~= JBoss App Server
  • ~= Tomcat?

Note that I omitted technologies that are already covered in the linked article. I would also like to hear feedback on whether the linked article is accurate.

Note: This seems to be turning into a wiki-type article so i marked it as such.

Java Solutions


Solution 1 - Java

.NET --> Java

Java --> .NET

  • EJB ~= MTS/COM+

  • WebSphere AS, GlassFish, JBoss AS are all concrete Java EE API implementations. The .NET equivalent would be IIS with at least MTS/COM+ support (is there by the way competition for IIS?).

  • Tomcat is a webcontainer aka servletcontainer, it only implements the Web Component part of the huge Java EE API (basically only the javax.el and javax.servlet parts, the JSP/EL and Servlet API). The .NET equivalent would be still IIS, but then without support for MTS/COM+, mail, message queue, persistence and more. I.e. only a simple web server for pure "Classic ASP".

Solution 2 - Java

Here is a list from my own research and follow up on BalusC's, Rafa's (et al.) answers:

(Slowly updating this list. Will also provide links back to .NET technologies for Java folks who may be interested.)

Solution 3 - Java

JavaFX is the rough equivalent of Silverlight. That's all I know from that list...

Solution 4 - Java

The main technologies are already covered, so a few peripheral technologies:

  • TPL ~= java.concurrent package
  • F# ~= Scala
  • IronPython/IronRuby ~= Jython/JRuby
  • .Net Remoting ~= RMI
  • MEF/System.AddIn ~= OSGi/Jigsaw

Solution 5 - Java

To the growing list I submit:

Solution 6 - Java

The Linq equiv in the Java world is Quaere - http://quaere.codehaus.org/

Solution 7 - Java

If I've understood correctly, Lambda expressions in C# are "loaned" from functional languages and as such there's no direct equivalent in Java (at least for now), however LambdaJ gives you something similar in the meanwhile.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionPaul SasikView Question on Stackoverflow
Solution 1 - JavaBalusCView Answer on Stackoverflow
Solution 2 - JavaPaul SasikView Answer on Stackoverflow
Solution 3 - JavaDave SwerskyView Answer on Stackoverflow
Solution 4 - JavaRafa CastanedaView Answer on Stackoverflow
Solution 5 - JavaDavid J. LiszewskiView Answer on Stackoverflow
Solution 6 - JavaJonView Answer on Stackoverflow
Solution 7 - JavaEskoView Answer on Stackoverflow