File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Beginning Java and the fly likes What to learn first for Java? Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » Beginning Java
Bookmark "What to learn first for Java?" Watch "What to learn first for Java?" New topic
Author

What to learn first for Java?

H P Ng
Greenhorn

Joined: Sep 01, 2011
Posts: 7
I am a C/C++ programmer
I am looking at Java.
There are so many things out there for Java.
I have used Eclipse JDT for tutorial. Is there a better open source IDE?

Here are some feedback I like from those veterans of java or web developments:
1) With Oracle tightening the rope around java's neck, I am beginning to wonder if I should skip java....
2) To optimize time and learning Java, what open source environment should I target first.
I am planning to develop websites. There are many framework / tools from Apache and others.
So I am at a lost as to where to start.

So, may be a better question to ask is this:
Can someone list all open source items I need to learn to achieve my goal in sequential order?


Wondering about this:
Why is C++ not use for Web development?
It seems like it is much faster.
Is there a multi-platform C++ tool with visual GUI tools for web development?
fred rosenberger
lowercase baba
Bartender

Joined: Oct 02, 2003
Posts: 11175
    
  16

Hp Ng wrote:Why is C++ not use for Web development?
It seems like it is much faster.

faster to develop? Faster to run? Faster to distribute to 10 different platforms?


There are only two hard things in computer science: cache invalidation, naming things, and off-by-one errors
H P Ng
Greenhorn

Joined: Sep 01, 2011
Posts: 7
I was refering to writing server side applications when it comes to C++/C.
Bear Bibeault
Author and ninkuma
Marshal

Joined: Jan 10, 2002
Posts: 60822
    
  65

How is it much faster than Java? I know C, C++ and Java (along with a bazillion other languages) and I challenge the assertion that it's faster to write C++ than Java given equal knowledge of the languages. In fact, it is much faster to write web apps in Java as there is a rich eco-system for doing so that C++ lacks.

It may be true for you if you're not familiar with Java, but that has nothing at all to do with Java as a general choice.


[Asking smart questions] [Bear's FrontMan] [About Bear] [Books by Bear]
Paul Clapham
Bartender

Joined: Oct 14, 2005
Posts: 18541
    
    8

Bear Bibeault wrote:How is it much faster than Java?


I suspect that statement was based on the rumours which were current about 10 years ago which claimed that C++ code ran faster than Java code. You remember them, don't you? A lot of people thought they were (a) true and (b) relevant.
fred rosenberger
lowercase baba
Bartender

Joined: Oct 02, 2003
Posts: 11175
    
  16

Hp Ng wrote:I was refering to writing server side applications when it comes to C++/C.

To clarify...are you saying it takes less time to write the application in C/C++ that to write it in java?

or are you saying that once the code is written, it RUNS faster in C/C++ than the equivalent program in java?

In either case, I think you are wrong.
Jesper de Jong
Java Cowboy
Saloon Keeper

Joined: Aug 16, 2005
Posts: 14074
    
  16

Hp Ng wrote:1) With Oracle tightening the rope around java's neck, I am beginning to wonder if I should skip java....

What exactly does that mean and what are the reasons for someone saying that? Are you sure those reasons are really true? It sounds like FUD.

Oracle has a very good set of tutorials about many different Java subjects.

Once you know the basics of Java, you could start looking at Java EE (Enterprise Edition) - it's the set of APIs that you'll need to program server-side web applications. Probably servlets and JSPs are the thing to start with. There are many, many Java web frameworks. It's impossible to say which one is best, or which one you should look at. A framework that's not too complicated and that works well is Wicket.

