For what the Go language is really good?

in #golang7 years ago

Go is quite small and one of the simple language :-

Go is developed by google employees but its not strictly google project ,rather it is developed as community led open source project.Go is reminiscent of C in its syntax, making it relatively easy for longtime C developers to learn. That said, many features of Go, especially its concurrency and functional programming features, listen back to languages such as Erlang.It has much common with java as for building a cross-platform application & as of for rapid development of code you can consider it parallel with python though differences are father greater than similarities.

Where Go goes Best:-

No language is suited to every kind of job, but some languages are suited to more jobs than others. Go shines brightest when developing a few key application types:
1)Distributed Network Services: Network applications live and die by concurrency and Go has native concurrency feature as goroutines and channels. Consequently, many Go projects are for networking, distributed functions, and cloud services: APIs, web servers, minimal frameworks for web applications, and the like.

2)Cloud-native development: Go has concurrency and networking features, and its high degree of portability, make it well-suited for building cloud-native apps. In fact, Go was used to build one of the cornerstones of cloud-native app development, the app containerization system Docker.

3)Replacements for existing infrastructure: Much of the software we depend on for Internet infrastructure is aging and shot through with exploits. Rewriting such things in Go provides many advantages as better memory safety, easier cross-platform deployment, and a clean code base to promote future maintenance. A new SSH server called Teleport and a new version of the Network Time Protocol are being written in Go and offered as replacements for their conventional counterparts.

Where Go doesn't go:-

Go is designed to err on the side of being small and easy to understand, with certain features deliberately omitted. The result is that some features that are commonplace in other languages simply aren't available as on purpose.
One such feature is generics, which allow a function to accept many different types of variables. Go does not include generics, and the stewards of the language are against adding them, on the basis that generics would compromise the language simplicity. It's possible to work around this limitation, but many developers are still itching to see generics added to Go in some fashion.
Another downside to Go is the size of the generated binaries. Go binaries are statically compiled by default, meaning that everything needed at runtime is included in the binary image. This approach simplifies the build and deployment process, but at the cost of a simple "Hello, world!" weighing in at around 1.5MB on 64-bit Windows. The Go team has been working to reduce the size of those binaries with each successive release. It is also possible to shrink Go binaries with compression or by removing Gos debug information.
Most Go applications are command-line tools or network services. That said, various projects are working to bring rich GUIs for Go applications. There are bindings for the GTK and GTK3 frameworks. Another project is intended to provide platform-native UIs, although these rely on C bindings and are not written in pure Go. And Windows users can try out walk. But no clear winner or safe long-term bet has emerged in this space, and some projects, such as a Google attempt to build a cross-platform GUI library, have gone by the wayside. Also, because Go is platform-independent by design, its unlikely any of these will become a part of the standard package set.

Sort:  

Congratulations @rohit2017, you have decided to take the next big step with your first post! The Steem Network Team wishes you a great time among this awesome community.


Thumbs up for Steem Network´s strategy

The proven road to boost your personal success in this amazing Steem Network

Do you already know that awesome content will get great profits by following these simple steps, that have been worked out by experts?

Congratulations @rohit2017! You have received a personal award!

1 Year on Steemit
Click on the badge to view your Board of Honor.

Do not miss the last post from @steemitboard:
SteemitBoard World Cup Contest - The results, the winners and the prizes

Do you like SteemitBoard's project? Then Vote for its witness and get one more award!

Congratulations @rohit2017! You received a personal award!

Happy Birthday! - You are on the Steem blockchain for 2 years!

You can view your badges on your Steem Board and compare to others on the Steem Ranking

Vote for @Steemitboard as a witness to get one more award and increased upvotes!

Coin Marketplace

STEEM 0.18
TRX 0.13
JST 0.027
BTC 60462.58
ETH 2636.31
USDT 1.00
SBD 2.58