This is a creation in Article, where the information may have evolved or changed.
Last month, one of the founders of the Go language, Unix veteran hacker Rob Paik (robpike), said in a new article that the go language has grown so fast that it has not even imagined itself, and has become a new generation of development language in cloud computing, with Chinese programmers on Go The love of language is beyond their imagination.
Virtualization, Docker, Chinese technology man
Docker head also has a similar exclamation sigh, completely did not think that China actually has so many technical people like Docker, there are so many people in the contribution of Docker. China is another country that is so fond of Docker technology, except for the American homeland .
Go language and Docker have become a new generation of cloud computing core technology, to treat these two technologies, you are watching, or learning. as a technician, how to identify what new technology will be the future trend , this is the origin of this article.
The Go language is open source at the end of 2009, I spent a weekend two days to learn, and in these two days, I also quickly wrote a good web crawler, and a simple high-concurrency file processing service to extract the previous crawl of the key content of the page. Both programs are simple, with a total of less than 500 lines of code written.
My experience with the Go language is:
· simple language, quick start, low learning curve . The grammar of the Go language is simply too simple for you to almost play tricks, go straight, get started very quickly
· natural parallel and asynchronous programming for high concurrency is easy . The two artifacts of the Go language, Goroutine and Channel, are simply great gospels of concurrent and asynchronous programming. The concurrency and asynchrony of C, C + +, Java, and Python are complex and error-prone
· Lib Library is perfectly formed . The Lib library of the Go language basically has the most common libraries
· The concept of C language and the gesture of Python . The concept of C language is to trust the programmer, keep the language small, do not block the bottom and the bottom-friendly, focus on the execution efficiency and performance of the language. And Python's gesture is to do as much as possible with as little code as possible.
Even if the Go language has a lot of problems, such as garbage collection, exception handling, generic programming, etc., but compared to the above several advantages, do not hesitate to enter the pit.
A technology can be developed, the key is to see three points:
· Is there a better community , like the Linux community
· is there an industrial standard, such as Java, a business-class standard like EE?
· is there one or more killer apps , like the LAMP in PHP
For the Go language, you can see clearly
· Go language is easy to get started and the community is active
· The Go language has Google, a world-class technology company behind the push for standards
· The Go language killer app is Docker, and Docker's ecosystem has been full of these years
So, personally, the future of the Go language is limitless.
For the Go language killer app Docker, you'll find basically the same:
· Docker is easy to get started, with big companies such as Google powering up in the biosphere
· Docker has produced industry standard OCI
· Docker communities and ecosystems have emerged like Java and Linux
So, Docker will certainly be the technology of the future.
About Docker I would like to say a few more words, it is the key technology of PAAs in cloud computing, any company that does not attach importance to PAAs, its technical architecture will not be able to grow this company into a large company, PaaS can solve the following problems:
· the problem of the software production line . Continuous integration and continuous release, as well as technologies in DevOps are required through PaaS
· the problem of distributed service . Distributed service high availability, service orchestration, service scheduling, service discovery, service routing, and distributed service support technology is a completely PaaS dish.
· increase the availability SLA for the service. The distributed, highly available technology architecture and operational tools needed to improve service availability SLAs are also provided by the PaaS layer
· reuse of software capabilities . The core of software engineering is the reuse of software capability, which is also perfectly embodied in the technology of PaaS platform.
The key to these issues is the degree to which a technology-based company's research and development capabilities can be judged. Without these technologies, companies that rely on technology to grow their businesses are unlikely to grow at a large scale.