The driving force of the development of software technology

Source: Internet
Author: User

The ultimate goal of software products is to meet the needs of users. It is also in order to continuously meet the needs of people to make the software industry continue to develop. For example, the new algorithm (MPEG-1, MPEG-2, MPEG-4, H.264 、...... ) were invented at the time to meet different needs. However, the needs of people (the external dynamics of Industry development) is not the only driver of software technology development, because it can not explain why the industry's programming language, software platform and framework are endless, and some even give people "reinvent the wheel" feeling. How to judge the "new wheel" is really necessary? This is related to the other three major drivers that this article would like to focus on, and the reason for focusing on them is that they are more closely related to our daily work.

I think that the other three major drivers of software technology development are simplification, reuse and beautification (the internal dynamics of industry development). The key to whether the "new wheel" is necessary is to see whether it is better than the "old wheel" in the three dimensions of simplification, reuse and beautification. Note that these three drivers are viewed from the programmer's perspective, not from the end-user perspective of the SOFTWARE PRODUCT. Because end users only care about the function and use of the product experience, but not the product development process, but also do not care whether the product is "old wheel" or "new wheels" built.

Simplification is a central and effective tool for coping with increasingly complex and large-scale software, because "complex problems are always solved in simple ways" (quoted by Master Adams). The key to simplification is not to "shoot the head" to where it is, but to use our insights to find the key path to solve the problem, to simplify. However, the acquisition of insight in addition to the need for long-term accumulation in a technical direction, but also the need for us to constantly adhere to the problems faced by the focus of thinking, Insight has become the industry's scarce resources, but also decided to really simplify software design and implementation of the few people.

Simplified in the industry there are various forms of expression, in addition to methodologies (for example, domain-driven development, object-oriented programming, design pattern decoupling), there are different forms and levels of abstraction (e.g., C programming language in assembly language, C + + programming language in C programming language, various software platforms and frameworks). Interestingly, these representations have brought greater complexity on the simplified path (complexity is conserved?). )。

The benefits of reuse are well known, which allows us to achieve higher development efficiency and higher quality products by avoiding "reinventing (the same) wheels". Reuse this driving force makes the industry various open source software platform and framework, also makes the software enterprise long-term commitment to build its own products general-purpose software platform and framework. For the complex software, the competition of the product is actually the competition between the software platform and the framework.

Reuse is not only a form of software platform and framework, but also a variety of programming languages, such as "grammatical sugar."

Simplicity is a kind of beauty, but beauty is not only simple, but also the internal structure of software and the manifestation of code, beautification has become another driving force for the development of software technology. I think that the beauty of software is: 1 to adapt to the future changes in software functions caused by code changes to maintain a certain degree of flexibility. This kind of adaptability is a requirement for the rationality of the inherent structure of software. 2 The code can be a smooth communication between the programmer and the carrier and bridge. This is a requirement for the presentation of the code, and it is also indirectly pointed out that the purpose of programming is not simply to provide APIs or implement software functionality. Landscaping work is not in place is a lot of software development team deep in the quality of the dilemma of the important reasons.

In reality, the progress of software technology is actually a comprehensive result of simplifying, reusing and beautifying three driving forces, because the three are not completely orthogonal. For example, the result of simplification may also be beautified, the result of beautification may also bring simplification, reuse has brought us simplification. In any case, one of them is usually the dominant motivation for technological development.

Understanding the three driving forces helps us to look at the development of software technology more rationally, and the author also wants to imply that we should start from simplification, reuse and beautification in the software development work, but we can't stay in the "original requirement" that the software can be used on the line. Otherwise, our behavior is not in line with the development of software technology "trend" Oh!

This article is from the "Liyun" blog, please be sure to keep this source http://yunli.blog.51cto.com/831344/1077317

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.