Опубликован: 27.11.2013 | Уровень: для всех | Доступ: свободно
Лекция 17:

Internet

< Лекция 16 || Лекция 17: 12 || Лекция 18 >

2. Read the text

A LINGUA FRANCA FOR THE INTERNET

The plethora of modern programming languages has a common evolutionary background. With each new generation, programming languages have tended to become more abstract and remote from the computer that they communicate with. First-generation languages talked to the computer in the ones and zeros of "machine code", which was interpreted directly by its central processor as instructions for manipulating data stored in its memory. The second-generation, or "assembly", languages were devised to make the task of writing and reading such instructions easier, by using a code composed of letters and numbers, which was subsequently translated into the is and os that the machine could comprehend.

Third-generation languages, such as c, Pascal and FORTRAN, consist of English words such as READ, WRITE, and GOTO as well as mathematical symbols. Unlike first- and second-generation languages, the syntax (i.e., the rules for combining symbols and words) of third-generation languages is in principle independent of the computer they run on. A separate program called a compiler is used to translate the code into machine language.

A further abstraction is achieved in fourth-generation languages such as SQL (Structured Query Language), a programming language for querying1To query – запрашивать информацию databases, or Mathematica and MathCad, languages for performing advanced mathematical manipulations and solving scientific problems. These languages also offer the programmer a far more natural form of expression, but at the expense of considerably narrowing the range of problems that the language can tackle.

When it came to developing a fifth generation of computer languages, this orderly evolution fizzled out2Fizzle out – сходить на нет, прекратиться. The Japanese government's Fifth-Generation Computer project — aimed at marrying artificial intelligence techniques with programming — was abandoned in 1992, with little to show for ten years of research and billions of yen. The Japanese policymakers did not foresee the rise of the Internet and the need for an entirely different approach.

What the Internet has done, in effect, is to place the priority on the programmer, rather than the language. The elegance of computer languages — so dear to academic software gurus — has been sacrificed for ease of use. That is what matters to people who are building web applications on a tight schedule. Hence the rise over the past decade of the quick-and-dirty3Quick and dirty – сляпанный наспех scripting4Scripting language – язык подготовки сценариев languages — the "sticky tape" of the World Wide Web.

While scripting and object-oriented programming5Object-oriented programming – объектно-ориентированное программирование represent significant new trends, the biggest shift in the past decade has been in the definition of what a programming language actually is. The success of Java and the high hopes that Microsoft is pinning on6To pin on smth – возлагать надежду на что-либо C# have little to do with the languages themselves (both are really just variations of C++, an object-oriented version of C). What matters most for the success of these languages is that they are embedded in an Internet-friendly software environment.

As the battle between C# and Java rages in the student dormitories, the struggle will continue on a rather more conceptual level on the web. Conceptually, the two languages represent wholly different bets on the future of the Internet. The Internet is about data transfer and not data processing. Where Java's philosophy is based on moving applets around the Internet — which, for many, is disturbingly similar to creating computer viruses — C# focuses much more on moving information.

Perhaps the closest thing today to a language that expresses the architecture of a program is UML (unified modelling language). Originally, UML was conceived as a way of standardizing existing tools used to design computer programs. It is a "big picture" modelling language, and it has been embraced by many computer programmers, even though it is not restricted to programming.

On the horizon, programming languages face the daunting challenge of helping to turn the Internet into a more intelligent place. Computers should be able to recognize the meaning of information on the web by its context, and provide users with much more relevant information than web browsers now do.

Although such programs can no doubt be constructed in Java or C#, these languages were not designed for such purposes. Herein lies an opportunity for languages designed with artificial intelligence specifically in mind. Such languages have existed for decades. The so-called functional language Lisp computes with symbolic expressions rather than numbers; the logical language Prolog works by making logical statements about objects.

Lisp and Prolog still have a loyal following in research circles, but their impact elsewhere has been modest. Languages such as Java have proved to be the fittest, in a Darwinian sense, because the Internet dictated that the big programming challenge was not one of artificial intelligence, but one of data manipulation, visualization and communication between programs. As in Darwin's theory, the definition of what is fittest depends on the environment, which is constantly changing. Even though Lisp and Prolog may not be the shape of things to come, a programming language that incorporates concepts from artificial intelligence will no doubt appear when the time is ripe — and leave the likes of Java and C# by the wayside.

As the clash between C# and Java shows, there is a huge amount at stake in setting the trend for programming languages. Expect a whole alphabet soup of new languages within the next decade.

Economist 9/22/2001

< Лекция 16 || Лекция 17: 12 || Лекция 18 >
Дана Курмаш
Дана Курмаш

Записалась на курс Английский - 3. Не увидела стоимость

Елена Блинаева
Елена Блинаева

sad