静态语言开发 web 有优势吗?

2015-09-10 16:27:35 +08:00
 gaitana
看到很多人说静态语言的类型检查可以避免很多错误,不用像动态语言那么多测试。但是用动态语言有个最爽的地方,我不知道该怎么描述。开发 rails 的都知道 binding.pry 吧,直接在访问页面的时候进入程序内部跟上下文交互, python 的 web 框架也有这种技术。如果用 java 的话,能实现这种效果吗?

rails console 和 django 的 manage.py shell ,都可以直接进入命令行环境操作查看 model ,我觉得 web 开发中,这种技术比静态检查重要的多
5128 次点击
所在节点    程序员
24 条回复
xiamingchong
2015-09-10 17:06:45 +08:00
php 是世界上最好的语言。
Shieffan
2015-09-10 17:08:10 +08:00
用 go 写 web ,写恶心死了,关键是尼玛需求天天变,写业务逻辑,吐吐吐
ipconfiger
2015-09-10 17:13:28 +08:00
@Shieffan 有那些吐点?
tabris17
2015-09-10 17:21:09 +08:00
@Shieffan go 写写中间件还凑合,写 web 是作死了
88250
2015-09-10 17:22:43 +08:00
@tabris17 https://wide.b3log.org Go 写的,感觉还可以,没有作死。
Shieffan
2015-09-10 17:24:56 +08:00
@ipconfiger 模板系统渣; 逻辑代码里一半的 error check, 代码丑陋; 调试困难,开发效率低下,单是处理 http in/out 数据就能把人难过死。

可能是我写习惯了 ruby 跟 python ,用 go 写起来就各种折腾了, ruby 里一两行的代码放 go 里我要一二十行,感觉 100 行的业务代码里, 80 行都是在处理语言相关问题,只剩下 20 行是业务逻辑了。
fising
2015-09-10 17:26:02 +08:00
@Shieffan 这是因为你没选好框架吧
88250
2015-09-10 17:26:13 +08:00
@Shieffan 这些槽点和 Java 没法比吧....
Shieffan
2015-09-10 17:30:04 +08:00
@fising 框架不是我选的, beego
guotie
2015-09-10 17:30:33 +08:00
go 写 web 挺好的
lululau
2015-09-10 17:43:08 +08:00
Java 能不能实现 binding.pry 这样的功能不知道,但是这个和是静态类型还是动态类型没有关系
igordonshaw
2015-09-10 18:30:57 +08:00
java 有个神器叫 jrebel
datou552211
2015-09-10 19:36:49 +08:00
@Shieffan m:n 的并发模型,确实没啥好的调试工具来 debug ,不过官方的 trace 工具已经算比较好用的了

动态语言没有 err check 是要确保一切都按照预期在执行,到这需要大量全面的 test

语法确实不优雅
gaitana
2015-09-10 19:53:14 +08:00
@datou552211 动态语言写 test 多是检测业务逻辑,很少听说写 test 来检测语法,业务逻辑上的失误静态语言在编译阶段也检测不出来吧。

写 web 程序,语言的存在感很弱,最好是感觉不到语言的存在,动态脚本语言正巧充当了这个角色
llhhss
2015-09-10 20:00:33 +08:00
Java 用 ide 开 debug 模式加断点,感觉比 binding 方便

console 确实非常有帮助
datou552211
2015-09-10 20:02:13 +08:00
@gaitana 有说检查语法嘛。。这里的预期是指,每一个变量都是自己想要的类型
datou552211
2015-09-10 20:06:00 +08:00
@datou552211 每一步都真确处理了,检查语法是编译器解释器的事吧
gaitana
2015-09-10 20:07:08 +08:00
@datou552211 用动态语言写 web 程序的时候很少被类型问题困然,也许从动态语言入门编程的和静态语言入门编程的,写程序的时候思维方式不一样。
datou552211
2015-09-10 20:22:09 +08:00
@gaitana 确实,静态语言变量你不用的时候可以不管它,但是需要对它操作了就必须通过各种方法明确类型,虽然有时候你知道这是多此一举
janxin
2015-09-10 20:34:41 +08:00
Go 做性能敏感后端可以,现在大部分用 Python 搞定就行了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/219706

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX