목차
回复内容:
백엔드 개발 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实现吧。

用什么语言写服务,真的不是关键,关键是你要盈利!
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Ubuntu 및 Debian용 PHP 8.4 설치 및 업그레이드 가이드 Dec 24, 2024 pm 04:42 PM

PHP 8.4는 상당한 양의 기능 중단 및 제거를 통해 몇 가지 새로운 기능, 보안 개선 및 성능 개선을 제공합니다. 이 가이드에서는 Ubuntu, Debian 또는 해당 파생 제품에서 PHP 8.4를 설치하거나 PHP 8.4로 업그레이드하는 방법을 설명합니다.

PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 PHP 개발을 위해 Visual Studio Code(VS Code)를 설정하는 방법 Dec 20, 2024 am 11:31 AM

VS Code라고도 알려진 Visual Studio Code는 모든 주요 운영 체제에서 사용할 수 있는 무료 소스 코드 편집기 또는 통합 개발 환경(IDE)입니다. 다양한 프로그래밍 언어에 대한 대규모 확장 모음을 통해 VS Code는

PHP에서 HTML/XML을 어떻게 구문 분석하고 처리합니까? PHP에서 HTML/XML을 어떻게 구문 분석하고 처리합니까? Feb 07, 2025 am 11:57 AM

이 튜토리얼은 PHP를 사용하여 XML 문서를 효율적으로 처리하는 방법을 보여줍니다. XML (Extensible Markup Language)은 인간의 가독성과 기계 구문 분석을 위해 설계된 다목적 텍스트 기반 마크 업 언어입니다. 일반적으로 데이터 저장 AN에 사용됩니다

문자열로 모음을 계산하는 PHP 프로그램 문자열로 모음을 계산하는 PHP 프로그램 Feb 07, 2025 pm 12:12 PM

문자열은 문자, 숫자 및 기호를 포함하여 일련의 문자입니다. 이 튜토리얼은 다른 방법을 사용하여 PHP의 주어진 문자열의 모음 수를 계산하는 방법을 배웁니다. 영어의 모음은 A, E, I, O, U이며 대문자 또는 소문자 일 수 있습니다. 모음이란 무엇입니까? 모음은 특정 발음을 나타내는 알파벳 문자입니다. 대문자와 소문자를 포함하여 영어에는 5 개의 모음이 있습니다. a, e, i, o, u 예 1 입력 : String = "Tutorialspoint" 출력 : 6 설명하다 문자열의 "Tutorialspoint"의 모음은 u, o, i, a, o, i입니다. 총 6 개의 위안이 있습니다

Java 8 Stream foreach에서 나누거나 돌아 오시겠습니까? Java 8 Stream foreach에서 나누거나 돌아 오시겠습니까? Feb 07, 2025 pm 12:09 PM

Java 8은 스트림 API를 소개하여 데이터 컬렉션을 처리하는 강력하고 표현적인 방법을 제공합니다. 그러나 스트림을 사용할 때 일반적인 질문은 다음과 같은 것입니다. 기존 루프는 조기 중단 또는 반환을 허용하지만 스트림의 Foreach 메소드는이 방법을 직접 지원하지 않습니다. 이 기사는 이유를 설명하고 스트림 처리 시스템에서 조기 종료를 구현하기위한 대체 방법을 탐색합니다. 추가 읽기 : Java Stream API 개선 스트림 foreach를 이해하십시오 Foreach 메소드는 스트림의 각 요소에서 하나의 작업을 수행하는 터미널 작동입니다. 디자인 의도입니다

이전에 몰랐던 후회되는 PHP 함수 7가지 이전에 몰랐던 후회되는 PHP 함수 7가지 Nov 13, 2024 am 09:42 AM

숙련된 PHP 개발자라면 이미 그런 일을 해왔다는 느낌을 받을 것입니다. 귀하는 상당한 수의 애플리케이션을 개발하고, 수백만 줄의 코드를 디버깅하고, 여러 스크립트를 수정하여 작업을 수행했습니다.

미래를 창조하세요: 완전 초보자를 위한 Java 프로그래밍 미래를 창조하세요: 완전 초보자를 위한 Java 프로그래밍 Oct 13, 2024 pm 01:32 PM

Java는 초보자와 숙련된 개발자 모두가 배울 수 있는 인기 있는 프로그래밍 언어입니다. 이 튜토리얼은 기본 개념부터 시작하여 고급 주제를 통해 진행됩니다. Java Development Kit를 설치한 후 간단한 "Hello, World!" 프로그램을 작성하여 프로그래밍을 연습할 수 있습니다. 코드를 이해한 후 명령 프롬프트를 사용하여 프로그램을 컴파일하고 실행하면 "Hello, World!"가 콘솔에 출력됩니다. Java를 배우면 프로그래밍 여정이 시작되고, 숙달이 깊어짐에 따라 더 복잡한 애플리케이션을 만들 수 있습니다.

PHP에서 늦은 정적 결합을 설명하십시오 (정적 : :). PHP에서 늦은 정적 결합을 설명하십시오 (정적 : :). Apr 03, 2025 am 12:04 AM

정적 바인딩 (정적 : :)는 PHP에서 늦은 정적 바인딩 (LSB)을 구현하여 클래스를 정의하는 대신 정적 컨텍스트에서 호출 클래스를 참조 할 수 있습니다. 1) 구문 분석 프로세스는 런타임에 수행됩니다. 2) 상속 관계에서 통화 클래스를 찾아보십시오. 3) 성능 오버 헤드를 가져올 수 있습니다.

See all articles