后台语言比较多。在选择方面 php vs. node.js,想请教一下建议。node有崛起之势,就像以前一样,比较少人涉足程序员这个职业,所以敲代码敲代码。
回复内容:就进化来说,js速度快于php,es6还没普及,都开始es7了,语法变化太多,三天不写就跟不上,node就更快了,一天一个版本,express更偏激,找个去年的代码样例都跑不了,很多变了。
php谈不上语言设计,也没有美感,写多了,甚至有点想吐,但php是实用主义,能出活啊,出活快啊,node.js先不说js的回调能不能适应(promise),回调中的异常捕捉等等问题,但javascript并非为web专生,写web欠缺的东西很多,比如sprintf没有、strftime没有、strtotime没有,连获取时间戳都要 parseint((new date()).gettime()/1000),模板解析也没有,当然这些都可以依赖第三方包,结果是写一个小东西,到处都是 require。
php就简单多了,基本上你需要的内置函数都有,实用来说,node还差很多。题主想自己玩玩还是拿来谋生?
拿来玩玩就在这里继续看答案。
想找工作去拉勾看看自然有答案了。学会一门优秀的技术然后没有没有offer也是很苦恼的。写过7年php,5年javascript,让我从头选,我选javascript。
原因如下:
php到目前仍然只是web后台语言,javascript已经是全栈语言(web,桌面,移动,嵌入式,数据库等都有重要应用),如果编程语言是一种投资,javascript的长期回报更高。
php在实际编程环境里主要仍然是一种oo语言,javascript实际场景里的多范式应用随处可见(oop,functional,event driven,declarative programming等等),学习javascript能打开你的思维。
web开发无可避免的是全栈开发,当你需要做前端的事的时候,javascript是唯一的目标语言。
javascript的工具链比php的灵活,迭代更快,社区支持更好(php的核心社区小很多);再者,php能做的,还没发现javascript在v8上做不了的。当然是 haskell 了,连 facebook 这样的写 php 的公司都开始用 haskell 处理一些高性能服务了。
常见疑问:
一、haskell 小众,职业选择不多。
答:学了 haskell 分分钟转 node.js 不是问题。
二、学不会怎么办?
答:首先,你要试试才知道智商够不够。其次,到时候还可以参考本问题下其它回答。看答案没用,每个人都会推荐他心中的神器,但是实际上带有太强的主观性能,这也是无法避免的,因为不存在精通所有语言的人,俺感觉cpp js这四门语言够了。中小项目。首推rails。
php代码丑陋,node.js玩玩可以,真做项目头疼。
唯有rails,写web项目如行云流水。拥有中小企业快速起步所必须的开发效率。
ror也是国外初创企业的首选。例如:twitter airbnb 500px kickstater square hulu producthunter等等
各种强大的gem,比如登录管理devise、图片上传管理papaerclip、角色权限管理cancan等等。令一般编程语言3天5天才能搞定的功能,在rails里面几分钟就搞定了。
一个用php和python需要写到绝望的项目,用rails可能一个月就搞定了。看图。github上的语言排行,javascript还是比php要火一点点的。
要么有社区,要么有爹。
在有爹方面,java、c#、golang比较好。java有oracle/ibm等厂商支持,c#有microsoft支持,golang有google支持,都是有实力的公司。php勉强可以算有爹,毕竟有zend/facebook/sina等公司支持和使用。node.js这种东西就算了吧。
在有社区方面,java、c#、php、python比较好,golang发展的速度也比较快。感觉php现在仍处于上升趋势,在天朝php第一估计10年内没有问题,更何况php要7了题主要找工作的话,还是php吧,别听忽悠去学小众技术。