Jadual Kandungan
回复内容:
Rumah pembangunan bahagian belakang tutorial php go语言以后会不会成为主流web开发语言?

go语言以后会不会成为主流web开发语言?

Jun 17, 2016 am 08:30 AM
java php

据说go语言的并发处理很好?能不能和java php竞争?

回复内容:

撸主多虑了,没有竞争关系啦....
虽然 go 成为了世界上最并发的语言,
但是,
这并不妨碍 php 成为世界上最好的语言,
也不妨碍 java 成为世界上最有模式的语言,
更不会妨碍 c++ 成为 21 天就能学会了的语言... 语言真的那么重要吗?web后端应用大部分都是死在数据库上的,用php只要算法得当,一样也非常稳。况且现在的服务器都是白菜价了,实在性能受限就买服务器搞轮询咯。现在的互联网公司能顺利活过三年的都寥寥可数,要是被技术再一绑架,那就直接GameOver了 以后会有很多种主流web开发语言。
go也可能会是其中之一。 谢邀。没想到再次被邀请回答关于golang的问题,这个对于我这个平时写客户端C++用得比较多,写服务端用golang比较少的人真是感到又一次amazing。
我的回答如下:
在用golang这门语言的过程,关于这个关于针对某一门语言能否达到类是这种“xxx的某方面很好,能否跟aa,bb竞争”、“xxx能否成x方面的主流”甚至"xxx能否成为制霸某个领域的语言”之类的的话题,我觉得要回答这类问题。得先自己纵横下web里面诸多语言,基本主流的都用过一遍,对主流web语言背后的支持方有一定深入了解才能做出更加接近客观的答案。所幸,我以前干过这种事。也应用过到实际项目中。用C#的WCF结合ajax写过WebOS,用PHP写过网站和系统后台,用Flash写过网站,用Java写过B/S,早期的asp的VBScript也做过网站。一直到后面切换到游戏领域开发的C++和golang。
到现在的自己的总结就是:语言在某种领域显得比其它语言的强势与否,跟它背后的支持方、跟它自身的优缺点点、跟它的文档资料详细与否,跟语言诞生的时间早晚,成正比关系。拿几个主流的做对比,Java背后有被Oracle收购的Sun,PHP的整个组织和相关社区支持也很给力,怎么说Facebook也不会让人打php的脸的,Golang最开始算是谷歌搞出来(里面关系详细自行查找),但是现在也是自成体系。按照上面的刚刚说的成正比的几个关系依次对好入座。发现最终影响的主要因素就只剩下2个:自身优缺点和语言诞生时间早晚。其它的都是可以当作统一水平直接忽略不计。
拿语言自身优缺点来说,现在只要能成为主流的web开发语言之一,都彼此会有这样的或者那样的优点和缺点,会导致使用者有所倾斜,但是从生产环境来看,它们都是合格的。都是可以无视差异进行使用的。写个网站,golang可以写,Java也可以写。那么这个时候怎么选,从公司氛围来看是使用更牛逼更先进的吗?更牛逼更先进是怎么定义的?由于语言各自的差异导致的优缺点各自并存谁能界定哪个更牛逼更先进?我觉得这两个是凡人思考不了的问题。我是个凡人。但是又怎么样呢?(So what?)公司只会从项目实际情况去考虑,这么牛逼先进的玩意儿,谁懂?没人?懂的人数不多?一定要这个吗?不一定。其它不行吗?其它也行。那干嘛用这个?因为这个的xxx很xxxx。那xxx语言的xxx特点不是也很xxxx吗?是的,xxx语言的xxx特点也很xxx。那干嘛还要用这个?。。。。差点死循环。
没错,至关重要的最后因素:语言诞生的时间长短。抛开一些奇葩的情况不说(例如apple家的东西),通过排除法,语言诞生的时间更早,意味着这门语言的体系更贴合生产环境(没得挑,一路用到黑)、自身进化得更全面减少风险性、培养更多使用受众延续自身体系的推广和发展形成良性循环、更容易构建更多的早期的基建项目形成体系里面的应用方案的积累、与系统形成更深层的耦合关系导致不易被摒弃性、容易全面压缩同领域内后续语言发展的潜力空间增加凝滞性。。。。等等。一大堆东西。说那么多,就是告诉你大量公司都是用那么几种主流现成的,招聘上招的人也是来来回回用那么几种主流的,公司还要考虑各种成本、项目风险。用熟不用生。所以,我现在告诉你,就算是golang是种绝对牛逼无敌的web开发利器,也不会成为主流的web开发技术,因为其它的语言也很牛逼,而且他们人多,双拳难敌四手啊,更何况那么多手。特别一点是,go的优势不全在做web上!!!(这里就不深入了,不然又是长篇大论了。)
回答完毕,觉得回答还行的,有看到的童鞋麻烦你伸伸手指点个赞鼓励下,促进下知乎回答问题的氛围。(^_^) 选型都有类似的风险/成本评估过程的,这是技术,但主要不是技术,是成本:
  • 库成熟吗?我用PostgreSQL和Redis,还有几个第三方服务和多个支付网关,有库吗,这些库经过实际检验吗?
  • 社区大吗?行业里是不是有实实在在的应用,背后是不是有大量的技术人员在持续贡献,而不只是一小撮人在advocate,跟着一帮人后面嚷嚷,但没多少人实际在用。
  • 资料好找吗?80%的问题能一次Google解决吗?
  • 好学吗?junior的技术能比较快地学会并开始产出吗?从入门到成为懂最佳实践的开发者所需要的时间是不是和其他web语言相当。
  • 适合快速开发吗?Go开发对需求变更的响应能有多快?是不是需要每次变更他们都需要research新方案。
  • 有致命瓶颈吗?比如现有系统的核心功能严重依赖LAMP或LNMP底层的某个实现而Go没有。
  • 有关键优势吗?我的这组REST API用PHP,Python要200台服务器,用Go只需要20台。
  • 条件允许我用吗?现有系统不会因为引入Go而需要大幅改造,有也是在预算和允许时间内。
