"Java White Paper from 1996 translated" 01: Java Technology Brief

James Gosling

Chapter One Introduction to Java technology

The next stage is the status quo, or a new paradigm?

Executive House too a community - Knowledge Value Revolution


The burden of software developers

Suppose you are a software application developer. Your choice of programming language (or impose your language) is C or c ++, you been doing this for some time, it seems that your work is not easy. In the past few years, you've seen a number of incompatible hardware architecture development, each architecture supports multiple incompatible operating systems, each platform using one or more non-compliant graphical user interface to operate . Now you need to address all these issues and make your application in a distributed client - server environment to work in. The rapid development of the Internet, the World Wide Web and e-commerce gave the development process has brought new complexities.

Tools you use to develop applications for your work seems little help, you're still dealing with the same old problems. Popular object-oriented technology seems to solve the old problem of the absence of an increase in new issues. You say to yourself and friends, "There must be a better way"!

A better way here

There is a better way --Sun Microsystems's Java programming language platform. Imagine, if you will, it can reconstruct the world ...

  • Java language is object-oriented, but it's still very simple.

  • Since Java technology is interpreted, so much faster development cycle. Compile - link - load - test - crash - debug cycle has become obsolete, and now only need to build and run.

  • Your application can be transplanted across multiple platforms. Write an application once, you do not need to transplant them - they will run on multiple operating systems and hardware architectures, without modification.

  • Your application is robust, because the Java runtime environment for you to manage memory.

  • Interactive graphics applications with high performance, because multiple active Java programming language and runtime platform built-in support for multi-threaded applications concurrent threads.

  • Your application can adapt to changing environments, because you can dynamically download code modules from anywhere on the network.

  • Your end users can be confident that your application is secure, even if they are downloading the code from the Internet. Environment with built-in protection against viruses and tampering Java runtime.

You do not need these fancy features, they are here now. Java programming language platform provides a portable, interpreted, high-performance, simple, object-oriented programming language, and supports runtime environment. This section briefly describes the Java System main design goals , the rest of this paper, the characteristics of Java in more detail.

The last chapter of this paper describes the HotJava TM browser. HotJava Browser is an innovative global Web browser, is the first major applications written using the Java platform. It is the first dynamically downloaded from anywhere on the Internet and execute Java code fragment browser, and can do so in a safe manner.

Begin 1.1, Java programming language project

Java programming language in order to meet the challenges of application development in heterogeneous, network-wide distributed environment and design. The most important of these challenges is to secure delivery of applications, these applications consume minimal system resources, it can run on any hardware and software platform, and can be dynamically expanded.

Java programming language was originally part of a research project aimed at developing advanced software for a variety of network equipment and embedded systems. The goal is to develop a small, reliable, portable, distributed, real-time platform. When the project began, c ++ is the preferred language. But as time goes on, the difficulties encountered in c ++ can be gradually increased to best solve the problem by creating a new language platform. Design and architectural decisions from a variety of languages ​​such as Eiffel, SmallTalk, Objective C, and Cedar / Mesa, but also has been shown to this new platform is the development of language in a variety of environments from the network embedded devices, the Web and desktop in the world secure, distributed, ideal for end-user network-based applications.

1.2, Java programming language design goals of the project

Java programming language design requirements of the computing environment is a must deploy software-driven features.

The rapid development of the Internet and the World Wide Web allows us in a whole new way of looking at the development and distribution of software. To live in the world of e-commerce and distributed, Java technology must be able to develop secure, high-performance and highly robust applications on multiple platforms in heterogeneous, distributed networks.

Run on multiple platforms in heterogeneous networks, the traditional binary distribution, release, upgrade, patch and other programs fail. In order to survive in this jungle, Java programming language must be architecture neutral, portable, and dynamic adaptation.

Java language platform is designed to meet these needs arise, and very simple, so most developers can easily learn and easily be programmed; object-oriented, using modern software development methods to adapt to a distributed client - server applications; multi-threaded, concurrent to need to perform multiple activities (such as multimedia) application performance; interpretative for maximum portability and dynamic capabilities.

In summary, these requirements include quite a lot of buzzwords, so before you continue, let's take a look at some of the buzzwords and their respective benefits.

1.2.1, a simple, object-oriented and friendly

Simple, Object Oriented, and Familiar

The main features of the Java programming language include a simple language that at the same time to adapt to the current practice of software programmers do not need to go through a lot of training can be programmed. Quickly grasp the basic concepts of Java technology; programmers can just productive from the start.

Java programming language is designed from the outset to be object-oriented. After 30 years of breeding, object technology has finally entered the mainstream programming. Distributed, based on the client - needs and packaging system server, message passing paradigm based on software objects consistent. To increasingly complex, network-based work environments, programming systems must adopt object-oriented concepts. Java technology provides a clean and efficient development platform based on the object.

Java programming language programmer can access the test object existing libraries that provide the basic data types to the I / O functions and a network interface to a variety of graphical user interface toolkit. These libraries can be extended to provide new behavior.

