tags:

views:

111

answers:

4

I have came from another question to this one:

How can one start with Java (JVM) ecosystem? What are beginner, intermediate and advanced knowledge-bases (bags!)? To be honest Java ecosystem was always a bit confusing to me, so it would be very helpful to provide some "reference references" and "defacto tutorials" for learning (curve!) JVM.

Note: I want to use JVM with Scala (or Clojure) but not Java itself.

I am a C# developer (WPF, Windows Forms, ASP.NET, Web Services, ... like that).

+2  A: 

The Java Tutorial is a good place to start.

Update: you have enough questions for about a dozen posts here ;-) Honestly, you should do some research yourself (Google is your friend), then ask more specific, targeted questions; that would yield better results. (e.g. I don't think anyone can answer your question regarding Swing or JavaFX without more specific details about what you are trying to achieve.) I try to give a few pointers below, about areas I know to some extent.

  • for servlets and other web frameworks, here is a bunch of tutorials.
  • Tomcat and Jetty are both application servers.
  • there are a lot of different web frameworks, because different people have differing preferences, ideas and style, so many have created their own framework. It can be confusing, but at least there is choice :-)
  • for persistence, apart from JDBC, ORM frameworks are another strong option. I use Hibernate and I can recommend it; in a bigger project it can make your life much easier. Ultimately it depends on your specific project and constraints; there is no single right choice.
  • AFAIK Java has no equivalent of LINQ.

See also this post for further recommendations.

Péter Török
Thanks; but that page is mostly about Java language (Maybe that's not a correct thing I say, yet I am here yet). A more specific example could be what is the knowledge base for web development on JVM (with another language other than Java; like Scala)? What are different Servlet technologies? What is Guise? Tomcat? Jetty? Whay there are so much different things there to run a web application based on JVM? For desktop GUI should I go Swing? JavaFX? For database is JDBC all what I need?And there are more .NET centric questions like: Is there a technology like LINQ on JVM (in any language)?
Kaveh Shahbazian
A: 

If you are looking for a basic introduction, then the Java Tutorials are nice. To do other things like Java Web Development, then your going to need to consult google for the respective technology since they vary so widely.

One book though that I highly recommend taking a look at is Java Concurrency in Practice

TheLQ
+2  A: 

Java based web applications need to run inside of a web container such as Jetty or Tomcat.
You build your app and deploy it to the container which hosts the application at runtime.

Pure/plain JDBC should only be used directly by simple applications or integration layers that do not have access to the class model.
Most applications that I have seen have used some kind of Object Relational Mapping framework which models the entities as classes at a higher level than plain old JDBC. Popular O/R frameworks include:

For web based development, you could start with AppFuse, see the quickstart guide.

AppFuse is a templating system that generates the skeleton of an application for you. Then look deeper into what has been generated, and see what frameworks they are using.

AppFuse lets you choose between different technology stacks, so you could compare.

I haven't see AppFuse support for Guice or GWT.
Guice is a Dependency Injection framework, others that could be used instead are Spring or picocontainer.

Another investigative approach that you could try would be starting with AndroMDA, which is a model driven architecture framework - you start with a UML model and then generate or forward engineer a working application.
AndroMDA also lets control the choice of the underlying framework implementations by configuring different cartridges, once again you should dig deeper to see what they are using in the generated application.

crowne
+1  A: 

Yeah, it is almost impossible for new guys to get started. This is going to drive away a lot of developers, and Java is in danger of not having constant new bloods. The old farts would love that, it's great for career security, and that's why they are making Java more and more complicated.

irreputable