Philosophy in software development-the original source of the world is material (1)

Source: Internet
Author: User

The first philosophical principle involved in this series of blogs is that the origin of the world is material.

In the IT field, there are hardware and software, and the relationship between the two is similar to that between material and spirit. Without the existence of hardware, the software will not have the basic support that can play a role. Therefore, we can see that the role of hardware is very important. Even if we are only engaged in software development, we also need to have a sufficient understanding of hardware, this is why students majoring in computer software also need to learn computer principles, computer networks, and other courses.

Different hardware sometimes decides to run software on it to a large extent. For example, on computer hardware of different architectures, the software that can run is limited. For example, computers can be divided into micro-computers, small computers, large computers, and so on. The software running above, from the operating system to various application software, will be very different, this is also because the work to be done by each computer is also different. For example, the X86 architecture and the computer of the RISC architecture run in different ways. Many large software, such as Linux and Oracle, need to develop different software for different architectures.

In the process of solving the problem, although we are a developer, we only deal with the software most of the time, but for specific problems, we also need to pay attention to the hardware. For example, performance problems, according to Moore's Law, the hardware update speed is very fast, so in many cases, we all hope to solve the problem from the hardware point of view, the software running speed is not fast enough, in this case, we can change the CPU, or even the quad-core or eight-core, to improve the speed of parallel computing, or add more memory for moreProgramRun in the memory, or change the disk to a solid state disk. In some cases, such a method will be very effective and achieve immediate results, and the cost of purchasing these hardware will be, it is much lower than a programmer's cost of modifying programs and tuning from the software perspective.

However, we cannot resolve all the performance optimization problems to the hardware engineers, so the software engineers will not lose the value of existence? In many cases, we should pay attention to performance issues when writing programs, and avoid performance problems caused by program compilation from the very beginning. For example, the speed of a variety of devices may be: Network <traditional hard drive <SSD <memory

Hardware and software are inseparable, and hardware is a tangible entity. If you want a person to recognize the software, there will be some abstraction, they only exist in "1" and "0" in the computer, so this happens. People are willing to pay for hardware, but they are not willing to spend money on software. Many people are willing to spend 10 thousand yuan to buy an expensive computer, but not 30 yuan to buy a small software. This is a sorrow for the programmer group, because it means that everyone's labor results are not recognized. After all, money is also a manifestation of value. Therefore, in many projects (especially domestic projects), manufacturers like to sell hardware and software together, because only when they see hardware, they think that their money is worth it. What's even more ridiculous is that in order to prove the value of their hardware, manufacturers may put a very small device that could have been made in a huge iron box, in this way, we can get the price-this iron block is too valuable, haha.

For the same reason, some vendors like to integrate software functions into hardware, turning the original sold software into selling hardware. For example, the most familiar firewall has a hardware firewall, there are also software firewalls. In fact, their functions and operating mechanisms are similar, but sales are not a concept at all.

In today's popular mobile development, hardware has a huge impact on developers. IOS developers are very happy. They only need to develop applications for one or more devices, and Android Developers are miserable. It is a headache to develop applications for mainstream devices, even though many websites now provide virtual testing environments, many functions can only test the real effect with specific devices. Therefore, only now will the HTML 5 technology be more popular, so developers do not need to adapt to a variety of devices. However, this will lead to another problem. Native applications and HTML 5-based applications will be different in terms of development methods and various usage methods.

Software is indeed subject to various hardware restrictions. At the same time, without software, the hardware will be useless. To make a hardware play a real role, a large amount of software support is required. For example, operating system software, office software, development software, game software, and so on will be installed in our computer, every kind of software will provide different conveniences for our work. With these software, our work and life will become so beautiful.

In short, the relationship between hardware and software is similar to the relationship between material and spirit. Hardware determines the software. In turn, the software will let the hardware reflect the existing value, the effects of hardware are inseparable.

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.