Although c ++ is rejected as an implementation language, but as the Java programming language that looks like c ++, it will become a familiar language, c ++ while eliminating unnecessary complexity. Java programming language retains many of the object-oriented characteristics, as well as c ++ "look and feel", which means that programmers can easily migrate to the Java platform, and quickly improve productivity.

1.2.2, robust and safe

Robust and Secure

Java is a programming language for creating highly reliable software and design. It provides extensive compilation checking, and then the second stage run-time checks. Language features to help programmers develop reliable programming habits.

Memory management model is very simple: to create an object with a new operator. No explicit programmer-defined pointer data type, there is no pointer arithmetic, there is no automatic garbage collection. This simple memory management model eliminates all programming errors plagued by C and c ++ programmers. You can confidently develop Java code, I believe will soon find many errors, and before your product code release, the main problem is not lurking.
Java technology is designed to operate in a distributed environment, which means that security is essential. By the time security features designed into the system and run in the language, Java technology allows you to build applications that can not be external invasion. In a network environment, applications written in the Java programming language is safe, it will not be trying to invade into the background and create a virus or intrusion of unauthorized file system code.

1.2.3, architecture-neutral and portable

Architecture Neutral and Portable

Java technology is designed to be deployed to support applications in a heterogeneous network environment. In this environment, the application must be able to perform on a variety of hardware architectures. In a variety of hardware platforms, applications must execute on a variety of operating systems and interoperate with multiple programming language interfaces. To accommodate the diversity of operating environments, Java Compiler TM product generates bytecode - an architecture-independent intermediate format designed to effectively transmit the code to multiple hardware and software platforms. Explanatory Java technology solves the binary distribution problem and the version problem; the same programming language Java byte code can run on any platform.

Architecture neutrality only real part of the system portable. The portability of Java technology even further by the strict definition of the basic language. Java technology will be bet on the ground, and to specify the size and behavior of its arithmetic operators basic data types. Your program is the same on each platform - the data type incompatibility exists between hardware and software architecture.

Java technology has nothing to do with the architecture and portable language platform called Java Virtual Machine. It is an abstract machine specification, Java programming language compilers can generate code for it. Specific implementation of the Java Virtual Machine provides a specific virtual machine for specific hardware and software platform. Java Virtual Machine is mainly based on the POSIX interface specification - can be defined by industry standards transplant system interface. Implementation of the Java virtual machine on the new architecture is a relatively simple task, as long as the target platform to meet the basic needs (such as support for multi-threading).

1.2.4 High Performance

High Performance

Performance is always a consideration. Java platform need not be checked by use of a runtime environment can make the program interpreter running at full speed to achieve superior performance. Automatic garbage collection as a low-priority background thread runs when needed to ensure a high probability of available memory, which improves performance. It requires a lot of computing power applications can be designed: compute-intensive portions can be rewritten in native machine code as needed, and interact with the Java platform. In general, users believe that interactive applications even after the explanation, it can respond quickly.

1.2.5, interpreted, dynamic and multi-threading

Interpreted, Threaded, and Dynamic

Direct execution of Java bytecode Java interpreter on any machine in the system can be run and interpreted to have been transplanted. In the interpretation of platforms (such as Java technology-based systems), the link stage of the procedure is simple, incremental and lightweight. You can benefit from a faster development cycle - compared with the traditional heavyweight compile, link and test cycle, prototyping, experimentation and rapid development is normal.

Modern web-based applications, such as HotJava TM browser for the World Wide Web, usually need to do several things. Use HotJava browser, users can run multiple animations while downloading images and scroll the page. Multi-threading capabilities of Java technology provides a way to build applications with many concurrent threads of activity. Therefore, multithreading brings a high degree of interactivity for the end user.

Java platform by adding sophisticated synchronization primitives support multithreading at the language level: language library provides the Thread class, monitor and provide conditions for locking primitives runtime system. In addition, the library level, Advanced System Technology Java library is written into thread-safe: library functions can not be used in cases with multiple concurrent threads of execution under the conflict.

Although the Java compiler at compile-time static checking aspect is very strict, but the language and runtime system is dynamic in the link stage. Only when needed link class. The new code module can link needed to come from a variety of sources, and even links come from sources on the network. For HotJava browser and similar applications, interactive executable code can be loaded from any place, to support transparent application updates. The result is the development of online services; they can remain innovative and fresh to attract more customers, and to stimulate the growth of Internet commerce.

1.3, Java Platform - a new distributed computing method

Individually, the characteristics discussed above can be found in various software development platform. The new technology is the Java Runtime Environment and combine them to create a flexible and powerful programming system.

Using the Java programming language to develop applications across multiple machines can generate architectures, operating systems and graphical user interface software migration, security and high performance. The use of Java technology, you want to work as a software developer much easier - you will all focus on the ultimate goal of on-time delivery of innovative products, these goals based on the solid foundation of the Java platform. Now, a better way to develop software here, provided to you by the Java platform.


study hard, improve every day! Continue to the next chapter ...


Published 30 original articles · won praise 30 · views 5729

Guess you like

Origin blog.csdn.net/goldentec/article/details/104773365