用Go写过两个小Web项目,Go是适合Web开发的,库是够成熟的,Go的性能对一般项目没意义,所以只是Nice to have,语言设计上的一些优势对WEB后台开发来说也谈不上Must have,况且强类型的语言毕竟没有PHP,Python这样的语言好学,或者说,强类型对大多数Web应用没有意义,业务逻辑需要的数据尤其别扭。

Web后台的性能不会依赖于单进程的并发实现,而是多进程下保证了服务稳定的前提下的流量平衡,性能问题主要是由架构解决的,而不是某种语言本身。

Go在Web开发领域不会成为主流。

做为一个用 Go 语言做过网站,并运行了几个月的人。我来说说我的看法。


其实有建站需要的人,很多对技术露出一丝惊诧后,很快就又回到了成本问题上。


像 PHP 各种毛病一大堆,即便是个老手,也很难摆脱对开发文档的依赖,为什么大多数网站还是用 PHP 呢?一个公司,除非是创业公司,不然很少会改变他们主要使用的语言。因为他们太熟悉原来的语言,投入了太多资源,他们没有动力在风险未知的情况下,因为某些诱人的卖点而切换一套新语言。


就像 Google 为什么选择 Java 作为主要的 Android的开发语言。选择什么语言,还涉及到一个生态问题。受教育人才的影响,受市场接收度的影响,受存在的解决方案的影响。即便 Google 那么多牛逼的 C/C++ 高手,它们还是选择了一种面对 Object-C,毫无性能优势的语言。


再回到 Go 语言的本身,它本身并不是用来做网页服务器的。它更注重的是分布式系统,比如广告和搜索,那种高并发的服务器。再者,虽然不太喜欢 Node.js ,也用它写过网站服务器,服务器代码和客户端共用,只是一个美好的梦想,但不得不承认,它更适合做网站服务器,除了成千上万的现成模块,在Node.js 里加载一个模块,把其他网站的内容抓过来,就能像客服端一样,用jQuery来分析和处理。而且,现在的 js压缩,scss,less,前台开发的工作流,已经越来越难摆脱 Node.js 了。


但 Go 语言在网站开发方面还远远不够,虽然常用的功能模块都陆续出现了,但它们没有时间沉淀,没有丰富的相关资料,还是需要同样的时间曲线去学习,去研究,去调试。



一种语言要打败老牌老大,除非能说服各个公司的 CEO,能现实的创造巨大的经济利益。否则,开发者的话语权其实很少。

基本很难,因为错过web应用发展高峰了。如果2000年左右出现还有戏 Erlang 还没说话呢其他语言出来凑什么热闹( 不会,不一定,不能 真闲
国外一个交友网站,plenty of fish, 一个人开发的,03年建站,当时用http://asp.net和SQL Server,这么多年过去了,每月google广告收入就有50多万美元,前不久把这个网站以5点几个亿美元卖了。

用啥语言都行,你擅长什么用什么,抓紧把你的idea实现吧。

用什么语言写服务,真的不是关键,关键是你要盈利!
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)
2 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Repo: Cara menghidupkan semula rakan sepasukan
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Cara mendapatkan biji gergasi
4 minggu 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)

Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Panduan Pemasangan dan Naik Taraf PHP 8.4 untuk Ubuntu dan Debian Dec 24, 2024 pm 04:42 PM

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Cara Menyediakan Kod Visual Studio (Kod VS) untuk Pembangunan PHP Dec 20, 2024 am 11:31 AM

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

Bagaimana anda menghuraikan dan memproses HTML/XML dalam PHP? Bagaimana anda menghuraikan dan memproses HTML/XML dalam PHP? Feb 07, 2025 am 11:57 AM

Tutorial ini menunjukkan cara memproses dokumen XML dengan cekap menggunakan PHP. XML (bahasa markup extensible) adalah bahasa markup berasaskan teks yang serba boleh yang direka untuk pembacaan manusia dan parsing mesin. Ia biasanya digunakan untuk penyimpanan data

