The Software Developer’s BurdenImagine you’re a software application developer. Your programming languageof choice (or the language that’s been foisted on you) is C or C++ . You’ve beenat this for quite a while and your job doesn’t seem to be getting any easier.These past few years you’ve seen the growth of multiple incompatiblehardware architectures, each supporting multiple incompatible operatingsystems, with each platform operating with one or more incompatiblegraphical user interfaces. Now you’re supposed to cope with all this and makeyour applications work in a distributed client-server environment. The growthof the Internet, the World-Wide Web, and “electronic commerce” haveintroduced new dimensions of complexity into the development process.The tools you use to develop applications don’t seem to help you much. You’restill coping with the same old problems; the fashionable new object-orientedtechniques seem to have added new problems without solving the old ones.You say to yourself and your friends, “There has to be a better way”!The Better Way is Here NowNow there is a better way—it’s the Java™ programming language environment(“Java” for short) from Sun Microsystems. Imagine, if you will, thisdevelopment world…• Your programming language is object oriented, yet it’s still dead simple.• Your development cycle is much faster because Java is interpreted. Thecompile-link-load-test-crash-debug cycle is obsolete—now you just compileand run.• Your applications are portable across multiple platforms. Write yourapplications once, and you never need to port them—they will run withoutmodification on multiple operating systems and hardware architectures.• Your applications are robust because the Java run-time system managesmemory for you.• Your interactive graphical applications have high performance becausemultiple concurrent threads of activity in your application are supported bythe multithreading built into Java environment.• Your applications are adaptable to changing environments because you candynamically download code modules from anywhere on the network.• Your end users can trust that your applications are secure, even thoughthey’re downloading code from all over the Internet; the Java run-timesystem has built-in protection against viruses and tampering.You don’t need to dream about these features. They’re here now. The JavaProgramming Language Environment provides a portable, interpreted, highperformance,simple, object-oriented programming language and supporting runtimeenvironment. This introductory chapter provides you with a brief look atthe main design goals of the Java system; the remainder of this paper examinesthe features of Java in more detail.At the end of this paper you’ll find a chapter that describes the HotJava™Browser (“HotJava” for short). HotJava is an innovative World-Wide Webbrowser, and the first major applications written using the Java environment.HotJava is the first browser to dynamically download and execute Java codefragments from anywhere on the Internet, and to so so in a secure manner.