Rumah pembangunan bahagian belakang Golang 2021年放弃Python选择Go的原因

2021年放弃Python选择Go的原因

Feb 27, 2020 pm 06:23 PM
go python

过去一段时间,Go 语言中文网推过挺多 Python 相关的公众号,很多人诧异:为什么推的都是 Python 的呢?其实主要原因是因为 Python 类的公众号实在太多了,而且很多粉丝都特别多,我也挺纳闷的。不过他们值得我学习,也说明 Go 还有很长的路要走。

2021年放弃Python选择Go的原因

您会在 Python 和 Go 之间选择哪个?如果您对 Go(Golang)有更深入的了解,那么您肯定会选它。否则将会选择Python。那么我们讨论一下。Python 的伙伴们,有 5 个理由可以让您选择 Go。让我们一起阅读这篇文章。

“ Python非常强大,尤其是 Python 3 具有异步功能,但是 Go 将完全取代它在大型企业中的地位……”

如果您真的理解上边的话,则可以尝试使用 Go 编程语言。我认为 Go 是一种非常简单的编程语言,可以适应任何应用程序环境,甚至比 Javascript 编程还要简单。这可能就是为什么 Go 编程语言近年来变得流行的原因。

在本文中,我将比较两种语言的以下方面。这些方面的参数将帮助您确定哪种语言更适合您的手头项目。

1、性能

2、可扩展性

3、实际应用

4、执行方式

5、程序库

6、代码可读性

网站 TreeScale.com 主页和 API 是基于某些分析工具的 Web 应用程序。这是他们的技术栈:

  • React.js 主页前端

  • Django Python 主页后端和身份验证服务

  • Node.js API 服务

  • PostgreSQL 数据库,Cassandra 日志记录系统

  • 自定义容器注册表正在使用 Rust 语言

  • Python

Repustate 几乎完全是 Python 商店。他们使用 Django 来实现 API 和网站。因此(当前)使用 Python 来实现阿拉伯情感引擎是合理的,以便保持代码的一致性。仅用于原型设计和实现,Python 是一个不错的选择。

它的表达能力非常强大,第三方类库等也很好。如果您要使用 Web 服务,那么 Python 是完美的选择。但是,当您执行低级计算并严重依赖哈希表( Python 中的字典类型)进行比较时,一切都会变慢。我们每秒可以处理大约两到三个阿拉伯文文档,但这太慢了。相比之下,他们的英语情感引擎每秒可以处理大约 500 个文档。

从上面可以看到,基本框架完全基于微服务和逻辑的分离(前端和后端分离),甚至是完全不同的技术来实现。

他们将 API 服务和后端集成到一个项目中的主要原因是它们在许多地方都相似,并且通过多种语言或技术进行编码,同时有很多重复的代码。最后,他们需要花费大量时间来个性化 Django 的 API 服务,尤其是在自定义 JSON 响应方面。

我觉得当您开发一些普通的应用程序时,使用 Django 很棒,但是当您需要更高的性能和一些个性化的模块时,使用 Django 会使它更加复杂。

为什么选择 Go 编程?

1、编译为单个二进制文件

Golang 是一种编译语言,Googe 的开发人员为此付出了很多努力。它使用静态链接根据操作系统类型和环境将所有相关的库文件和模块实际组合到一个二进制文件中,这也意味着如果要将后端应用程序编译到 Linux 操作系统和基于 X86 CPU 的应用程序,您只需将已编译的二进制应用程序下载到服务器,然后后端应用程序就可以工作,不需要任何相关文件。

2、静态类型系统

2.jpg类型系统对于大规模应用非常重要。Python 是一种很棒的有趣的语言,但是有时您会看到一些奇怪的异常,因为当您尝试将变量用作整数变量时,而实际它是字符串类型。

def some_view (request): user_id = request.POST.get ('id', 0)这样的代码将导致 Django 崩溃。

而 Go 会进行编译,并告诉您这是一个编译器错误,这是它在愚蠢问题上赢得时间的地方。

3、优化(性能)

令人惊讶的是,在大多数应用程序场景中,Go 比 Python(第 2 版或第 3 版)更快。比较的结果可以在基准测试中看到,这当然是不公平的,它取决于应用程序的类型和用户用例。

就我们而言,Go 拥有自己的多线程模块和 CPU 可扩展性,因此性能更高。每当我们需要执行一些内部请求时,我们都可以使用 Goroutine 分别执行它们,这比 Python 中的线程要节省十倍的资源。借助这些内置的语言功能,我们可以节省大量资源(内存和 CPU)。

4、Go 不再需要 Web 框架

3.jpg

对于编程语言来说,这是一件很酷的事情。Go 语言的创建者和社区拥有核心语言支持的许多内置工具,在大多数情况下,您不再需要任何第三方库。例如,它具有内置的 http,json 和 html 模板。您甚至可以构建非常复杂的 API 服务,而不必担心在 Github 上找到第三方库。

当然,Go 也有许多用于构建 Web 项目的库和框架,但是我建议您不要使用第三方库来构建 Web 项目或 API 服务,因为在大多数情况下,使用标准库包将使您的生活更轻松。

