| Introduction | xi |
|---|
| What this Book isn't | xi |
| What this Book is | xi |
| About the Authors | xiii |
|---|
| Chapter 1 History | 1 |
|---|
| Chapter 2 Where We Are, How We Got There |
|---|
| The Monolith: One Mainframe, Many Dumb Terminals | 7 |
| The Island: Personal Computers | 12 |
| The Bridge: Local-Area Networks | 13 |
| The World: Wide-Area Networks | 19 |
| The Internet: The Global WAN | 19 |
| Processor + Operating System = Platform | 22 |
| The Need for a New Paradigm | 24 |
| Chapter 3 Where Do We Go From Here? | 25 |
|---|
| Breaking Tasks into Smaller Parts: Object-Oriented Programming | 27 |
| Structured Programming | 28 |
| Object Orientation and Encapsulation | 29 |
| Object Orientation and Inheritance | 33 |
| Realizing the Potential of Object Orientation | 36 |
| A Common Vocabulary: Portability and Platform Independence | 38 |
| Communicating Tasks: Distributed Program Code | 43 |
| Back to the Future: HTML = Block mode '95 | 43 |
| Client-Server and the Internet | 44 |
| Load Balancing: Applets and their Role |
| in Distributed Processing | 47 |
| Chapter 4 Applets, A Key Component Of The Web |
|---|
| Extending Browser Functionality | 49 |
| The First Applets | 51 |
| Second-Generation Applets | 54 |
| Applets of the Future | 57 |
| General Utilities | 57 |
| Smart Agents | 57 |
| Internet Commerce | 58 |
| FaxMail, a Case Study | 59 |
| Chapter 5 Beyond Applets | 63 |
|---|
| The Java Face-Off | 64 |
| Developer Support | 67 |
| Is Anyone Actually Using Java? | 68 |
| What Types of Applications are Suited to Java? | 70 |
| Enterprise Network Connectivity | 71 |
| Applying Multiple Features | 72 |
| Friends and Foes | 73 |
| Chapter 6 Performance |
|---|
| The Virtual Machine | 75 |
| Background | 76 |
| Relative Performance | 77 |
| Garbage Collection | 80 |
| Multiple Threads of Control | 81 |
| Performance Options | 82 |
| Compiling Just In Time | 82 |
| The Java Chip | 84 |
| The Right Tool for the Job | 86 |
| Chapter 7 Productivity |
|---|
| Measuring Productivity | 87 |
| Java Productivity Features | 88 |
| Gains from Object Orientation | 88 |
| Gains From Platform Independence | 89 |
| Gains from Interpretation | 90 |
| Java vs. C/C++ | 91 |
| OO Purity | 91 |
| No Preprocessor | 93 |
| No Operator Overloading | 94 |
| No goto Statement | 95 |
| No Global Variables | 95 |
| No Explicit Pointers | 96 |
| No Structures, No Unions | 97 |
| Unicode Character Support | 97 |
| Boolean Type | 98 |
| First-Class Arrays | 99 |
| Multiple Inheritance | 99 |
| Tools | 101 |
| Class Libraries | 101 |
| Rapid Application Development | 102 |
| Changes to the SDLC | 103 |
| Making the Transition | 104 |
| Chapter 8 Security |
|---|
| The Risks | 108 |
| Trojan Horses | 108 |
| Viruses | 108 |
| Snoopers and Sniffers | 109 |
| Java's Built-in Safeguards | 109 |
| Language Safety | 110 |
| Protection Provided by the Virtual Machine | 110 |
| System-Access Restrictions on Applets | 112 |
| Can Applets Still Be Useful? | 113 |
| Design Considerations | 114 |
| Chapter 9 Protection of Intellectual Property Rights |
|---|
| Sun's Rights | 117 |
| Developers' Rights | 118 |
| Copyright | 119 |
| Protecting Applets by Legal Means | 120 |
| Protecting Applets by Technical Means | 121 |
| Capitalizing on Applet Redistribution | 122 |
| Chapter 10 Third-Party Support | 125 |
|---|
| In the Starring Role of Creator | 126 |
| Supporting Players | 128 |
| IBM | 130 |
| Microsoft | 131 |
| Netscape | 131 |
| Oracle | 132 |
| ...and a Cast of Thousands | 132 |
| Chapter 11 The Future of Java | 137 |
|---|
| Technologies that Complement | 138 |
| Software Tools | 138 |
| Hardware Devices | 139 |
| Object Technology | 140 |
| Technologies that Compete | 141 |
| The Crystal Ball | 144 |
| Glossary | 145 |
|---|
| Index | 153 |
|---|