Why do good developers learn to study new programming languages?

Source: Internet
Author: User

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?

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.