Introduction: CS 310 Lecture notes 
  
  
     
  
Outline 
  
  
 Java.
  
  Some buzzwords.
  
  Some history.
  
  Some clarification.
    
What is Java? 
  
  
 Java is
A language. 
    
Java is What? 
  
The Java Environment 
  
Java is … 
SimpleArchitecture neutral , redundant with interpreted.Portable , redundant with interpreted.High performance , yeah whatever.Secure , too complicated.Dynamic , advanced class.Distributed , different class.Multithreaded , different class. 
Simple 
  
  
 Java the language is simple on average.
    
 
 Syntactically it's too simple.    
  
  Java the system is not simple.
    
 
 Which part of the class library is of interest?    
  
  
Object-Oriented 
  
  
 Java the language is mostly object-oriented.
    
      
  
  Java the system is object-oriented too.
    
 
 Distributed systems really shine.    
      
  
  
Robust 
  
  
 Java programs have a set of expected error sources.
    
    
 The set’s smaller and simpler than sets for some other
    languages. 
    
  For example, there are still pointer problems.
    
  And there’s the usual (C++) boneheadedness.
      
  
  Programs that abort in an orderly fashion with exceptions are just as
        useless as programs that abort with a coredump.
    
Interpreted 
  
  
 The interpreter (the Java Virtual Machine, JVM) is the heart of the
  Java system.
  
  Most of the system benefits flow from the JVM.
    
    
 Including architecture neutrality and portability. 
      
  
  As do most of the problems, particularly performance.
    
  
 
The problems 
    won’t bother us in this course.
    
  Except, perhaps, for security.
      
  
  
Java History 
  
  1991, A language for networked consumer devices.
  1992, Marketing and failure.
  1993-4, Spin-off and failure, browsers and success.
  1995, Java 1.0 proof of concept.
  1996, Java 1.0 and 1.1 released.
  1998, Java 1.2 released.
  
 
Java at Work 
  
  
 Java’s ended up in four main environments:
    
    
 The browser (applets); not so much these days.
    
  The server (JSP, servlets, frameworks); Java’s widest use.
    
  The desktop (programs); winning over C++, less so Microsoft.
    
  Portables (cell phones, &c); unclear but promising.
      
  
  It’s applets and programs in this course.
    
Java ≠ JavaScript 
  
  
 Java and JavaScript are unrelated languages.
    
    
 Netscape used “JavaScript” to annoy Sun. 
    
  JavaScript is now properly called ECMAScript.
      
  
  In a browser Java wins and JavaScript loses.
    
    
 JavaScript is wildly unsecure, and will always be so. 
    
  But JavaScript’s simpler, faster, and in the browser.
      
      
 Java’s none of these things. 
        
    
  
  
  
  
Java: Blue or White? 
  
  
 James Gosling has called Java a blue-collar programming language.
    
    
 Negatively, not a PhD-driven research language. 
    
  Positively, a language for working programmers to get things done.
      
  
  Note: blue-collar ≠ stupid.
    
    
 “Java programmers won't understand that” is not a good
    counter-argument. 
      
  
  
Java as Bureaucracy 
  
  
 Java’s a white-collar language too.
    
    
 Object-oriented systems can be bureaucractic organizations.
    
  Positively, a bureaucracy organizes and streamlines complexity.
    
  Negatively, a bureaucracy is inflexible and expensive off the path.
      
  
  This course rejects, but cannot avoid, a bureaucratic view of Java.
    
Summary 
  
  
 Java is a system, not just a language.
  
  In some areas, compared to some languages, Java is ok.
    
  
  Java wanted to be everywhere, and may still be.
  
  Java ≠ JavaScript.
    
    
 And possibly Java > JavaScript 
      
  
  
References