5、更好的 IDE 支持和调试

当您尝试更改编程语言时,IDE 支持是最重要的考虑因素之一。友好的 IDE 可以平均节省 80% 的编程时间。Go Plugin for JetBrains IDEA,还提供其他支持,例如(Webstorm,PHPStorm 等)。该插件提供项目开发中所需的任何服务。强大的 JetBrains IDEA 可以使您的开发更加强大,更好用的是 Goland。

选择 Go,还是 go home?

Mozilla 正在内部将其庞大的基础日志记录架构转换为 Go,部分原因是强大的 goroutines 。Go语言是由 Google 的人员设计的,在设计之初,对并发的支持才是重中之重,而不是像其他各种 Python 解决方案一样在其后添加。因此,我们开始从 Python 切换到 Go。

尽管我们的 Go 代码产品尚未正式发布,但结果令人鼓舞。现在,我们每秒可以处理一千个文档,使用更少的内存,并且不需要调试在 Python 中遇到的问题:丑陋的多进程/gevent/“为什么 Control-C 无法杀死进程”。

为什么我们喜欢 Go?

任何对编程语言的工作方式(解释与编译,动态与静态)了解甚少的人都会说:“切,当然 Go 会更快”。是的,我们还可以用 Java 重写所有内容,并且可以看到类似且更快的改进,但这不是 Go 语言获胜的原因。

您在 Go 中编写的代码似乎是正确的。我不知道发生了什么,但是一旦代码被编译(快速的编译速度),您就会觉得代码可以正常工作(不仅可以正确运行,而且在逻辑上正确)。我知道这听起来不太可靠,但确实如此。

就冗余(或非冗余)而言,这与 Python 非常相似。它以函数为首要目标,因此函数式编程将易于理解。当然,Go 线程和通道使您的工作变得更轻松,可以从静态类型中获得很大的性能提升,并且可以更好地控制内存分配,但是不必为语言表现力付出太多成本。

根据我们的代码统计,用 Go 重写项目后,我们减少了 64% 的代码。

您不需要调试不存在的代码。代码越少,错误越少!

结论

Go 为我们提供了极大的灵活性。一种语言可以在所有用户方案中使用,并且在所有用户方案中都能很好地工作。在后端和 API 服务中,我们获得了 30% 的性能优化。现在,我可以实时处理日志,转换为数据库,并通过 WebSocket 处理一项或多项服务!这是 Go 语言功能提供的非常强大的功能。

更多go语言知识请关注php中文网go语言教程栏目。

Atas ialah kandungan terperinci 2021年放弃Python选择Go的原因. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Akan R.E.P.O. Ada Crossplay?
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

PHP dan Python: Contoh dan perbandingan kod PHP dan Python: Contoh dan perbandingan kod Apr 15, 2025 am 12:07 AM

PHP dan Python mempunyai kelebihan dan kekurangan mereka sendiri, dan pilihannya bergantung kepada keperluan projek dan keutamaan peribadi. 1.PHP sesuai untuk pembangunan pesat dan penyelenggaraan aplikasi web berskala besar. 2. Python menguasai bidang sains data dan pembelajaran mesin.

Bagaimana sokongan GPU untuk Pytorch di CentOS Bagaimana sokongan GPU untuk Pytorch di CentOS Apr 14, 2025 pm 06:48 PM

Membolehkan pecutan GPU pytorch pada sistem CentOS memerlukan pemasangan cuda, cudnn dan GPU versi pytorch. Langkah-langkah berikut akan membimbing anda melalui proses: Pemasangan CUDA dan CUDNN Tentukan keserasian versi CUDA: Gunakan perintah NVIDIA-SMI untuk melihat versi CUDA yang disokong oleh kad grafik NVIDIA anda. Sebagai contoh, kad grafik MX450 anda boleh menyokong CUDA11.1 atau lebih tinggi. Muat turun dan pasang Cudatoolkit: Lawati laman web rasmi Nvidiacudatoolkit dan muat turun dan pasang versi yang sepadan mengikut versi CUDA tertinggi yang disokong oleh kad grafik anda. Pasang Perpustakaan Cudnn:

Python vs JavaScript: Komuniti, Perpustakaan, dan Sumber Python vs JavaScript: Komuniti, Perpustakaan, dan Sumber Apr 15, 2025 am 12:16 AM

Python dan JavaScript mempunyai kelebihan dan kekurangan mereka sendiri dari segi komuniti, perpustakaan dan sumber. 1) Komuniti Python mesra dan sesuai untuk pemula, tetapi sumber pembangunan depan tidak kaya dengan JavaScript. 2) Python berkuasa dalam bidang sains data dan perpustakaan pembelajaran mesin, sementara JavaScript lebih baik dalam perpustakaan pembangunan dan kerangka pembangunan depan. 3) Kedua -duanya mempunyai sumber pembelajaran yang kaya, tetapi Python sesuai untuk memulakan dengan dokumen rasmi, sementara JavaScript lebih baik dengan MDNWebDocs. Pilihan harus berdasarkan keperluan projek dan kepentingan peribadi.

