为什么没有一种万能且通用的编程语言呢?

2021-10-21 16:23:33 +08:00
 onice

Web 开发用 PHP,Java,Node.js

基础设施用 C/C++

网页设计用 HTML,JS,CSS

数据库用 SQL 。

为什么不发明一种万能的编程语言,我只需要学一门语言就能做所有的事情。

这可能吗?

目前 Python 有这种趋势,但还是无法全面覆盖,比如移动端的 App 开发。

16497 次点击
所在节点    程序员
166 条回复
tanranran
2021-10-21 18:18:03 +08:00
C# 没有之一
zjsxwc
2021-10-21 18:31:22 +08:00
transpiler 了解下,楼主的问题全不是问题
industryhive
2021-10-21 18:33:18 +08:00
@lechain 像 Windows 、Linux 这种客户端软件很可能是 C/C++能开发的最大的单体软件,规模再大的软件很可能就不适合了。
atpking
2021-10-21 18:34:02 +08:00
瞧不起二进制?
TAFMT
2021-10-21 18:39:14 +08:00
汇编语言
zwgf
2021-10-21 18:39:34 +08:00
javascript
cmdOptionKana
2021-10-21 18:48:30 +08:00
一个简单的真理:在特定场景,通用的工具必然不如专用工具。

这个真理的原因是:场景和问题本身是复杂的、多样化的。而专用工具就是针对特定问题的特殊性而专门设计的。

这就是没有一个万能语言的原因。
xarthur
2021-10-21 19:26:25 +08:00
楼主提到的 Java C++ Python Javascript 就是通用编程语言啊。
这些语言都是图灵等价的,表达能力的上限是相同的,不存在某个语言能写,另一个语言就不能写的情况。
至于为什么不能用 Python 写 App,实际上可以的,你可以写一个 object-c 和 python 之间的 bridge 就能写了。
至于为什么没人这么干,这是商业问题不是技术问题,答案也很简单,没什么必要,商业上也划不来。
不要想着有这种学一门编程语言就够了,至少得会个 6 们以上的编程语言吧。
charlie21
2021-10-21 19:53:02 +08:00
首先,这么好的东西,它肯定贵
其次,它贵 就会有人寻找便宜的近似替代品
第三,有人就会制造出近似替代品,它就会在喜欢便宜货的人群之中流传开

以上三点是唯一物品和唯一物品替代物出现的原因,商品社会里没有意外。商品社会常识就是这样。当你有了无可替代的理由并彻底堵死 “近似替代物” 机会,就会出现无可替代的唯一物品
lostpg
2021-10-21 20:22:34 +08:00
@industryhive cc cpp rust 虽然没有 jit,但你也不能看不起人家 aot 的性能优化吧。。
industryhive
2021-10-21 20:32:59 +08:00
@lostpg AOT 性能优化上限不如 JIT,并且 java 也不是不能 AOT,现在 java 只能 AOT 和 JIT 二选一,但是说不定未来哪一天 java 可以实现先 AOT 编译再 JIT 运行。
zpxshl
2021-10-21 20:36:22 +08:00
@industryhive 51 android 不就是吗? aot jit 并存
agagega
2021-10-21 20:36:34 +08:00
@industryhive 没有 jit 但是有 pgo..不考虑程序员水平的情况下,Cpp 的上限肯定是比 Java 高的
IvanLi127
2021-10-21 20:42:14 +08:00
万能不就是啥都能做,也只是能做?
muzuiget
2021-10-21 20:44:44 +08:00
其实图灵完备都是万能语言,只不过开发效率上你接受不了。
industryhive
2021-10-21 20:48:58 +08:00
@agagega PGO 的优化上限还是不如 JIT 。目前来看 java 并没有明显不可克服的缺陷,cpp 能做的 java 都可以做,但是 java 的 JIT 却是 cpp 没有的(当然 cpp 可以自己写一个 JIT 编译器,这样 java 和 cpp 就持平了,但是通过 JIT 运行的 cpp 还能不能叫做 cpp 就见仁见智了)。
andytao
2021-10-21 21:06:04 +08:00
目前来看只有 x86 ISA 是真正的跨平台的了。
andytao
2021-10-21 21:11:09 +08:00
目前来看只有 x86 ISA/ ARM ISA 是真正的跨平台的万能语言了,大多数高级语言都受限于框架和各种库,限制了它的跨端能力。
lostpg
2021-10-21 21:14:00 +08:00
@industryhive #51 动态优化确实有着独特的优势,只是目前来看 jit 的成果也依然是在追平和 aot 的差距,虽然这个差距在很多时候都不需要去考虑,而是首要考虑代码实现和质量。

操作系统,数据库和浏览器内核这类应用目前来说,c cpp rust 的性能优势依然存在。考虑程序员心智负担,团队合作与语言生态的场景中,java 优势得天独厚,飞龙骑脸的那种
littlewing
2021-10-21 21:14:10 +08:00
机器语言

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

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

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

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

© 2021 V2EX