Why are Microsoft’s software so huge

Author: Chai Jianyi
Link: https://www.zhihu.com/question/42108235/answer/730468509
Source: Zhihu
The copyright belongs to the author. For commercial reprints, please contact the author for authorization. For non commercial reprints, please indicate the source.

Office is a software that only Microsoft can produce in terms of size. If other companies want to do it, its size will definitely be much larger than Microsoft’s. Of course, it is impossible to produce it at all. The first version of Office was launched in 1990, almost 30 years ago. Generally speaking, 1: It is unlikely that there will be a software project that can survive for 30 years. 2: It is unlikely that there will be a software company that has been in operation for more than 30 years, usually not long after it has been in operation, and even if it has been in operation for less than 30 years. 3: Programmers are not in operation for 30 years, and ordinary companies are forced to lay off employees in 996. If you want to write code for 30 years, you may not be able to live for so long. So, for a product that has been in operation for 30 years, some code may have survived from the first day until now. Encountering the following problem a: The requirements are extremely complex, especially when it comes to text, layout, and other issues. There are dozens of commonly used scripts and hundreds of languages around the world, All kinds of publishing standards and computer text encoding standards must be followed, and there are piles of strange product cores or localization requirements. Microsoft has all produced them, and there is no other office suite that can match this. The compatibility burden is particularly heavy, and Office has gone through countless versions and localization branches. How many interfaces need to be maintained, how many plug-ins need to be considered to call the interface with various operations, and all his mother needs to be compatible. A module may need to prepare dozens of special cases for emergencies, and even private interfaces may be used by plug-in developers, so you can’t change them. If the user’s software crashes after the upgrade, the first thing to blame is Microsoft, which wants to find plug-in developers to improve. First, users are unwilling to buy new plug-ins, and second, plug-in companies are bound by the above 123 rules, and may not be able to make new versions. c: No one can change ancient code, and many problems in Office can’t be solved by programming needs to be really familiar with many languages and technical specifications of publishing and typesetting in different countries, Only those at the level of great gods who have a profound understanding of the past and present may understand the problem. This is just the first step. After understanding the problem, you need to understand the code from ancient times. As we all know, code from ancient gods cannot be understood by humans. In the environment back then, programmers were all at the level of gods, so there may not be too many comments because by default, colleagues’ intelligence could be understood. Over the decades, the original person may have resigned or even died, and no one can understand it. Even if the person is still there, if you ask them, they may not necessarily understand. Can you see the code you wrote last year at a glance? I dare not make any changes even if I understand. Layer by layer, who knows what depends on this thing? No one has ever been able to fix this kind of ancient shit mountain, and who owns it if it’s broken? Of course, it’s not that the code quality is poor, but rather that many popular framework environments, development paradigms, and so on did not exist in the past. They were all supported by the human flesh of ancient gods. You need to first learn CS history and then slowly nibble on ancient code like learning classical Chinese and Latin. After the modification, you may not even know how to compile it. No one knew how to use the tools back then, and the entire team might have been opened. The tools couldn’t be found, so where to compile them?

Leave a Reply

Your email address will not be published. Required fields are marked *