当前位置:网站首页>Go language advantages and learning Roadmap
Go language advantages and learning Roadmap
2022-06-11 02:58:00 【Procedure 15528175269】
brief introduction
Go Language is also called Golang, from Google The company 2009 Released in , In recent years, with Cloud Computing 、 Microservices 、 With the development of distributed technology, it has risen rapidly , Become one of the mainstream programming languages , and Java similar , It is a static 、 Strongly typed 、 Compiled programming languages , Born for concurrency , So it is naturally suitable for concurrent programming ( Network programming ).
at present Go Language support Windows、Linux Wait for multiple platforms , You can also directly Android and iOS Wait for the mobile terminal to execute , From a business perspective ,Go Language in cloud computing 、 Microservices 、 big data 、 Blockchain 、 The Internet of things 、 Artificial intelligence and other fields are widely used . So learning now is the right time .
Comparison with other languages
C/C++
Go The original intention of the design is to replace C, So there are many similarities between the two , but Go Do more :
- Provides a runtime that automatically manages threads and garbage collection , stay C/C++ in , You need to manage your own threads and memory
- Faster compilation speed
therefore , relative C/C++,Go More efficient development .
Different scenarios :
- C/C++ It can be used in high-performance embedded systems 、 Large cloud applications and desktop application development
- Go It is applicable to system and cloud platform development
Go Not applicable to high-performance embedded systems , Because the resources of embedded system are limited , and Go Scheduling threads and garbage collection at runtime requires additional overhead . So far no GUI SDK, So it is not suitable for desktop application development .
Java

Java After compiling the program, you need to install additional Java runtime function ,Java The portability of programs depends on Java runtime,Go Unwanted ,Go The runtime is already included in the compiled binary , The difference reflected in the deployment is that it needs to be installed on the server Java runtime, and Go Just deploy a single file .
The other is when the program is executed ,Go It is compiled into binary files and executed by the operating system , and Java It usually includes JIT Compiler JVM In the implementation of ,JIT Code will be optimized .
Python/PHP
Python/PHP All dynamic languages , and Go It's a static language , I can do type checking , Higher reliability .
Development Web When applied ,Python/PHP Usually hiding in Nginx/Apache Later, it acts as a background process ,Go Provides built-in Web The server , It can be used directly in the production environment .

Python/PHP With the help of additional Web The server handles concurrent requests ,Python There is a global lock that allows only one thread to run at the same time ,PHP There is no multi thread and multi process mechanism , A request is an independent process from the beginning , In order to make based on Python/PHP Of Web Applications support concurrent requests , It is necessary to resort to external Web The server .
and Go Built in Web The server makes full use of goroutine, Good support for concurrent connections . Besides , Because the essence of a coroutine is to schedule different threads in the same process , So it also supports sharing resources .
The other is Python/PHP As a dynamic language , Performance is not as good as Go, If you want to improve Python/PHP performance , Must pass C Language writing extensions , Complexity and learning costs are too high .
JavaScript
there JavaScript, Mainly Node.js.
JavaScript It is a single-threaded model , Although asynchronous IO Mechanisms can use different threads , The main program still runs in single thread mode , The time-consuming main program code will block the execution of other code .
and Go The multithreading model of the language can run in different threads of multiple processors through the runtime management scheduling process , Make full use of system hardware .
Node.js Use Google Chrome Of V8 engine , It contains a with JIT Compiler's virtual machine , It can be done to JavaScript Code optimization to improve performance , and Go The code is directly compiled into machine code for execution , There is no such thing , There is no need .
notes : The above comparison contents are compiled from 《Go In Practice》 This book .
Learning Roadmap
notes : There are many books listed here , Just pick the ones you are interested in , I really want to read all these books , Not for threeorfive years .
And the map of basic knowledge :

And a complete one roadmap:

Of course , In the learning process , Official documents It is also an indispensable hand tool .
Next, you will start from the basic knowledge , Help you get started Go Language development , Then the actual demonstration is carried out in combination with the microservice architecture and development , So that we can fully master the language .
边栏推荐
- net core天马行空系列-可用于依赖注入的,数据库表和c#实体类互相转换的接口实现
- How to handle error code 30204-44 when installing office 2016 in win10?
- helm 部署traefik ingress
- 6 best WordPress Image optimizer plug-ins to improve WordPress website performance
- CPT 102_LEC 16
- Forest v1.5.22 release! Kotlin support
- 那些笑着离开“北上广”的人,为何最后都哭了?
- Istio安装与使用
- 最长递增子序列
- Application of the remote acquisition IOT gateway of the Bashir trough flowmeter in open channel flow monitoring
猜你喜欢

基于互联网架构演进, 构建秒杀系统

Young people fleeing big cities: shouldering housing prices and pressure, but not epidemics

Can Xiaoxiang life become the "Yonghui" in the discount industry after the completion of the round a financing of tens of millions of yuan?

WordPress article directory plug-in luckywp table of contents setup tutorial

Arduino Uno接JQ8900-16p语音播报模块

Explication du cours de graphacademy: neo4j Graph Data Science Foundation

Add SQL formatter to vscode to format SQL

【冒泡排序的实现】

从绿联冲刺IPO,看手机配件市场沉浮录

Looking at the ups and downs of the mobile phone accessories market from the green Union's sprint for IPO
随机推荐
蓝桥杯_小蓝吃糖果_鸽巢原理 / 抽屉原理
数组全全排列
CPT 102_ LEC 13-14
Rs232/rs485 to 4G DTU uploading temperature and humidity sensor data based on Modbus protocol to remote TCP server
CPT 102_LEC 15
码农的进阶之路 | 每日趣闻
两部门联合印发《校外培训机构消防安全管理九项规定》
微信小程序
Can Xiaoxiang life become the "Yonghui" in the discount industry after the completion of the round a financing of tens of millions of yuan?
What is ttfb
Longest increasing subsequence
Live broadcast! Feature matching of orb-slam3 series (mlpnp, word bag model, etc.).
【新晋开源项目】动态配置化任务编排框架 Gobrs-Async 加入Dromara开源社区
Introduction to the functions of today's headline search webmaster platform (portal)
TCP/IP
出栈序列是否是入栈序列
Istio installation and use
ROS基础 - 使用 launch 文件(一) - 批量启动多个ROS节点
AOSP ~ 修改WebView默认实现
How to add two factor authentication for WordPress websites