Is it a new trend to go from Python to the go language like Dropbox?

Source: Internet
Author: User
For better back-end performance, Dropbox began a year ago to go from Python to go.

> Dropbox owes a large share of its success to Python, a language, which enabled us to iterate and develop quickly. However, as our infrastructure matures-to-support our ever growing user base, we started exploring ways-to-scale our syste MS in a more efficient manner. About a year ago, we decided to migrate our performance-critical backends from Python to Go to leverage Bette R concurrency Support and faster execution speed.This is a massive effort–around 200,000 lines of Go Code–undertaken by a small team of engineers. At the this point, we have successfully moved major parts for our infrastructure to Go.

Source:open Sourcing our Go Libraries

Reply content:

It seems that many of the answers to the questions are programmers. I offer ideas from the perspective of a former OPS person.

Go has been engineered for design and is very friendly to automatic integration, deployment, and operations.
When resource constraints are no longer confined to one or a group of servers, the biased programming language will begin to show greater power.
The faster the device expands horizontally, the more obvious the weaknesses of the operational unfriendly programming language will be magnified. Go was intended to attract C + + programmers, but the result is that Python programmers go to go more.
Python's ecology is more mature than go, which can save development time in the early stages, but the project will be more refined, the complexity will be higher and the development time will be less obvious. Other requirements such as architecture or performance come out. Detailed information is described below:
"This is about a 200,000 (200,000) line of Go language code. At this point, we succeeded in migrating most of the architecture to the go language. "
This is a massive effort–around 200,000 lines of Go Code–undertaken by a small team of engineers. At the this point, we have successfully moved major parts for our infrastructure to Go.
Dropbox Open source its Go language library

Another recent author of node. JS Express, TJ Holowaychuk, recently turned to Golang
Expressjs author discards node. JS and turns to go language

Both of these iconic events should accelerate the transfer of Python and node. JS programmers to Golang.
Attached: The father of Python is also one of Python's benchmark cases in Dropbox,dropbox.
TJ is one of the biggest contributors to the open source community in node. js.
On the GitHub platform, his followers ranked third, and the first was Linus.

=================================================================
Xu Brew Spring, the bottom is not familiar
If a project is getting bigger and larger, it will become more and more modular and interface, and rewrite a module with high performance requirements .

Reply as follows:
the python side using go refactoring is the schema module more than 200,000 lines of code, not just performance improvements. You should know what the architecture means when you write a project. Should know the importance of architecture. It is estimated that Python programmers are too slow to be forced to follow a particular typographic specification, so they are turning to go.
It can be predicted that the next go community will indent a tab or 4 spaces in the issue of a jihad this question I have to answer, do not invite self-answer.
    1. Answer the question first: it's a new trend, and the world is transitioning to a more "modern" programming language, including moving to a new language other than go.
    2. Go hard to attract C + + programmers, in the C + + Programmer's view of the goods a little "semi-residue" look, it is inevitable to use the intelligence surplus. Rust is more popular with them and it's rust-gamedev to see Rust's first application community.
    3. @ Li Shipao is right, go is in line with Python Programmer's habits, aesthetics, and also can not take advantage of multicore, is simply the python+gevent of the enhanced version. I would love it if I wasn't a C + + programmer.
    4. But @ Liujie said, "Golang is born for server-side development," I disagree. The character processing ability of go personally, the people who do web development have a sense of self-knowledge; there is no generic support to deal with complex business logic (such as game play) more to say hehe.
    5. The way Dropbox uses Go is right: 1, write performance-related code, such as HASH2;2, write business logic simple code, such as Net2, caching and so on. Know its long, avoid its short, use the road.
    6. The above is a personal humble opinion, welcome to explore. But please recognize that the individual is go black, the position may be biased.
Changing the language should be a project need (performance or other)
The most annoying and blindly follow the Dropbox user volume is huge, need more intelligent language to help deal with complex distributed problems is not just Python, Golang is born to be suitable for server-side development, we actually use it is also more satisfactory, personally think the future will become one of the main server-side language.

Currently, there will be a lot of scripting language development projects that are rewritten with Golang, although Golang has a bit more development effort than the scripting language, but performance can be increased several times.

C + + projects are basically not rewritten with Golang because there is no advantage in Golang performance compared to this. The Golang substitution is only considered when developing new projects.
  • 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.