In the final analysis, the history of the computer can be summarized as "abstract" two words. The theory of applying storage programs, people from the earliest modern computer abstract software (Software) and hardware (hardware). In order to make the software, the software is abstracted into the operating system dedicated to the hardware, the application software (Application) on the operating system. Data processing is also the premise of many application software, thereby abstracting the database system. In the network era, in order to better adapt to the development of network software, the application server (Application Server) provides various services in the application software.
The development of programming languages is also true. Let us look at the development brief history of programming language in this cafe, from the first-oriented object-oriented programming technology in Java.
First, past life
On February 15, 1946, with the first modern electronic computer Eniac roared to this world, writing procedures also became a new profession outside of the three hundred and sixty lines. The engineers we call the program are programmers or developers.
ENIAC is a huge material that weighs 30 tons, consists of more than 1,000 transistors, and more than 1,500 relays. In order to give it a directive, the programmer must program through a different cable combination. To prepare a new program, you must also unplug the connection. It is quite boring for binary programming throughout the day, and it is directly read and written directly to the program address, and naturally errors frequently. Reading programs expressed by links is more unbearable to suit the price of Temple, maintain and retrofit procedures. More decent, early computer manufacturing prices are quite expensive, and before the program is completed, the computer has to be idling, causing software development costs far more than hardware investment.
In order to solve the problem of software development, computer scientists invented assembly language, reducing the development pressure of binary coding through some museums. This is indeed effective way, until now, programmers often use embedded assembly in development to improve software running speed, and the game engine is even more. However, assembly language is too dependent on the quality of the programmer and cannot adapt to large-scale development.
Due stories of yellow sugar grace murray hopper, bug and debug
Due to a legendary investment, Mark i computer puts IBM from the production tab, meat, coffee mill and other industries, and leads the field of computer manufacturing, and ultimately becoming a blue giant. The female mathematician grace hopper is one of the three programmers of Mark I and also participated in the development of Mark II. One day, she has failed when debugging the procedure. After repeated inspection, Hopper found that her program's logic did not have an error, and must not be opened one by one by one. No, it is the original moth (MOT) is labeled in the middle of the contact, causing a crash. Hopper puts the moth in the management diary and writes: The first discovery bug. Since then, the romantic programmers are collectively referred to as bugs, which will gradually become a javelle in the computer. The debugging program is deactivated, it is called Debug, you can find this running mode in Eclipse.
Talking about Ms. Hopper, it is really a person who is not. In 1952, Hopper thinks that the machine code programming is comparable to the original, why can't you use a natural language to write a program, then use a tool to convert it into a machine code? Soon, she developed the world's first compiler A-0, which is the prototype of modern compilation technology. In 1956, she developed B-0 on the commercial electronic computer UNIVAC I, II of the first storage program, which was called Flow-Matic, which caused the birth of the computer commercial language COBOL (Common Business Oriented Language). Although Hopper has the reputation of "Mother" of Computer, he has a walk in the office, and a pirate flag showing a shady. ■ In the 1960s, Formula Transla Translating, Cobol, Lisp, Algol 60 has appeared in modern advanced languages. Programmers can use the programming language of the natural language and then convert to the machine executable code through the compiler. Due to the precise form language, the program language itself is defined, and through the abstraction of the hardware, the program is not related to the computer platform, the high-level language productivity is greatly improved, and the maintenance cost is naturally lowered, and the computer software industry is finally thriving.
Good view is not long. With the large-scale application of software, the development methods and management methods of the program gradually cannot keep up with the size of the software scale, resulting in the emergence of the software crisis. Take the IBM 360 system in 1963-1966, the system has 1 million lines of code, IBM uses 5,000 people every year to maintain the system, however, each version is found from the previous version 1000 or more errors The revised results seem to change the error, the more, there is no sign of improvement. Some people describe the IBM 360 system as a fleeted beast to the mutual struggle, the more struggling, the deeper the trap, and finally can't escape the disaster.
People have to stop the footsteps, where is it. Recalling yourself, everyone is doing things, all are listed, then refined and completed one by one. For example, making bicycles, definitely putting bicycles according to the function, first arranging the frame, then two wheels, then the pedal and other transmission, and finally the seat cushion, car bell and other parts. The wheels are confirmed to produce a steel ring, steel wire, tires, and the tires are divided into internal and outer tires. If the software development is able to follow this kind of big to small, gradually accurate ideas, is it able to solve this software crisis?
That's right, this structured abstract analysis method has led to the birth of structured programming methods.
Dragonfly Story Niklaus Wirth and Pascal
Everyone who has learned a little computer knowledge is probably known to "data structure algorithm two procedures". Niklaus Wirth of Swiss Computer Scientist in this formula has invented a variety of far-reaching programming languages, and proposing structured procedures for designing this revolutionary concept.
WIRTH-developed Pascal has a lot of creation in data structures and process control structures, such as Java characters, reference, and if-dam, WHILE, FOR, etc., are borrowed from Pascal. Come. It can be said that most of the data structure and control structures commonly used in modern programming languages are laying the foundation by the Pascal language, so PasCal has an important milestone in the history of programming languages. ■
In 1971, WIRTH was based on its development program design language and programming practical experience, and the concept of "structured programming" was first proposed. The main point of this concept is that it is not required to prepare a executable program, but in turn, gradually refine. The first step-by-step program is the highest, the second step-by-step program abstraction has decreased ... The last step is the program that is executable. Programming this method, seems complicated, in fact, which makes the program easy to read, easy to write, easy to debug, easy to maintain, easy to ensure its correctness and verify its correctness. Structured program design methods are also known as "self-top" or "step-by-step refinement" method, which triggered a revolution in the field of programming, and became a standard method for program development, especially in software projects developed. Get a wide range of applications. Some people evaluate the structure of Worth's structured programming "" completely changed people's way of thinking about programming, "which is not exaggerated. Borland Legend of PHILIPPE KAHN
WIRTH development Pascal is to have a language suitable for teaching. But once, due to its simplicity, it provides a wealth of data structure and control structure, making the program development and great popularity. Before the C language came, Pascal is a world-wide, most popular language, but not only the world records of the issuance of the number of copies, but also become the "unique official designation" language of university data structure teaching.
Phillipe Kahn is a student of Niklaus Wirth. After graduation, Dr. Borland, California, was founded in California, with a fist product Turbo Pascal, and sold more than 1 million copies at the time, becoming a millionaire. Borland is a programmer, Jinjin, to proceed, from the earliest Turbo Pascal, Turbo C, Turbo Prolog, etc. Turog series, to today's Delphi, C Builder, JBuilder, C # Builder series, none Development tools, there is a lofty position in the minds of the developers. ■
Second, this life
Although the structured programming makes the programmer's world outlook experience a large change, it has effectively solved many of the problems in software development. However, structural programming does not completely solve the software crisis, people are still eager to have higher production efficiency, more reliable , Easy to maintain, easy to manage development ideas and development methods.
In fact, people know the world, there are some basic rules:
Distinguish things and their properties such as bicycles and rides. Distinguish the overall object and its components, such as distinguishing bicycles and wheels. The formation and distinction between different object classes, such as the difference between the mountain bikes and the two-person casual car, all of which belong to the type of bicycle.
Psychology research shows that the objective world consists of many objects, the object has its properties and behaviors, and there is a variety of links, which can better portray the problem domain, and closer to human natural thinking. This is the origin of object-oriented development ideas.
The concept of objects appeared in the early post of artificial intelligence in the 1950s, while the actual development of OO began in the Simula language developed by Kisten Nygaard and OLE-Johan DAHL in 1966. As the name is shown, Simula can simulate the objective world. For example, in the famous banks, you can create a number of people-owned objects, several customer objects, and some money objects and transaction objects (ie, the deposit, withdrawal, etc. "- this world It is made of objects. All invalid objects, except for their respective states, all of which belong to this abstract category. The inviginant object and customer object interacts through message delivery, and eventually generates several trading objects, and the transaction object can operate the money object, complete deposits or withdrawal action. You see, is this bank counter world, is it fully analoged by an object? Thus, the object-oriented design procedure is mainly to design an abstract class.
Object-oriented programming ideas is a milestone. Alan Kay designed the world's first language SMALLTALK and became the Trial Prize winner, Bjarne Stroustrup wisely combined with object-oriented and most popular C-language C languages, Anders Hejlsberg Develop PASCAL's ideological Object Pascal combined with the best fast program development (RAD) tool Delphi, James Gosling combined with the Internet background, Bill Gates puts this cafe. The .NET architecture is fully constructed on object-oriented ...
Breakfast story "object-oriented" and "object directions"
Read the word "object orientation" when reading a technical writer of Taiwan. In fact, this is a computer scientist in Hong Kong, Macao and Taiwan's translation of "Object Oriented", which is a matter of "object-oriented". However, if you carefully review the taste of the two, it seems that "the object is guided" this translation is more elegant, and the original taste.
Although object-oriented is only introduced to object-oriented service, inherits, inheritance, etc., it must be seen that OO is not a special provision or industry norm, but an excellent concept, learn Java, should put OO as guiding ideas.