preface

I am a node developer, and I joined the team to learn Go for the sake of the relationship of the big teapot. Through this period of study and the use of Go, I also have a little experience. Here I will talk about my feelings (this is not a technical article, just some of my feelings).

Business scenarios facing

Because my current company is a saas development company, I use Node more as a plugin, or to do some small features that saas does not complete, generally a little like a small platform, it is not really a pure server architecture.

Go, on the other hand, is used in the company for container development, or for high concurrency scenarios.

At the same time, there are a lot of distributed scenarios in the use of Go, but there is less use of distributed in Node (possibly because of my taste).

The difference in writing

The other thing is that there’s a big difference in the way you write it. We know that Node is done in JavaScript, and JavaScript is a dynamic language, which means that if you have some syntax error, you can only find it when the program is running, whereas in a dynamically typed language, if the project continues to grow, It’s very inconvenient to maintain.

Go, on the other hand, is a statically typed language that tells you errors at compile time and builds faster than Node because it does not require an extra layer of translation.

The difference between asynchronous non-blocking and multithreading

We know that both Go and Node have excellent effects in dealing with dense IO. One is because of goroutine, and the other is because of asynchronous non-blocking. In fact, Node does not mean how fast it processes, but its response speed is very fast. You can do something similar to multithreading, but without the overhead of thread switching, so it’s fast.

The last

This is just a snippet of my own, which is also a small summary of my journey in learning Go.