
(最方便指各方面,包括但不限于部署、重构等......)
其实我觉得最方便的是以二进制方式运行,像 Java ,.Net ,奈何 Java 感觉个人开发者无力玩耍,.net 现在在 Linux 下还不是很方便;
Python ? 3 还是 2 ?以我的角度来说还是 3 用的多, Linux 上又是自带 2.6 或 2.7 ,部署时又得编译 Python3 环境,又得安装 virtualenv ,就这个得折腾不少时间;
golang 不太清楚,还请老司机带路;
OK ,我知道 php 是最好的语言了;
还有其他的吗?
提示我回复频繁,需要等1800s......
在写这帖子之前,我比较喜欢的是Python和golang,前面也说了,Python部署实在是略繁琐,但是不得不说,开发效率真的是高的吓人;
golang略微看过一些语法,是丑,但是静态类型又是我比较喜欢的,所以想入golang;
今天看了新闻说.net core的稳定版要发布了,目前只是观望下,不想吃螃蟹;
看回复的童鞋很多推荐golang的,希望能说明下到底“浪”在哪里,另外,大家都知道它支持并发比较好,谢谢!
1 murmur 2016-05-17 16:34:07 +08:00 这把 java 黑的没边了 java 至少不会让你每次部署的时候还要 jpm install 几百兆的 java_modules 也不会说要你安装 cjpm 因为 jpm 国内太卡了 你把项目给谁用直接丢一个 war 包给他就好了。。还有比这更简单的部署么 php 是最好的语言+1 |
2 GhostEX 2016-05-17 16:34:13 +08:00 还用说么 php 是最好的后端语言 |
4 murmur 2016-05-17 16:38:01 +08:00 @only0jac java 那一套框架可以让一群弱智级的程序员再一起都能搞出点东西来 因为大框架被限制的死死的 所以随便找一个人来都能接手 个人的话直接网上抄配置文件用就完了 唯一的黑点是热部署 没事重启 tomcat 玩受不了 |
5 only0jac OP @GhostEX 知道知道,但是还想知道有没有这么一种解决方案:写完代码后生成二进制文件,往服务器一扔, nginx 做个代理后直接跑 |
6 lightening 2016-05-17 16:41:06 +08:00 @only0jac 本来想说 Ruby 的,但是你说要生成二进制文件,那,要么试试 Elixir ? |
7 LaoK666 2016-05-17 16:44:12 +08:00 node.js ?最近一直在撸 React 不知道用作后端怎么样... |
8 falood 2016-05-17 16:45:54 +08:00 @lightening 没想到在第一页就能看到 elixir ,顶一下 :D |
9 bobuick 2016-05-17 16:46:01 +08:00 golang 虽然丑是丑了点, 槽点也很多。不过用来做工程, 还是不错的 |
10 odirus 2016-05-17 16:46:46 +08:00 用了很久的 PHP , Python ,现在终于用上了 Java ,突然发现一身轻松。和大多数人的观点相反。 |
11 only0jac OP @lightening 挺小众的,可以看看,谢谢! |
12 only0jac OP @wangxkww 之前在 V 站看过这么句话,大体意思是“ nodejs 是老板想让前端多干点活的产物”,没有黑的意思, js 感觉做前端就很棒了,后端有点。。。悬 |
13 7jmS8834H50s975y 2016-05-17 16:51:06 +08:00 java + jsp 这个搭配 没人用了吗?难道 jsp 现在这么不受欢迎? |
14 jimzhong 2016-05-17 16:54:27 +08:00 python3+venv 挺好 |
15 murmur 2016-05-17 16:55:20 +08:00 @wsdjeg 可能大家都习惯说 springmvc 了吧 不过 springmvc 的 v 层还是 jsp 啊 只不过标签库更体贴了 |
16 sun522198558 2016-05-17 16:55:22 +08:00 php 是最好的后端语言 |
17 lbp0200 2016-05-17 16:58:39 +08:00 那就是 Go 语言了,打包完,就一个可执行文件。 |
18 subpo 2016-05-17 17:03:54 +08:00 最方便 ruby 咯 |
19 zwh8800 2016-05-17 17:04:06 +08:00 真心推荐 golang |
20 caoyue 2016-05-17 17:05:07 +08:00 有 Erlang 打包完了扔上去就能运行 |
22 Cifery 2016-05-17 17:13:07 +08:00 @lightening 顶 elixir |
23 cheneydog 2016-05-17 17:13:50 +08:00 稳定需求-java 频繁修改-python 前端-js 足以 |
25 m8syYID5eaas8hF7 2016-05-17 17:22:17 +08:00 @murmur 可以换成其他模板引擎的,我们用 beetl 比较多,国人开发的,语法简单,效率比 jsp 高 2-3 倍。 或者换成其他模板引擎也可以,不过我没用过 |
26 roricon 2016-05-17 17:23:54 +08:00 Python 部署是挺烦, 但有 Docker 呀. |
27 hooluupog 2016-05-17 17:25:51 +08:00 node.js 或者 Go 。 |
28 likezun 2016-05-17 17:25:53 +08:00 简单,高效,好用 ,即是真理 ( 当然也能玩得复杂) php 就是这样的后端语言 |
29 haozhang 2016-05-17 17:30:57 +08:00 via iPhone java 的话试试 play framework |
30 wubotao 2016-05-17 17:36:04 +08:00 PHP/Node |
31 wobuhuicode 2016-05-17 17:38:41 +08:00 Node + PHP 的路过…… |
32 Kabie 2016-05-17 17:41:34 +08:00 不吹不黑……要比方便…… elixir 还是很不错的。。。 |
33 imcxy 2016-05-17 18:01:39 +08:00 你既然说的是个人开发者,关键点就是你说的:环境。 如果你对 Linux ,环境部署不熟悉, linux 搭建 10 分钟,但是要维护可不是 10 分钟可以解决的。。你难道搞到最后要去研究 Linux 搞运维? 至于大家最喜欢谈的“简单”的 PHP 现在的 PHP 真的简单?以前的简单,是因为大量应用是直接嵌入 HTML,直接 echo echo 简直所见即所得啊,确实很简单! 但是现在 PHP 都跟 JAVA 一样了,都是“应用程序”,那么 PHP 的优点已经用不到了,为啥还要用 PHP 呢。 所以根据你的情况,你部署环境都觉得麻烦的话,我建议你搞.NET 。 |
34 stone1342006 2016-05-17 18:06:36 +08:00 py 部署麻烦, golang 运行效率高, 支持高并发, 多路复用不要太简单, 同时可以以正常的同步逻辑写异的操作,再也不用写 callback 了^_^, 不过 gc 偏弱,大内存应用有很多需要优化的工作 |
35 NullMan 2016-05-17 18:08:27 +08:00 真心看不惯带人身攻击的评论(如 @murmur). 什么叫弱智级程序员随随便便都能玩 Java 了? 既然 Java 是弱智级别的人都能玩, 这说明什么? 说明 Java 是一门优秀的编程语言, 那些要绕着坑进行编程的语言, 简直就是垃圾语言! |
36 luulsj 2016-05-17 18:24:25 +08:00 A goods programming language is one that helps programmers write goods programs. No programming language will prevent its users from writing bad programs. 摘自《 Thinking in Java 》 |
38 JamesRuan 2016-05-17 18:33:42 +08:00 用 Go 也得有够经验。 |
39 ouafukqk 2016-05-17 18:38:27 +08:00 什么 “扔一个二进制到服务器上就能跑” ,都是骗小孩的 希望你可以尝试用一个二进制文件来做服务器调优,我将佩服你的勇气 |
40 MushishXian 2016-05-17 18:58:41 +08:00 golang 的确扔上去就可以跑..... |
41 answeryou 2016-05-17 19:16:26 +08:00 Ruby 吧 |
42 ooTwToo 2016-05-17 19:16:44 +08:00 via iPhone @murmur v 可以是 thymeleaf 、 jade 、 freemarker 、 velocity 等等。。不止 JSP 一种。闲配置麻烦直接上 play ?或者 springboot 。闲语法嗦直接换 Python ? PHP ? |
43 timothyye 2016-05-17 19:21:02 +08:00 via Android 是时候祭出我大 Golang 了 |
44 leitwolf 2016-05-17 19:29:42 +08:00 golang 好,就一个文件,生成多平台执行文件简单,多线程也很好。 |
45 jhdxr 2016-05-17 19:29:53 +08:00 @imcxy 如果 php 的优点只是因为能直接 echo 网页内容的话那你也太小看 php 了,或者反过来说大部分语言都可以直接输出内容啊。现在之所以不再提倡这么混着写不正是因为分工逐步细化,前后端分离么 另外 php 最大的优点不应该是修改了直接就能跑不需要重新编译 /部署么。。。还有 php 的数组真的很好用。。。居然完全不提这两点只说一个 echo (而且我觉得这从来不算优点, jsp 也可以很方便的实现类似特性),你真的用 php 写过除了 hello world 以外的东西么 |
47 ChiangDi 2016-05-17 19:33:13 +08:00 via Android 部署是运维做的事,跟语言有什么关系,不管你用啥语言都是公司运维去部署的啊 |
48 sox 2016-05-17 19:34:59 +08:00 via Android golang / node.js |
50 Soar360 2016-05-17 19:51:12 +08:00 当然是 PHP 啊。 |
51 imcxy 2016-05-17 20:04:38 +08:00 @jhdxr 我说的 echo 后面有 所见所得 4 个字。已经包含了你说的一堆了。 几句话,没法强调方方面面。没法强调数组这个好用的部分,也没必要,又不是写论文,举了个典型的例子而已。我只是强调了其实有更多更好的。。 另外,真的没用过 PHP 写过除了 hello world 以外的东西,以外的东西话有太多更好的。这就是我要说的那个意思。 |
52 willchen 2016-05-17 20:12:57 +08:00 via iPhone 那就是 golang 了 |
54 only0jac OP @odirus 这是什么意思? java 反而轻松?用 java 做 android 的话我到认可,说他的语法什么的我也认可,但是要说到个人开发的话。。。不咋地。 |
56 kikyous 2016-05-17 20:23:52 +08:00 ruby |
57 only0jac OP @MushishXian python 需要安装 uwsig 或 gunicorn 之类的服务器, golang 不需要?打包好直接运行??? |
58 SPACELAN 2016-05-17 20:25:55 +08:00 node, 写完用 nexe 编译成二进制(其实就是编译一个嵌入了自己代码的 node ),然后直接跑 不过 node 编译和运行对 GCC 版本和一些运行库版本要求比较高 |
60 murmur 2016-05-17 20:29:24 +08:00 @only0jac 你去看看 java 的生态链 不仅是轮子给你造好了 还有上好的跑车拿来就开 比如 elasticsearch (喜欢折腾的可以降到 lucene ) 而且 springmvc+mybatis 也可以能省就省, mapper 直接进 controller ,拿掉 service 层(我没试过但是自动注入应该不区分是 controller 还是 service 吧~),然后 mapper 的 xml 也省掉直接 sql 写到注解上,路径直接对项目进行扫描,然后就是全注解开发了 最重要的是这一堆都可以网上找到例子,抄一次下次再抄不会超过 30 分钟 小项目大框架,大项目小框架,但是 java 除外,一个 springmvc+mybatis 基本可以配任何东西 |
61 Comdex 2016-05-17 20:30:57 +08:00 golang 咯,语法丑这个理由见仁见智,不习惯的都觉得丑 |
62 6IbA2bj5ip3tK49j 2016-05-17 20:37:07 +08:00 via Android java 其实部署也简单,用 spring boot 一类的生成 fat jar ,直接 java -jar 运行。 |
63 JamesRuan 2016-05-17 20:42:28 +08:00 第一次听说 Java 部署简单的…… 装个环境一天就没有了,相对的, Erlang , Golang 之类的 10 分钟。 |
64 msg7086 2016-05-17 20:52:12 +08:00 我只知道各大动态语言都自带不熟工具。 你自己做不了运维的话就招人做咯,运维又逃不掉的。 看似最简单的 Windows 下双击运行,其实运维工作量都比 Linux 要大的。 |
65 wangxiyu191 2016-05-17 20:59:06 +08:00 @only0jac golang 标准库里有 http 包,可以直接作为 http 服务器。编译好之后扔上去运行就 OK 了。不需要 uwsig 之类的。 |
66 wdhwg001 2016-05-17 21:06:01 +08:00 via iPhone 咦居然没有 meteor 么? |
67 murmur 2016-05-17 21:09:30 +08:00 @JamesRuan 我的感觉是入坑越简单后期越要加倍偿还, java 部署也不难啊,装 jdk ,绿色安装 tomcat , war 包扔进去最多把 perm 和 heap 改大点就跑起来了 出了性能问题还有优可以调 调优都没法调的。。后期就只能哭了 |
68 Reficul 2016-05-17 21:19:50 +08:00 写 Go 的路过,最近在看 Groovy , JAVA ,感觉到了蛋疼 |
69 junweiyang 2016-05-17 21:23:01 +08:00 golang 推荐 |
70 niuroumian 2016-05-17 21:34:56 +08:00 golang or kotlin+spring boot |
71 only0jac OP @wangxiyu191 python 也自带 http 服务器呀,不是说自带的没法用在生产环境中么 |
72 Lelouchcr 2016-05-17 21:38:31 +08:00 python 部署可以配置一个 ansible |
73 only0jac OP @roricon docker 确实好,肯定得学学,但是,多个 python web 项目部署到一个 docker 还是多个 docker ? |
75 free9fw 2016-05-17 21:43:00 +08:00 没人说 swift 吗 |
77 mengzhuo 2016-05-17 21:44:41 +08:00 Golang 深入了解后才能理解“重剑无锋” |
82 kanezeng 2016-05-17 21:49:39 +08:00 @JamesRuan 说简单指的是 spring boot 吧,确实简单啊,一个空系统,有 JRE ,直接 java -jar 把包跑起来就可以开始提供服务了,其他什么都不需要配了。 |
83 QuantumCore 2016-05-17 21:49:53 +08:00 via Android 编程语言一般是没有好坏之分的,只有用得好不好,是不是在恰当的环境中使用了合适的编程语言。像 PHP 和 Node.js 区别就很大。比如部署方式不同,编程思想有差异,但也能互相弥补,(像 MediaWiki ,新浪、腾讯、百度的一些应用,都是各种语言混搭的。 |
84 yangxin0 2016-05-17 21:50:54 +08:00 via iPhone 居然没有人说 jruby , java 和 Scala 库随意调,还有 rails 这种快速开发框架 |
85 flikecn 2016-05-17 22:13:30 +08:00 via iPhone 首推 Go |
86 quietin 2016-05-17 22:23:44 +08:00 流量小 php, 流量超大 java |
87 redvoilin 2016-05-17 22:34:02 +08:00 ruby |
88 wangxiyu191 2016-05-17 22:48:00 +08:00 @only0jac 但是 go 的 http 服务器的性能足够在生产环境用。可以去搜下各种 benchmark |
89 limbo0 2016-05-17 22:48:30 +08:00 始祖 ruby on rails |
90 aias 2016-05-17 23:09:44 +08:00 感觉 Go 不错(没用过)。 生命苦短,我用 python 。 |
91 hanxiV2EX 2016-05-17 23:18:20 +08:00 via iPhone Lua |
92 GPU 2016-05-17 23:43:25 +08:00 其实 C# 能不能运行在 unix-like 的环境 , 我看见很多手机服务单用 C# 写的. |
93 himulawang 2016-05-18 00:00:50 +08:00 go, 性能好。 部署方便。推荐。 |
94 E2gCaBAT5I87sw1M 2016-05-18 0:08:38 +08:00 Ruby on Rails |
95 jsq2627 2016-05-18 02:32:13 +08:00 .net core 还值得再观望半年再入手。 一直在关注, rc1 和 rc2 其实已经相当于 1.0 到 2.0 这样级别的区别,很多核心系统都发生了变化。虽说 6 月底出 RTM ,但是目前个人觉得 RTM 之后不排除发生重大特性变化的情形。 |
96 frogcjn 2016-05-18 02:59:31 +08:00 TypeScript 编译成 Javascript ,所以可以用 Node 毕竟现在开始流行 Javascript 移动端方案 |
97 frogcjn 2016-05-18 03:09:06 +08:00 其实还是看你情况,每个方案都不是最好的,只能说某些维度好。 当初觉得 JS 没有类型写不惯差点放弃 Node.js ,后来知道有 TypeScript 。所以现在打算 TypeScript+Node.js+Express Ruby 那个语法一看就不太想用...让我想起了 VB...Ruby 的话就是 RoR 还有 Sinatra Python 其实已经不错了, Python 3 和 2 区别不大。 Python3 的支持, Py2/3 中可以选择 Python3 。 Python 推荐 Flask , Django 我是看不进去,要学的东西太多。 结合自己的需求选择。 Swift 的话,现在 Swift 十分不稳定, Swift3 之后还有 Swift4 ,说 Swift 要自重,感觉这门语言要被苹果玩坏。 Swift 写后端纯属写着玩, Swift3 目前的最新版本, Linux 代码和 OS X 上代码有些地方写法需要改变,坑不是一般的多哦(框架有 Zewo , IBM 的 Hikura , Perfect ,都还年轻,都会有坑的)。 |
98 frogcjn 2016-05-18 03:38:21 +08:00 但论语言的话, TIOBE Index May 2016 : http://www.tiobe.com/tiobe_index Go 排名 42 , Swift 排名 15 , Ruby 排名 8 , Javascript 排名 7 , PHP 排名 6 , Python 排名 5 , C#排名 4 , Java 排名 1 Go 排名*非常非常*靠后,原因也很简单,除了后端, Go 基本没应用在其他领域。实际上 Go 的真实位置应该是相当于后端的 C , C++这种感觉,看了一下语法感觉就是这样,毕竟没法直接用 C/C++写后端... 选一门语言能够跨移动端、 Web 前端,后端跨界,唯有 JS 了吧。(之前勉强做到这点 ActionScript 已卒,排名 50 靠后) |
99 YUX PRO 我用 Python, 2 或 3 都行主要看你用的包的支持 一律用 Docker 部署 |
100 julor 2016-05-18 07:34:54 +08:00 via Android 如果把重构考虑进去,动态需要可能会有坑。剩下 java 和 golang ,看看你的需求。推荐 golang ,部署简单:编译后就是执行文件,可以非常轻松高并发。考虑到第三方包不支持的情况下采用 java 。 楼主真的不要信全栈,你敢用前端来写 nodejs 准备好插屁股!接触过几个 javaweb 完全限制在几个框架,笑称 java 是面向框架编程。 |