NS实现采用的技术大多是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等等。
NS实现采用的技术大多是PHP,如果采用java、 .net是否同样适用?的更多相关文章
- 采用WPF技术,开发OFD电子文档阅读器
前言 OFD是国家标准版式文档格式,于2016年生效.OFD文档国家标准参见<电子文件存储与交换格式版式文档>.既然是国家标准,OFD随后肯定会首先在政务系统使用,并逐步推向社会各个方面. ...
- [转帖]英特尔首款采用10nm技术的混合CPU“Lakefield”即将发布
英特尔首款采用10nm技术的混合CPU“Lakefield”即将发布 intel 也出soc了 里面的东西 跟 安卓和 apple的a系列很像. https://baijiahao.baidu.com ...
- Java采用反射技术创建对象后对目标类的成员变量和成员方法进行访问
实现: package com.ljy; import java.lang.reflect.Field; import java.lang.reflect.Method; /** * * @Class ...
- 横向技术分析C#、C++和Java优劣
转自横向技术分析C#.C++和Java优劣 C#诞生之日起,关于C#与Java之间的论战便此起彼伏,至今不辍.抛却Microsoft与Sun之间的恩怨与口角,客观地从技术上讲,C#与Java都是对传统 ...
- paip. 调试技术打印堆栈 uapi print stack java php python 总结.
paip. 调试技术打印堆栈 uapi print stack java php python 总结. 作者Attilax 艾龙, EMAIL:1466519819@qq.com 来源:attil ...
- Java压缩技术(二) ZIP压缩——Java原生实现
原文:http://snowolf.iteye.com/blog/642298 去年整理了一篇ZLib算法Java实现(Java压缩技术(一) ZLib),一直惦记却没时间补充.今天得空,整理一下ZI ...
- JEECG新版UI规划,主要提供H5方案(采用主流技术)
JEECG 结合当前主流的UI技术,在新版3.7.4 即将推出新的UI方案,主要采用Bootstrap,Vue技术.同时提供代码生成器模板(单表.一对多),快速生成你喜好的模板代码. 版本一: Boo ...
- 为什么DRAM采用地址复用技术?为什么SRAM不采用地址复用技术?
行列地址复用:比如你的存储器容量是16bit,那么可以将这16个比特组织成一个4*4的矩阵,为了找到某个你想要找的bit,比如第1行第2列的那个bit.你先发送二进制的01,表示要找的数据在第1行:接 ...
- Deepin 15.4 如何使用 罗技无线键盘/鼠标(采用优联技术)
1.罗技的“无线优联技术”还是非常强大的,它跟具体的操作系统无关: 2.你只需要 让“优联接收器(一个USB设备)”跟 “无线键盘/鼠标” 配对即可,配对完之后,就无需再配对,即使把“优联接收器”插到 ...
随机推荐
- Lua代码解析-写给C和C++开发人员
lua语言作为一门轻量级脚本语言,能够非常好的被嵌入到应用程序,因此,在移动游戏开发中举足轻重 然后C/C++开发人员转lua并非非常习惯,我也是..所以,一起努力学习lua吧 lua没有类的概念,有 ...
- vmtouch - the Virtual Memory Toucher
https://hoytech.com/vmtouch/ [root@localhost ~]# git clone git://github.com/hoytech/vmtouch.git 正克隆到 ...
- QT运行时加载UI文件
写QT程序里运行时加载UI文件,代码如下: 点击(此处)折叠或打开 #include "keyboard.h" #include <QtUiTools> #incl ...
- secureCRT常用设置
一.快捷键: 1. ctrl + a : 移动光标到行首[常用] 2. ctrl + e :移动光标到行尾[常用] 3. ctrl + d :删除光标之后的一个字符 4. ctrl + w : 删除行 ...
- Java开发之I/O读取文件实例详解
在java开发或者android开发中,读取文件是不可避免的,以下对java开发中读取文件做了归纳和详解: 1.按字节读取文件内容2.按字符读取文件内容3.按行读取文件内容 4.随机读取文件内容 pa ...
- react 组件开发
参考资料 https://toddmotto.com/react-create-class-versus-component/ React-Native的代码规范,React其实也基本一样~~ htt ...
- PHP正值表达式
一个正值表达式是有四部分组成分别是 1.定界符 //是最常用的定界符 其实除了数组字母下划线以外其他的什么都可以作为定界符 2.原子:最小的一个匹配单位 放在定界符中 在一个正值表达式中至少要有一个 ...
- Winedt10 添加自定义宏
Winedt10 添加自定义功能,并在toolbar上添加快捷命令 功能描述: 用宏实现latex+bib参考文献的一键编译. Remark: The toolbar is the most visi ...
- tcl/tk实例详解——返回一个文件夹下所有文件的绝对路径
http://blog.csdn.net/dulixin/article/details/2133840 #所有代码如下,使用注释的方式讲解脚本#修改好文件夹和保存结果路径,可以把本文件直接拷贝进tc ...
- Android XML解析
解析XML有三种方式:Dom.SAX.Pull 其中pull解析器运行方式与SAX类似. 我们首先认识pull解析器:http://developer.android.com/intl/zh-cn/r ...