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](http://codery.blogspot.com/2008/05/java-net-rough-equivalents.html)

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.](http://codery.blogspot.com/2008/05/java-net-rough-equivalents.html) 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.**