Java Programming  «Prev  Next»
Lesson 2 Java TM Prerequisites
ObjectiveThis page discusses the knowledge background necessary for this course.

Java Language Prerequisites

In order to get the most out of this course, you should be familiar with the World Wide Web and have experience with computer programming.
You are not expected to be a programming expert by any means, but this course is aimed at those who have solid familiarity with another programming language such as C or C++. Familiarity with object-oriented concepts is desirable but not a prerequisite, since the concepts are introduced in this course.
You will also move through the course a little easier if you understand HTML, since Java applets are embedded in Web pages using HTML.
Do not worry if you do not have any HTML experience, however, because I provide a quick primer when the time comes to use it.
This course covers fundamentals of Java programming and does not address material that is specific to the Java 2 platform (Java 2 SDK). Therefore, Java 2 Fundamentals I is not an upgrade course for those who already understand the fundamentals of Java programming.

The Facebook code base is in PHP, but because of speed and scalability problems, they had to write a compiler (HipHop) that compiled the PHP to C++, which is then compiled using g++. People talk about how great Ruby and PHP are and that all websites are built using these languages.
When you look at how inefficient these languages are, most large organizations have to switch to something more robust like Java.

Java for web applications is overkill for small applications.
A simple blog with one database table to hold blog entries, for example, can be done using a LAMP stack. I have seen Java do a much better job with much larger web applications (like banks and insurance companies) that communicate with a number of other systems (such as mainframe back-ends, databases, and peer web-services background batch-processing systems all in the same application).
From what I've seen, the architecture of a JavaEE web application is just usually more than what is needed for simple web applications.