Penjelasan terperinci mengenai Prinsip Docker Penjelasan terperinci mengenai Prinsip Docker Apr 14, 2025 pm 11:57 PM

Docker menggunakan ciri -ciri kernel Linux untuk menyediakan persekitaran berjalan yang cekap dan terpencil. Prinsip kerjanya adalah seperti berikut: 1. Cermin digunakan sebagai templat baca sahaja, yang mengandungi semua yang anda perlukan untuk menjalankan aplikasi; 2. Sistem Fail Kesatuan (Unionfs) menyusun pelbagai sistem fail, hanya menyimpan perbezaan, menjimatkan ruang dan mempercepatkan; 3. Daemon menguruskan cermin dan bekas, dan pelanggan menggunakannya untuk interaksi; 4. Ruang nama dan cgroups melaksanakan pengasingan kontena dan batasan sumber; 5. Pelbagai mod rangkaian menyokong interkoneksi kontena. Hanya dengan memahami konsep -konsep teras ini, anda boleh menggunakan Docker dengan lebih baik.

Keserasian Centos Miniopen Keserasian Centos Miniopen Apr 14, 2025 pm 05:45 PM

Penyimpanan Objek Minio: Penyebaran berprestasi tinggi di bawah CentOS System Minio adalah prestasi tinggi, sistem penyimpanan objek yang diedarkan yang dibangunkan berdasarkan bahasa Go, serasi dengan Amazons3. Ia menyokong pelbagai bahasa pelanggan, termasuk Java, Python, JavaScript, dan GO. Artikel ini akan memperkenalkan pemasangan dan keserasian minio pada sistem CentOS. Keserasian versi CentOS Minio telah disahkan pada pelbagai versi CentOS, termasuk tetapi tidak terhad kepada: CentOS7.9: Menyediakan panduan pemasangan lengkap yang meliputi konfigurasi kluster, penyediaan persekitaran, tetapan fail konfigurasi, pembahagian cakera, dan mini

Cara Mengendalikan Latihan Pittorch Diagihkan di Centos Cara Mengendalikan Latihan Pittorch Diagihkan di Centos Apr 14, 2025 pm 06:36 PM

Latihan yang diedarkan Pytorch pada sistem CentOS memerlukan langkah -langkah berikut: Pemasangan Pytorch: Premisnya ialah Python dan PIP dipasang dalam sistem CentOS. Bergantung pada versi CUDA anda, dapatkan arahan pemasangan yang sesuai dari laman web rasmi Pytorch. Untuk latihan CPU sahaja, anda boleh menggunakan arahan berikut: PipinstallToRchTorchVisionTorchaudio Jika anda memerlukan sokongan GPU, pastikan versi CUDA dan CUDNN yang sama dipasang dan gunakan versi pytorch yang sepadan untuk pemasangan. Konfigurasi Alam Sekitar Teragih: Latihan yang diedarkan biasanya memerlukan pelbagai mesin atau mesin berbilang mesin tunggal. Tempat

Cara Memasang Nginx di CentOs Cara Memasang Nginx di CentOs Apr 14, 2025 pm 08:06 PM

CentOS Memasang Nginx memerlukan mengikuti langkah-langkah berikut: memasang kebergantungan seperti alat pembangunan, pcre-devel, dan openssl-devel. Muat turun Pakej Kod Sumber Nginx, unzip dan menyusun dan memasangnya, dan tentukan laluan pemasangan sebagai/usr/local/nginx. Buat pengguna Nginx dan kumpulan pengguna dan tetapkan kebenaran. Ubah suai fail konfigurasi nginx.conf, dan konfigurasikan port pendengaran dan nama domain/alamat IP. Mulakan perkhidmatan Nginx. Kesalahan biasa perlu diberi perhatian, seperti isu ketergantungan, konflik pelabuhan, dan kesilapan fail konfigurasi. Pengoptimuman prestasi perlu diselaraskan mengikut keadaan tertentu, seperti menghidupkan cache dan menyesuaikan bilangan proses pekerja.

Cara Memilih Versi PyTorch di CentOS Cara Memilih Versi PyTorch di CentOS Apr 14, 2025 pm 06:51 PM

Apabila memasang pytorch pada sistem CentOS, anda perlu dengan teliti memilih versi yang sesuai dan pertimbangkan faktor utama berikut: 1. Keserasian Persekitaran Sistem: Sistem Operasi: Adalah disyorkan untuk menggunakan CentOS7 atau lebih tinggi. CUDA dan CUDNN: Versi Pytorch dan versi CUDA berkait rapat. Sebagai contoh, Pytorch1.9.0 memerlukan CUDA11.1, manakala Pytorch2.0.1 memerlukan CUDA11.3. Versi CUDNN juga mesti sepadan dengan versi CUDA. Sebelum memilih versi PyTorch, pastikan anda mengesahkan bahawa versi CUDA dan CUDNN yang serasi telah dipasang. Versi Python: Cawangan Rasmi Pytorch

See all articles