Sooner or later you'll want to do something with databases. Java's standard database access API is JDBC, but it's very low-level. It's probably good to learn to understand how it works (one of Oracle's tutorials is on JDBC). But later you'll probably want to use an object-relational mapping (ORM) tool. Java has a standard API for that: JPA (Java Persistence API). Hibernate is a popular implementation of that API.

The world of Java frameworks and APIs is huge. It will take you time to learn.

Java Beginners FAQ - JavaRanch SCJP FAQ - The Java Tutorial - Java SE 7 API documentation
Scala Notes - My blog about Scala
H P Ng
Greenhorn

Joined: Sep 01, 2011
Posts: 7
Bear, Paul, Fred, Jesper:

Qt (C++) has a very rich set of tools for web development.
It is also multi-platform and very easy to learn and use.

I have seen articles of Java running fast. it is till hard for me to believe it can run faster than C/C++
because Java runs on top of JVM, which also runs on top of another OSes. While C/C++ have much less layers under it, and can run with and without an OS layer. Even Andriod allow use of C++ for applications with a MORE demanding processing requirements.

Yes, there are lot of tools to support web apps sing Java. that is great.

Regardless, I am committed to learning Java. There are just TOO much tool choices to pick from, a good problem to have......




H P Ng
Greenhorn

Joined: Sep 01, 2011
Posts: 7
Jesper:
You wrote:

" But later you'll probably want to use an object-relational mapping (ORM) tool. Java has a standard API for that: JPA (Java Persistence API). Hibernate is a popular implementation of that API. "

So is RDBM soon to be replaced by ORM-based databases?
Would using Hibernate be inefficient for small size databases?
Jesper de Jong
Java Cowboy
Saloon Keeper

Joined: Aug 16, 2005
Posts: 14074
    
  16

H P Ng wrote:I have seen articles of Java running fast. it is till hard for me to believe it can run faster than C/C++
because Java runs on top of JVM, which also runs on top of another OSes. While C/C++ have much less layers under it, and can run with and without an OS layer.

The JVM is not just a layer between your application and the OS; it's much more sophisticated than that. The JVM contains a JIT (Just-In-Time) compiler, which converts Java byte code to native machine code at runtime. The JIT can, in principle, generate more efficient native code than a traditional ahead-of-time compiler, because it knows more information about the program and the environment it is running on than an ahead-of-time compiler knows. For example, it can do profile-based optimizations, and it can often convert virtual function calls to direct function calls. The JIT in Oracle's JVM has many very sophisticated optimizations, far too many and too complex to explain here.

Java code is not always faster than compiled C or C++ code, or vice versa. For some things, Java can be faster, for other things, C or C++ can be faster. It's almost impossible to say in which cases one or the other will be faster.

H P Ng wrote:So is RDBM soon to be replaced by ORM-based databases?
Would using Hibernate be inefficient for small size databases?

No, an ORM (Object Relational Mapping) tool acts as a bridge between relational databases and object-oriented software. It is not a replacement for relational databases, just an interface that makes it easy to use relational databases from an object-oriented programming viewpoint.

Hibernate can be used for small as well as large databases.
Subhas Basu
Greenhorn

Joined: Aug 12, 2011
Posts: 3

Welcome to Java! I'm also coming back to Java programming.

You should buy a core java book. You can go for 'Head First Java'. After you are preety much confident in basic Java go for J2EE. Again I'll suggest 'Head First JSP/Servlet'. Reading these books are really fun!!
Campbell Ritchie
Sheriff

Joined: Oct 13, 2005
Posts: 38107
    
  22
H P Ng, welcome to the Ranch
H P Ng
Greenhorn

Joined: Sep 01, 2011
Posts: 7
Thanks everybody.
Already feels like I am in ranch country...

I am using Firefox 6.0, and normally I see menu and icons for me to insert
codes, smiley faces, quote a posted comments like those shown above in a white box, etc... But this is currently NOT shown on my browser.
i could see such options when I go to Ubuntu Forum to do some posting.
What setting do I need to enable these options
?
[ just found this out, when I did a quick reply, I do not get to see icons and various "container" options for
posting codes. It only appears when I do an edit to my reply or posting. Bug? Why? ]

Jesper wrote ( need to do this inside a white box ( how? ):
"No, an ORM (Object Relational Mapping) tool acts as a bridge between relational databases and object-oriented software. It is not a replacement for relational databases, just an interface that makes it easy to use relational databases from an object-oriented programming viewpoint.

Hibernate can be used for small as well as large database"

Right now I am doing tutorial with Java and MySQL.
OK, should I just skip learning SQL and RDBMS and go straight to Hibernate.
SQL is not a hard language to learn, but if Hibernate has its own query language,
why not?
Campbell Ritchie
Sheriff

Joined: Oct 13, 2005
Posts: 38107
    
  22
The smilies show up for me, to the left of the message box, on FF6.0/openSuse. For quoting code, use the appropriate button above the message box. Again, they are visible on my PC. To quote with names, the easiest thing to do is use the "quote" button at the top right of the posting, rather than the "reply" button.
Jesper de Jong
Java Cowboy
Saloon Keeper

Joined: Aug 16, 2005
Posts: 14074
    
  16

H P Ng wrote:Right now I am doing tutorial with Java and MySQL.
OK, should I just skip learning SQL and RDBMS and go straight to Hibernate.
SQL is not a hard language to learn, but if Hibernate has its own query language,
why not?

Don't skip learning SQL and relational databases. You'll need to know something about SQL and what the concepts of relational databases are to be able to understand effectively how Hibernate works. To be able to define a mapping with Hibernate from objects to tables, rows, columns and the relations between them (primary and foreign keys etc.) you'll have to know these concepts from relational databases. Using Hibernate, you can query the database using HQL (Hibernate Query Language) which is a lot like SQL. So it's definitely useful to know some SQL. Hibernate will be really hard to understand if you don't know a bit of SQL and relational databases.
 
It is sorta covered in the JavaRanch Style Guide.
 
subject: What to learn first for Java?
 
Similar Threads
Java Projects Book for OCJP certified people - Suggestions ?
Help needed
I Want to Learn C As Additional Programming Language
Senior Software Engineer Java/Oracle (architecture/design/development skills) Hightstown NJ 21Sep09
Axis "code portabiliy"