Program PHP untuk mengira vokal dalam rentetan Program PHP untuk mengira vokal dalam rentetan Feb 07, 2025 pm 12:12 PM

Rentetan adalah urutan aksara, termasuk huruf, nombor, dan simbol. Tutorial ini akan mempelajari cara mengira bilangan vokal dalam rentetan yang diberikan dalam PHP menggunakan kaedah yang berbeza. Vokal dalam bahasa Inggeris adalah a, e, i, o, u, dan mereka boleh menjadi huruf besar atau huruf kecil. Apa itu vokal? Vokal adalah watak abjad yang mewakili sebutan tertentu. Terdapat lima vokal dalam bahasa Inggeris, termasuk huruf besar dan huruf kecil: a, e, i, o, u Contoh 1 Input: String = "TutorialSpoint" Output: 6 menjelaskan Vokal dalam rentetan "TutorialSpoint" adalah u, o, i, a, o, i. Terdapat 6 yuan sebanyak 6

Cuti atau kembali dari Java 8 Stream Foreach? Cuti atau kembali dari Java 8 Stream Foreach? Feb 07, 2025 pm 12:09 PM

Java 8 memperkenalkan API Stream, menyediakan cara yang kuat dan ekspresif untuk memproses koleksi data. Walau bagaimanapun, soalan biasa apabila menggunakan aliran adalah: bagaimana untuk memecahkan atau kembali dari operasi foreach? Gelung tradisional membolehkan gangguan awal atau pulangan, tetapi kaedah Foreach Stream tidak menyokong secara langsung kaedah ini. Artikel ini akan menerangkan sebab -sebab dan meneroka kaedah alternatif untuk melaksanakan penamatan pramatang dalam sistem pemprosesan aliran. Bacaan Lanjut: Penambahbaikan API Java Stream Memahami aliran aliran Kaedah Foreach adalah operasi terminal yang melakukan satu operasi pada setiap elemen dalam aliran. Niat reka bentuknya adalah

Java Made Simple: Panduan Pemula untuk Kuasa Pengaturcaraan Java Made Simple: Panduan Pemula untuk Kuasa Pengaturcaraan Oct 11, 2024 pm 06:30 PM

Java Made Simple: Panduan Permulaan untuk Kuasa Pengaturcaraan Pengenalan Java ialah bahasa pengaturcaraan berkuasa yang digunakan dalam segala-galanya daripada aplikasi mudah alih hingga sistem peringkat perusahaan. Untuk pemula, sintaks Java adalah ringkas dan mudah difahami, menjadikannya pilihan ideal untuk pembelajaran pengaturcaraan. Sintaks Asas Java menggunakan paradigma pengaturcaraan berorientasikan objek berasaskan kelas. Kelas ialah templat yang menyusun data dan tingkah laku yang berkaitan bersama-sama. Berikut ialah contoh kelas Java yang mudah: publicclassPerson{privateStringname;privateintage;

Cipta Masa Depan: Pengaturcaraan Java untuk Pemula Mutlak Cipta Masa Depan: Pengaturcaraan Java untuk Pemula Mutlak Oct 13, 2024 pm 01:32 PM

Java ialah bahasa pengaturcaraan popular yang boleh dipelajari oleh pembangun pemula dan berpengalaman. Tutorial ini bermula dengan konsep asas dan diteruskan melalui topik lanjutan. Selepas memasang Kit Pembangunan Java, anda boleh berlatih pengaturcaraan dengan mencipta program "Hello, World!" Selepas anda memahami kod, gunakan gesaan arahan untuk menyusun dan menjalankan program, dan "Hello, World!" Pembelajaran Java memulakan perjalanan pengaturcaraan anda, dan apabila penguasaan anda semakin mendalam, anda boleh mencipta aplikasi yang lebih kompleks.

Program Java untuk mencari kelantangan kapsul Program Java untuk mencari kelantangan kapsul Feb 07, 2025 am 11:37 AM

Kapsul adalah angka geometri tiga dimensi, terdiri daripada silinder dan hemisfera di kedua-dua hujungnya. Jumlah kapsul boleh dikira dengan menambahkan isipadu silinder dan jumlah hemisfera di kedua -dua hujungnya. Tutorial ini akan membincangkan cara mengira jumlah kapsul yang diberikan dalam Java menggunakan kaedah yang berbeza. Formula volum kapsul Formula untuk jumlah kapsul adalah seperti berikut: Kelantangan kapsul = isipadu isipadu silinder Dua jumlah hemisfera dalam, R: Radius hemisfera. H: Ketinggian silinder (tidak termasuk hemisfera). Contoh 1 masukkan Jejari = 5 unit Ketinggian = 10 unit Output Jilid = 1570.8 Unit padu menjelaskan Kirakan kelantangan menggunakan formula: Kelantangan = π × r2 × h (4

See all articles