SNS实现采用的技术大多是PHP,如果采用java、 .net是否同样适用?
回复内容:
SNS采用的技术可不都是PHP (不局限于国内),特别是国外的新兴公司,基本上没有再用PHP的了,国内到还是蛮常用的。简单说说我知道的几个案例:- Facebook (PHP):Facebook采用PHP是历史原因,而且Facebook的PHP被大量的Hack过了(e.g. Hiphop)。Quora曾经问一个问题,为什么「伟大」的Facebook要用PHP,答案是如果没有PHP,Facebook会更「伟大」。PHP的优点在于成熟稳定,经受考验;缺点在于语法较乱,代码管理不好。Tumblr和Pinboard都用的是典型的LAMP组合。
- Twitter (Ruby on Rails):Twitter也不能说全都是Ruby on Rails了,用RoR的地方大概在浅层的实现,真正后台的处理已经改成Scala。Twitter的business logic很简单,RoR的优势并没有完全发挥。RoR的社区很活跃,有许多新技术都诞生于此,而且RoR的程序员都以RoR为骄傲,我的朋友就一直费口舌劝我说转去RoR。
- Foursquare (Scala):承接这上一个说,Scala是运行在JVM的语言,继承了Java的优良特性,同时有许多改进,FS用的是Lift这个框架。
- 人人网 (Java):人人网一开始应该使用的Structs,后来肯定深度的Hack了Structs。Java做网络开发的缺点在于,成本太高。先不说JVM有多消耗内存,Java在开发效率(注意不是执行效率)要低于PHP, Ruby和Python。而且「Java系」习惯铺一个很大的摊子。所以Java主要运用在企业级别的应用,特别是Java对于Threading的控制。
- Stackoverflow (.NET):.NET的初创公司太少了,SO比较奇葩一些。.NET成本高,不仅是开发成本,而且维护成本也高。Windows的服务器很贵,而且用起来不如Linux放心。
- 豆瓣 (Python):豆瓣用Python应该是阿北自己习惯咯,当时还没有Django,所以用的是Quixote。Python现在在YC-Funded的公司中很流行,甚至有超过Ruby。原因我觉得一方面是Python在大学中很流行(相比Ruby和PHP就不行了,我们大学甚至连PHP都不教,不认为它是一门语言),大学生毕业之后创业,自然选择熟悉的语言。Python的Framework选择也很多,包括Django, Web.py, Cherry.py, Pylon等等。
其实很多人对比java和PHP,很多人都说java慢、重,本来不觉得的。后来我有点感悟了。其实人们都把PHP这门脚本语言和JSP这个SCRIPTLET做比较了。而不是PHP和java比较。
在这里假定学习时间是1年的话,搞PHP的同学比起搞java的同学做出来的东西可能更多一点了~所以,从学习曲线来讲, php就像剑法招式,java就像内功,一开始,php比较容易有成就。
到了2年工作经验的PHP同学和java同学比较,就发现原来java有模板引擎技术,velocity,sitemesh等,可以完全不用JSP的。会感觉PHP的优势降低了,而java mvc比起php代码确实是整洁很多很多~ 这时候,PHP和java各有千秋~
最后2位同学都好几年工作经验了(假定还是程序员,没有转行^_^),具体php我没深入了解, 但是当项目巨大,需要做数据分析,数据挖掘,爬虫搜索引擎等重大项目的时候,java的优势就越来愈明显起来了。
最后说说服务器性能问题。这个不得不承认,PHP的服务器(apache或者nginx)比起tomcat,resin是轻量很多的,可能jetty能稍微好一点,但还是比不上PHP的解析器。 从语言层面来讲是肯定适用的,甚至来说大部分高级语言都能做出一个像样的SNS。
存在即合理,PHP、Python和Ruby等动态语言在SNS和大量WEB2.0项目中流行肯定是有原因的。
一般来说大部分项目初创阶段都会选择成本最低,效率最高的手段打磨出产品原型,尽快发布上线以获得及时的用户反馈情况来论证项目模式的可行性,这个阶段看重 起步快、开发快、迭代快。
当产品上线运营并在获得一定成功过后,一般就会倾向于 运行稳定、性能高、扩展方便,这个时候就要具体项目具体分析了。如果当前的技术体系可以满足项目的发展需求,那这种情况最好,不需要对技术架构做大的变动(我觉得FB算这一种,他们大部分的上层应用还是PHP,而且在这种背景下他们才搞出了HIPHOP和HHVM)。但是如果之前的技术体系无法支撑可遇见地规模化发展,那变更技术体系便势在必行了(比如淘宝)。
一个大型项目选择技术体系的时候(没有历史技术包袱的情况下),语言本身的特性并不是最重要的,还要优先考虑到成本(不同的技术体系对服务器软硬件成本影响是很大的,特别像.NET这种土豪才敢用的体系一般的SNS这种前期超低现金流的项目是不敢随便上的,不同技术体系的工资差距也很大的,说到这里为广大PHPer抹把泪)、团队规模(3个人的团队你要用J2EE何必呢)、开发效率(SNS这种项目一般前期是需要很快迭代出功能原型的,动态语言的开发效率和部署效率一般来说是高于静态语言的)、招聘难易度等因素。
我是PHP的重度使用者,也是Python狂热粉丝,曾经也做过好几个J2SE和J2EE的项目,现在业余时间都在琢磨Golang。还是那句话,语言没有优劣,只有适不适合。 此事跟语言无关。 市场不是问题。问题在于成本。 java最大的问题在于它太“重”,对硬件的要求太高。用来做SNS产品,硬件投入是非常巨大的。校内网早期的时候效率问题非常明显,当时的开心网用php实现,运行效率上差距非常大,这个在后来被千橡收购以后有所改善。
PHP这种语言的好处在于你所会遇到的问题基本都有人遇到过了,而且有非常漂亮的解决方案,最重要的是它们是免费的!可是用到Java的话,涉及到大规模分布式的解决方案,都是投入要求非常巨大的,小团队承受不起。
当然,如果你有钱砸,用什么语言都不是问题,大规模网站用java也许会更稳定,可控性更强,但是对于创业公司来说,PHP, Python, Ruby都是更好的选择。 是跟风的结果吧,看到做SNS的Facebook火了,大家做SNS就都选PHP了,看到做问答的Quora火了,做问答的就基本都选用Python了,这直接造成了Python成为2010年的年度编程语言,一度排名到了前五,但是随着Quora变冷,Python的热度已经降下来了。 并不都是用 PHP,除了 PHP 之外相信用 Python 和 Ruby 的也不在少数。比较有名的如 Twitter 用的是 Ruby,知乎和豆瓣等用的是 Python。
Java 和 .NET 面临的问题很可能是成本过高,特别是 .NET,因为 http://ASP.net 受到微软的专利保护,很难完全在 Mono 下实现,这使得其很难在 Linux 下使用。而 Windows 的服务器,且不考虑其软件的授权成本,Windows 所消耗的基本资源也要远高于 Linux,因此同样性能的服务器用 Linux 做网站能够承受的负载要大的多。所以从成本上考虑 .NET 不是特别适合于做大型网站。可以很明显的看到,在全球访问量排名前列的网站,除了微软自己的,没有什么是用 .NET 做的,这是一个很明显的证据。
至于 Java,我个人不是特别了解,因此暂不做过多评论。不过个人感觉 Java 的内存消耗相当惊人。 淘宝用的是java 还有一个重要的,就是学习成本吧,会什么用什么得了,互联网讲究的是快速,什么熟用什么

핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

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

뜨거운 주제











종종 키워드와 추적 매개 변수로 혼란스러워하는 긴 URL은 방문자를 방해 할 수 있습니다. URL 단축 스크립트는 솔루션을 제공하여 소셜 미디어 및 기타 플랫폼에 이상적인 간결한 링크를 만듭니다. 이 스크립트는 개별 웹 사이트 a에 유용합니다

Instagram은 2012 년 Facebook에서 유명한 인수에 이어 타사 사용을 위해 두 개의 API 세트를 채택했습니다. Instagram Graph API 및 Instagram Basic Display API입니다. 개발자는

Laravel은 직관적 인 플래시 방법을 사용하여 임시 세션 데이터 처리를 단순화합니다. 응용 프로그램에 간단한 메시지, 경고 또는 알림을 표시하는 데 적합합니다. 데이터는 기본적으로 후속 요청에만 지속됩니다. $ 요청-

이것은 Laravel 백엔드가있는 React Application을 구축하는 데있어 시리즈의 두 번째이자 마지막 부분입니다. 이 시리즈의 첫 번째 부분에서는 기본 제품 목록 응용 프로그램을 위해 Laravel을 사용하여 편안한 API를 만들었습니다. 이 튜토리얼에서는 Dev가 될 것입니다

Laravel은 간결한 HTTP 응답 시뮬레이션 구문을 제공하여 HTTP 상호 작용 테스트를 단순화합니다. 이 접근법은 테스트 시뮬레이션을보다 직관적으로 만들면서 코드 중복성을 크게 줄입니다. 기본 구현은 다양한 응답 유형 단축키를 제공합니다. Illuminate \ support \ Facades \ http를 사용하십시오. http :: 가짜 ([ 'google.com'=> 'Hello World', 'github.com'=> [ 'foo'=> 'bar'], 'forge.laravel.com'=>

PHP 클라이언트 URL (CURL) 확장자는 개발자를위한 강력한 도구이며 원격 서버 및 REST API와의 원활한 상호 작용을 가능하게합니다. PHP CURL은 존경받는 다중 프로모토콜 파일 전송 라이브러리 인 Libcurl을 활용하여 효율적인 execu를 용이하게합니다.

고객의 가장 긴급한 문제에 실시간 인스턴트 솔루션을 제공하고 싶습니까? 라이브 채팅을 통해 고객과 실시간 대화를 나누고 문제를 즉시 해결할 수 있습니다. 그것은 당신이 당신의 관습에 더 빠른 서비스를 제공 할 수 있도록합니다.

2025 PHP Landscape Survey는 현재 PHP 개발 동향을 조사합니다. 개발자와 비즈니스에 대한 통찰력을 제공하는 프레임 워크 사용, 배포 방법 및 과제를 탐색합니다. 이 조사는 현대 PHP Versio의 성장을 예상합니다
