Click to follow
Asynchronous Books, Top Public number
Sharing it good book technology with you every day knowledge of dry jobs
Friends who talk to me more will know that I have long insisted that developers learn a few sets of programming languages, especially the new development language. For a while, I was even ready to try to design a programming language with an application scenario. Computer language is human design, understand the core principle, really not so difficult. Of course, to do well, there are a lot of users, that is another thing.
Development based on C + + language I've been doing it for over 10 years. Later, I gradually decomposed the application requirements into other languages, php/python/javascript (front-end/node.js), I have spent a lot of effort to study. In the development process I can do all kinds of languages at any time switch, handy, without any obstacles. And, relying on the good foundation of the past in the C + + ERA, I can study and understand the programming language at the source level. Especially in C written in various scripting languages, as long as the manual is not clear, I went straight to the source code to see a clear. This is the great advantage that the open source era brings to multilingual developers.
Recently, I was studying the go language. There are several other programming languages of interest, and I have plans to delve into them.
Why am I so bored with the new computer language? Very simple, times change, with the Times . Reference: People should keep pace with the times, conform to the trend of the time
For today's IT world, the time for a single language fit all has been gone. The future trend is that various languages stop their core application sites, learn from each other, compete with each other, continue to expand, erode into other languages of the application, and gradually find better expression patterns and methods.
The new language represents an understanding of the renewal of things and a better way of explaining them.
Language is the tool of human thought. The human language, and the human language spoken to the computer, the essence is to express the idea. People rely on programming languages to command the computer to run. Different languages represent the different ways of understanding the problem domain and the computer system.
The emergence of these languages and the promotion of their development is the environmental change behind. Newer languages, often absorbing the advantages of the previous generation of languages, try to use New Thought models and new methods to solve all known and unknown problems. Sometimes the user will find it very effective, very convenient, the language is easy to get a foothold in a problem domain.
Our development environment, application environment, has been changing. But humans tend to be blind to slow change, the habit of continuing the original assumptions and the starting point, which leaves a gap in innovation, often from here to get breakthrough progress.
For example, the single-machine era, CPU performance is weak, memory speed, capacity is very low. Under this condition, the various software development decisions made will bring the impact of this default environment. So that the hardware behind the rapid advance, the original hypothesis is not established, its impact may continue. The original computer network physical level is not reliable, so the network protocol design a lot of calibration mechanism, but behind the fiber age, these checks become a cost and burden, testing is not the more the better. reference: where is the important technology innovation node likely to occur?
From the single-machine to the network application, then do mobile device development, and network integration, and then have a variety of intelligent hardware equipment, all things connected, different application development, brought different needs and environment. The original programming language, the design of the balance point considered by the designer may not be appropriate, the need for new language to replace it, to innovate.
The so-called "balance point" is that design decisions are confronted with conflicting characteristics and where the compromises are made. Do you want to compile the static language, or the Dynamic language interpretation type? Is the focus on programming flexibility or running speed? How many security issues do you consider? Do you want garbage collection? With what mechanism? For example, how does the CPU evolve from a single core to a multi-core, and how can the hardware be fully utilized in language design?
With so many application requirements changing, the generation of computer languages with different design ideas is necessarily a catalyst. It is impossible for a single language to solve all problem domains. Forcing a horse can only make the developer miserable, drastically reducing efficiency and quality. Who else is writing web apps in C + + now?
Fortunately, most programming languages have very similar grammatical structures before the fundamental changes in the architecture of the computer system, and it is not difficult to understand learning. Computer algorithms are common as well. But taking into account the ecological environment, design ideas, development patterns, and customary usage that it creates and relies on, it takes a lot of effort to apply it freely.
Here are links to a few about learning ability training, learning methods of original articles for your reference:
Learn fast, remember prison, spend less-please develop your brain as soon as possible
The learning methods of the workplace people
It people are never old, what is the value of old programmers?
It field, learning, you continue to work!
This digest is from the asynchronous community, Winston works: Why do good developers learn to study new programming languages? 》
Click below to read the original text to see more content
Read the original
Why do good developers learn to study new programming languages?