My memories and some unhappy stories

zhaozj2021-02-11  203

Many friends say that they are very interested in the history of programming language development, but unfortunately, this is less in this area. I also like to watch this, the two works of Li Wei "My memories and some interesting stories" and "C Jihad" are two very good articles I have seen. I would like to record the development of the three major programming languages ​​of Basic, Pascal and C, record some of the things I have experienced and I have experienced, and try to avoid the article and Li Wei's article. The situation occurs on the content. I don't have a lot of information, and I lack enough experience, but I can talk about it for a speech. Because it is written down by memory, it does not guarantee that all content is very accurate. If you have any fallacy, you are very welcome.

Once one day, Basic is the most beautiful programming language on the DOS operating system. At that time, various Basic compilers can also be said to be a hundred flowers, including IBM Basica, Microsoft Gw-Basic, and later QuickBasic, True Basic, Even Borland also launched Turbo Basic, it is not lively. Although we often say that Basic has such a defect, it is very powerful system development language at that time, such as the Interrupt statement to call the DOS / BIOS interrupt (interrupt call in the DOS program is like Windows. The API function is the same as the assembly module, so even if it is the development of the underlying system problem. Microsoft also comes with a QBASIC in the MS-DOS operating system, which can be seen as a simplified version of Microsoft QuickBasic. The purpose is to make it easy for users to complete some simple tasks, which can also be roughly seen. The status of the Basic language in DOS development.

The Basic compilers of each manufacturer create a prosperous scene of the Basic language, but it also brought some problems. The biggest problem is that the Basic language lacks a unified specification. The software engineering ideology at that time was still in an extremely primitive era, and various manufacturers always tried to join a variety of extensions to their Basic products in order to improve their products. These extensions did not have any standards, inevitable It has caused very confusing situations, which also lead to a number of people such as transplantation. These problems have been more intensified, so that the inventor G of the Basic language. Kemeny and T. KURTY also felt that they were unable to sit still, and finally one day they jointly published a fierce open letter, criticizing their so-called "street Basic", thinking that these "street Basic" is the purity of the Basic language. And is guided on the Basic programmer to the bad road. In the object that is slammed, the first rush is IBM Basica and Microsoft GW-Basic. The two masters are advocated by True Basic, they think that True Basic is a representative of a well-structured, beautiful Basic language. This letter has caused great repercussions after the publication, which also prompted many programmers to re-examine and reflect on the Basic language. Unfortunately, Basic did not develop as much as they envisaged by the two masters. Many Basic compilers in the fierce market competition included once-optically optimistic True Basic, and then later, Borland launched Turbo Pascal and Turbo C successfully occupied most of the development tool market, Basic language gradually returned to the second line, which announced the end of the Basic Golden Times.

Now Visual Basic is basically the only spokesperson on the Windows platform, interesting is that Visual Basic has a great controversy since the birth, and the radical language purification themes believes that Visual Basic is a freak, and practicalists It doesn't matter if it doesn't matter; and Visual Basic's efficiency problem has always been the focus of people's disease. In fact, Visual Basic has greatly improved its efficiency since the 5.0 version, and no later, Wu Xia Amon. However, there is still a wide circulation of Visual Basic "inefficiencies", and has always been the main crime of opponents attacking Visual Basic, this is a quite interesting phenomenon. The problem with Visual Basic "simple" is more. When Microsoft has launched Visual Basic, in order to emphasize its simple and easy to use, many details are hidden, and for programmers who have touched the crawling in SDK all day, Visual Basic's appearance is bright, so many People cheers: It can be so simple to programming. At this time, Visual Basic has become a bitter sea light of the Windows programmer. However, with the continuous development of Windows, new technologies and new features have emerged, and Visual Basic faces these new problems, "VB is just a toy language", "VB is just a toy language", I have seen it at this time. Microsoft has to continuously add new keywords to Visual Basic to extend its features, but this kind of practice is a little suspicion, which has also caused a criticism of many language experts. Visual Basic has also become very complicated, which can be said to have violated the original intention of Microsoft's original design Visual Basic.

I am a very skeptive attitude towards "XX language simple and easy to learn". The real problem is the complex, so any programming that is committed to solving the real problem is not very simple. The so-called "simple class" is either a propaganda slogan, or the function of this language itself is limited. (If there is a simple language of a particular field, it is not possible. For example, the scripting language of JavaScript is simpler than a general programming language. However, if it will be related The network programming element is taking into account, even if the scripting language is not so simple.)

It is not possible that the history of the development tool on the DOS platform cannot be mentioned. It is this company launched Turbo Pascal and Turbo C. Two Shenbi tools have successfully laid C and Pascal's two major programming languages ​​can't be on the DOS / Windows platform. The foundation of the shake also created a period of borland's history. Turbo Pascal and Turbo C are also the most used compiler in the world, so that they have almost nominal of Pascal and C during a long period of time. The concept of integrated development environment (Ide) introduced in Turbo Pascal and Turbo C has still benefited us to benefit. Early Borland is a master of masters, where a large number of technical elites, including any compiler manufacturers, including Microsoft, have no technical strength like Borland, so the name of Borland is the guarantee of quality. However, experienced the twists and turns of the future, many of the best talents gradually lost from Borland, and some of them came to companies such as Numega's technical companies to continue to seek development, and some were met by Microsoft, but unfortunately In addition to a few top people such as Anders Hejlsberg, most people in them gradually annihilated, thinking about sighing.

During this period, another name worth mentioning is Watcom C . If you want to say that Watcom C has to say it first. We know that the basic address positioning of the Intel X86 series is the expression method of segment: offset, but this method is actually a lot of drawbacks, the most typical is the "64K" restriction of the inexperienced "64K", that is, any code segment , The size of the data segment or the stack segment must not exceed 64K; any dynamically allocated memory size must not exceed 64K. If you want to call data or code across, you will lead a series of difficulties. At the same time, this memory addressing method also limits the total amount of memory size that cannot be accessible cannot exceed 1m, and in actually in the DOS operating system, the low-end 1M memory space (384K) should be reserved for the device driver and ROM BIOS Therefore, it is not enough memory for the truly left to the program. It is necessary to write a program in such a limited space. In order to allow the programmer to access more than 1M memory, the number of manufacturers (including IBM, Microsoft, Lotus, etc.) formulate an expansion memory management specification. The principle of this specification is to divide more than 1m memory. Page, you can change to the specified page when you need it, and change it when you don't need it. (Is it true that the concept of virtual memory under Windows?) However, this specification is really too primitive, the reason is that the operation steps of the exchange are too cumbersome, in addition, the programmer will manage all the page allocation and replacement. .. Hey, how to say it ... It's just not a human life. Correspondingly, the memory address below DOS is also invisible. For example, there is a nEAR / FAR / HUGE mode in the pointer, and the memory mode of the program is also divided into tiny / small / medium / large / huge / compact, etc. Waiting for many levels, if you don't pay attention to these places, the DOS programmer is likely to face a nightmare. (I used to have a time, expanded, extended memory, upper memory, high memory, uma, hma, EMS, XMS these seem similar, in fact, the nouns of the big phase, faintly turned to not distinguish things.) At the time Whether it is Borland or Microsoft to provide a good solution for this issue, and Watcom C has no doubt that the DOS programmer who has been tortured and painful will finally see the first line of dawn. Watcom C method is to let the program run under so-called "protection mode" (in fact, the Windows operating system is also done), no problem, no matter how much memory is in this mode, and the method is also very simple. An old programmer has successfully assigned a full 1M memory in the first time, which describes his mood at this moment: "I am touched to cry!" This sentence is deeply printed in my mind, also Let me Len to another famous programmer: The programmer's life is repeated between painful hell and happiness peaks, only in this life can experience the true meaning of life. Leisure Tan Shadow Day is long, and the thing is changing a few autumn. Do we still experience this mood today?

It is because of this attractive function, so even in the C development tool market after the Borland tiger is in front of the Microsoft, Watcom C still has achieved brilliant success. Especially for the game under the development of DOS, Watcom C is almost no two options during a considerable period of time. Unfortunately, Watcom lacks a leader with vision. It has not been able to consolidate and carry forward the advantages of Watcom C . After Windows has gradually lost the brilliance of the past, in the fierce market competition, it is always Watcom faithful. Fans' programmers empty, the soul is broken. Let us focus on the more than two giants of Borland and Microsoft. Microsoft initially used and Turbo C is a product called Quickc, interesting is that this product is really very very very quick, but the resulting code is too large, and the effectiveness is not satisfactory. Microsoft later gave up Quickc to start Microsoft C / C development, but Quickc has a quite good editor by Microsoft, this editor is later Microsoft's development environment (including initial PWB - Programmer's Workbench and The basis of later developer studio. In this period, Microsoft C compiler technology is still behind Turbo C's level, but it has lost his east, and Microsoft QuickBasic has defeated some opponents at this time and won considerable market share. As the development tool market, Borland is naturally impossible to see, soon, Borland has launched its own Turbo Basic to compete with QuickBasic. Turbo Basic has a working environment that is very similar to Turbo Pascal and Turbo C, and it is quite good to compile and execute, plus Borland's brand is behind, so Turbo Basic has come quickly after the birth of a lot of customers. At this time, Microsoft announced the development plan of Microsoft Pascal at this time. At that time, many people didn't have an optimistic attitude towards Microsoft's plans, because Borland is starting with PASCAL, Microsoft wants to compete in their own soft ribs and hope It's too embarrassing. After a period of time, the immature Microsoft Pascal suddenly suddenly dead, and Borland also stopped further development and promotion shortly after Turbo Basic 1.0 version. So the industry is promoted by Microsoft and Borland privately signed a protocol, which does not enter each other's market, whether this message is unknown.

After the operating system enters the Windows era, Borland and Microsoft urgently need a new generation of development environments. Microsoft launched Microsoft C / C 7.0 in this time, because as a Windows manufacturer, Microsoft's own development tool is still a DOS-based environment, which means that it can run under Windows, but will not be available Many excellent features of the Windows system, including easy-to-operate graphical interfaces and access to extended memory, and so on. Borland C 3.0 launched in Borland is already a real Windows graphical interface development environment. However, for Microsoft, this period is really worthy of memorable events is the advent of Visual Basic for Windows. The Form-based Programming Modal in Visual Basic is indeed very revolutionary features at the time. The programmer struggled in the complicated SDK released from this, so Visual Basic quickly achieved a gratifying market. I think, Microsoft has been a lot of Visual Basic for many years. It is not just because Microsoft is in Basic. It is probably a more important reason is that Visual Basic represents the glory and dream of MS, because in the development tool market for many years. After the second, the success of Visual Basic first made MS from Borland's hands and marked Microsoft to start the angle of counterattack in this market.

So what is Borland? On the one hand, Borland stepped up the Borland C from 3.0 to version 3.1, which greatly improved the compiler function and joined the proud of Borland; on the other hand, Borland did not forget that his old line PASCAL, next step nature is Turbo The Pascal compiler is transplanted above the Windows platform. However, the work that ports PASCAL on the Windows platform faces a big problem, which is the Windows Development Authority of Windows, which is published by Microsoft, Windows SDK, including various header files, library files, information, documents, and sample programs, etc.. Are it based on C language, is Borland that is capable of fully transforming them into a PASCAL language? Although no one doubts Borland's strength, this work seems quite arduous, so many industry insiders don't believe that Borland can launch this product on time, and some people assert Borland This plan will definitely fail. These people even include the famous Windows programming master Charles Petzold.

But the later facts show that they are all wrong. Borland not only released Turbo Pascal for Windows on time, but the product has once again caused a huge sensation. I still remember the installation interface of Turbo Pascal for Windows: The picture center is a sedan to fly on the highway, and a few big characters on the road sign: "Speed ​​Limit: ∞". Borland's purpose is to emphasize the speed of rapidity brought by TPW, and the speed of TPW is indeed a profound impression, which is much better than any other compiler, including your own brothers Borland C . More amazing is that the code generated by the TPW is optimal in size or performing efficiency. One of the most basic "Hello, Windows" program written in TPW 1.5 actually reaches incredible 1.75K after maximum optimization! And this program does not require any other DLL support in addition to Windows three basic modules (KERNEL, USER, GDI), such a small size is not available for any C / C compiler. (Program with the same function generated by Borland C 3.1, the minimum size is 6.5k. The main reason for the C / C program is that the program must connect C Startup Code, which is due to the complexity of the C / C language, these codes The size is considerable.) The actual evaluation shows that the program generated by the TPW is slightly better than the Borland C generated in the execution efficiency. The success of the TPW not only has a strong acknowledgment for those who doubt Borland, but also indicate that the potential of the Pascal language is unhaffably. I still remember that when Delphi 1.0 has just launched, the most popular problem on various Delphi forums is "how to generate a less than 4K application with Delphi." The answer is of course to leave the VCL, purely using the API to write. However, the size of the executable does not exceed 4K, except for the compilation, only TPW and its successor Delphi can do it.

The development of TPW has only experienced two versions, because Borland has increasingly feeling the threat of Visual Basic: Borland also requires a real RAD environment comers with VB, and TPW is basically similar to the Borland C text editing environment, Not a real RAD tool. As for Borland, why is PASCAL instead of C as the basic language of the RAD environment, it is natural because Borland's deep homes on the Pascal language, on the other hand, I am afraid it is considered for efficiency. Don't forget that at the time of 386/486 or quite popular models, Pentium was at that time or a few luxury goods, in such a machine, the efficiency of Visual Basic is really darently. As a VB Killer's Delphi, a major goal is to exceed it in efficiency, so that the PASCAL compiler that is fast, it is certainly just right. Borland's skill is indeed, although Delphi's launch is slow by VB, but Delphi 1.0 will be fully transcend Visual Basic 3.0 in various indicators, where Borland is particularly emphasized, "Delphi 1.0 program speed is more Visual Basic 3.0 faster 40-50 times ". Whether the gap is really a disrupt, but Delphi 1.0 is more efficient than VB 3.0, but it is an indisputable fact. Plus the other aspects of delphi is very excellent, such as the components provided by Delphi 1.0 are much stronger than VB 3.0, and the support of Delphi 1.0 on the database is better than VB 3.0. So Delphi 1.0 is available, not only Turbo Pascal's old users are embarrassed, but many of the original Visual Basic users have gradually transferred to Delphi. When I said this history, I often feel sorry for Borland, because there is a very vast engineer in Borland, and they have already proposed a RAD development environment in Borland C 3.0, and now I have proposed a RAD development environment. It is very versatile to come to this idea. Unfortunately, Borland's president Kahn is too intoxicated in the Turbo series and Borland C 's huge success. The suggestions under the opponent have not attracted full attention, but put their minds in Borland is not good at it. Others in some areas. Later, everyone should know that Borland causes a series of decision-making mistakes, which have fallen in the fields of C development tools, databases and spreadsheets, and they have fallen into the company's establishment. The minimum valley. If Kahn can earn a reasonable opinion in a timely, it will take advantage of the reasonable opinion, and then launch Delphi (of course, it is still the name of Delphi), then the Delphi is still far more than the current situation. However, in the most difficult period of Borland, it is because of the support of Delphi's medium-sized column, Borland can pass the years of the unbearable, not in the whole army. So Delphi is like Borland, as Visual Basic's Microsoft, is not just a product, but has become a symbol of revival and brilliant monument, from a sense, the hope of the entire company is also soul.

In Borland's largest dark days, it is afraid that Borland losses is not the loss of the market, but many outstanding talents have traveled. After experiencing the company's performance, the market atrophy, after the blow, it is not difficult to imagine how they will be a kind of mood. What is the most painful may still have a crack that is difficult to make up in the company. Borland president Kahn is a rare leader talent that is unattractive, and very arsenic. It is a myth that he leaders Borland created the development tool market, as well as the golden age of Borland for more than 10 years. However, Borland has also made Kahn to gradually become self-used. At that time, Borland had appeared in the high-speed development process, and some keen employees in the company also noticed these issues and suggested that Kahn resolved as soon as possible, and this time Kahn has already It is difficult to listen to any different opinions. Because his opinions are not valued, some of the very good technical talents in Borland leave Borland during the Dingsheng of Borland, which indirectly causes the Legend of Borland C 4.x to decline. In the end, in the huge mist of wind and rain, many top people left the borland that had hopped their dreams with a complicated mood of love and hate. Hey, unfortunately these technical elites, unfortunately borland! After these outstanding talents left Borland, some of whom continued to work in development tools in Borland's profound technology, such as Numega's companies, have more or less relationships with Borland; and Microsoft At this time, I don't miss the time. I don't hesitate to dig the corner tactics. One of the Turbo Pascal and Delphi we are familiar with, and the Anders Hejlsberg, one of the founders of Borland, has finally been going to Microsoft. This result is undoubtedly a dream for Microsoft. Because MS in the compiler technology in the compiler, there is a large number of outstanding engineers and the technology they bring, plus the same period. Microsoft has many senior experts from UNIX platform, and Microsoft is finally able to have a quality leap in the compiler technology and board the development tool boss. Although Microsoft's unscrupulous offensive stubbed the industry's universal disllegation including many allies, Microsoft would not receive their own purpose, so we will see Visual Studio Series Visual C 5.0 and Visual Basic 5.0 The compiler is really a new one, the Visual C compiler can be able to exceed Borland C in a higher C compiler, even in many code optimizations; and Visual Basic By compiling the code into Native Code, it has also finally washed a shame of "Visual Basic code efficiency low".

转载请注明原文地址:https://www.9cbs.com/read-3836.html

New Post(0)