5

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

 2 years ago
source link: https://www.v2ex.com/t/809557
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

V2EX  ›  程序员

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

  onice · 4 小时 10 分钟前 · 2037 次点击

Web 开发用 PHP,Java,Node.js

基础设施用 C/C++

网页设计用 HTML,JS,CSS

数据库用 SQL 。

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

这可能吗?

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

51 条回复    2021-10-21 20:32:59 +08:00

PureWhiteWu

PureWhiteWu   4 小时 8 分钟前

为什么没有一个万能且通用的人,什么都能做到最好呢?

ZHenJ

ZHenJ   4 小时 8 分钟前   ❤️ 3

LokiSharp

LokiSharp   4 小时 7 分钟前

有了啊 C# 啊

Chad0000

Chad0000   4 小时 6 分钟前

你应该说目前 C#有这种趋势,都已经包括了移动端 APP 啦。

Chad0000

Chad0000   4 小时 2 分钟前

dotnet.microsoft.com ,看看官方说法:A developer platform for building all your apps 。

imkerberos

imkerberos   4 小时 2 分钟前   ❤️ 6

有啊, 汇编.

AoEiuV020

AoEiuV020   3 小时 57 分钟前

很多东西不是好和坏能够概括的,
同样一个特点,有人觉得是优点,有人觉得是缺点,
觉得是缺点的人就可能选择不用这门语言,另外开发一门语言解决这个“痛点”,
其他有同样看法的程序员就跟上了也用新语言,
程序员割裂了直接导致不同语言的生态不一样了,自然就能划分出哪些语言擅长什么,实际上是这门语言的主流用户擅长什么,

hongweiliuruige

hongweiliuruige   3 小时 57 分钟前

这不就是 js 吗,,atwood 定律:所有能被 js 实现的应用终将被 js 实现,,

kop1989

kop1989   3 小时 55 分钟前

其实现在哪个语言都差不多是“万能”的,只是在某个产品领域是否被认可,是否流行的区别而已。

qiayue

qiayue   3 小时 49 分钟前   ❤️ 1

有万能的语言,文字就是,你用文字把你的需求描述清楚,别人能帮你开发产品。

masterclock

masterclock   3 小时 48 分钟前

定义一门语言 Ring,把过去、现在、未来一切语言都作为祂的 DSL 。

onice

onice   3 小时 47 分钟前

@Chad0000 问下.NET 是像 Java 那样是免费的吗?看了下官网,跟 Java 差不多,也有自己的 Runtime 。
是不是上了微软的.NET ,全套都得用微软的东西了,操作系统,数据库,云。

simple233

simple233   3 小时 43 分钟前

突然想到了 js...

dajj

dajj   3 小时 40 分钟前

如果不够抽象,就封装一层。 既然不能有万能的语言,那么找好几个程序员,楼主主要对程序员下命令就行。
轻松扩展支持更多语言,岂不美哉

yixiang

yixiang   3 小时 40 分钟前

haxe 了解一下?可以编译成 JavaScript, C++, C#, Java, Python, Lua, PHP 。

死亡细胞就是这玩意写的。

Vegetable

Vegetable   3 小时 38 分钟前   ❤️ 1

实际上你说的中国话就是。

严格来说,所有人们使用的编程语言都是自然语言的子集。

你觉得没有只是因为你抽象的层次不够。当然这么说就有点抬杠的意思了,你实际上想问的,我觉得是:「传统编程语言为什么难以做到适应所有的场景」

这是因为不同场景的需求不同,语言作为一个工具,必然有其擅长工作,比如菜刀可以切菜,也可以切水果,但是人们还是发明了水果刀。瑞士军刀能切菜也能切水果,但是没有谁家厨房或者果盘里放的是瑞士军刀对吧?

工具的功能存在取舍,一味的加特性,去适配更多的场景,损失的就是易用性。同时,当一个工具的功能足够多时,可能会出现另一个情况:不同人群都使用的其中的部分功能,大家互相没有交集,vb 和 c#都属于 dotnet,那你说他们还算一种编程语言吗

roundgis

roundgis   3 小时 36 分钟前 via Android

@onice .net 現在是.net foundations 在打理

signalas1

signalas1   3 小时 34 分钟前

javacript

Chad0000

Chad0000   3 小时 34 分钟前

@onice 是啊完全免费,而且是 MIT 协议,免费得比较彻底。现在 .net 已经真正跨平台了,不用依赖于微软自家的产品,我这边一般都部署在 Docker 中然后跑在 linux 上了。也不一定非要在 Windows 下开发。而且 C#除了 APP 还有手游还有 WebAssemply,貌似是其他语言不大好 Cover 的方向,哈哈。

signalas1

signalas1   3 小时 34 分钟前

javascript

myd

myd   3 小时 31 分钟前

javascript

ruchee

ruchee   3 小时 25 分钟前

有的,Haxe

Smilencer

Smilencer   3 小时 21 分钟前

javascript

onice

onice   3 小时 17 分钟前

@Chad0000 感谢分享。之前初学编程的时候,那个时候 C#还没开源,开源社区的大佬也在抨击这门语言,就很鄙视看不起。没想到现在这么厉害了。以后打算有时间学习学习,做个人项目很棒啊。。但是听说国内用这个的不多,工作不太好找。

echo1937

echo1937   3 小时 11 分钟前

有没有一种工具是万能且通用的呢,比如瑞士军刀。

leafre

leafre   3 小时 10 分钟前

0101011010101010101010

Clarke

Clarke   3 小时 8 分钟前 via Android

Python 这种脚本语言还是算了吧,有也可能是 C 、C++和 Rust 这种的

kerro1990

kerro1990   3 小时 7 分钟前

xwhxbg

xwhxbg   3 小时 2 分钟前

有啊,rust 上可当 react 写网页,下可 no-std 撸驱动

industryhive

industryhive   3 小时 1 分钟前

java,java 可以写后端,可以写客户端,可以写中间件(数据库、搜索引擎),可以写大数据平台,可以写嵌入式,未来也可能写操作系统,也可以作为查询语言替代 sql 。

ReferenceE

ReferenceE   3 小时 1 分钟前 via Android

@onice C#国内没人用,想做先跑路

fgwmlhdkkkw

fgwmlhdkkkw   3 小时 0 分钟前

industryhive

industryhive   2 小时 57 分钟前

@Clarke c/c++/rust 适合写小型系统,越大型的系统越不适合使用它们写。最关键的原因是 c/c++/rust 没有 JIT,在运行效率方面比不上有 JIT 的语言,比如 java

snw

snw   2 小时 54 分钟前 via Android

大部分通用编程语言都是图灵完备的。
所有已知的图灵完备系统都是图灵等价的。

理论上你确实只要学一门语言就能做任何事,只有适合与不适合的差别。
如果一门语言容易做所有事情,那它本身就是极其复杂的;如果一门语言本身不很复杂,那么它只容易做某些事情。

jeeyong

jeeyong   2 小时 50 分钟前

那个....Python 可以做移动端..kivy

yazinnnn

yazinnnn   2 小时 42 分钟前

kotlin 正在尝试

kmm,jvm,js,kotlin-native

想干的事很多,就怕步子太大扯到蛋

clf

clf   2 小时 41 分钟前

那么问题来了,我在 Java 里定义了一个 String 对象,对象里放的是 html 的代码,这个对象属于 java 语言的一部分还是 html ?
我用 Java 的 js 解释器跑了一个'consolo.log("hello world")',这时候这玩意算 java 的代码还是 js 。

rioshikelong121

rioshikelong121   2 小时 41 分钟前

大部分高级语言都可以干这些事情。问题只在于基础设施。

lechain

lechain   2 小时 25 分钟前 via Android

@industryhive kernel:???

linyuyizhizou

linyuyizhizou   2 小时 19 分钟前

可以,但是没必要。

tanranran

tanranran   2 小时 16 分钟前

C# 没有之一

zjsxwc

zjsxwc   2 小时 2 分钟前 via Android

transpiler 了解下,楼主的问题全不是问题

industryhive

industryhive   2 小时 0 分钟前

@lechain 像 Windows 、Linux 这种客户端软件很可能是 C/C++能开发的最大的单体软件,规模再大的软件很可能就不适合了。

atpking

atpking   2 小时 0 分钟前

瞧不起二进制?

TAFMT

TAFMT   1 小时 54 分钟前

zwgf

zwgf   1 小时 54 分钟前

javascript

cmdOptionKana

cmdOptionKana   1 小时 45 分钟前

一个简单的真理:在特定场景,通用的工具必然不如专用工具。

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

这就是没有一个万能语言的原因。

xarthur

xarthur   1 小时 7 分钟前 via iPhone

楼主提到的 Java C++ Python Javascript 就是通用编程语言啊。
这些语言都是图灵等价的,表达能力的上限是相同的,不存在某个语言能写,另一个语言就不能写的情况。
至于为什么不能用 Python 写 App,实际上可以的,你可以写一个 object-c 和 python 之间的 bridge 就能写了。
至于为什么没人这么干,这是商业问题不是技术问题,答案也很简单,没什么必要,商业上也划不来。
不要想着有这种学一门编程语言就够了,至少得会个 6 们以上的编程语言吧。

charlie21

charlie21   41 分钟前

首先,这么好的东西,它肯定贵
其次,它贵 就会有人寻找便宜的近似替代品
第三,有人就会制造出近似替代品,它就会在喜欢便宜货的人群之中流传开

以上三点是唯一物品和唯一物品替代物出现的原因,商品社会里没有意外。商品社会常识就是这样。当你有了无可替代的理由并彻底堵死 “近似替代物” 机会,就会出现无可替代的唯一物品

lostpglostpg   11 分钟前 via Android

@industryhive cc cpp rust 虽然没有 jit,但你也不能看不起人家 aot 的性能优化吧。。

industryhive

industryhive   1 分钟前

@lostpg AOT 性能优化上限不如 JIT,并且 java 也不是不能 AOT,现在 java 只能 AOT 和 JIT 二选一,但是说不定未来哪一天 java 可以实现先 AOT 编译再 JIT 运行。

Recommend

  • 39

    当今唯有超级计算机才有足够的计算能力来应对科学研究中那些最顶尖的挑战,但在这些超级机器上进行编程却很艰难,这对科学探索而言是一种阻碍。 几十年前,计算机也曾成本昂贵、操作复杂、数量稀少。而个人电脑(PC)的革命改变了...

  • 20
    • www.kingkk.com 4 years ago
    • Cache

    Tomcat中一种半通用回显方法

    前段时间和@lufei 大哥学习了一波Linux下基于文件描述符的反序列化回显方式的思路。 在自己实现的过程中发现,是通过IP和端口号的筛选,从而过滤出当前线程(也可以说是请求)的文件描述符,进而加入回显的内容。 但是...

  • 13

    随着走向成熟的以太坊 Layer-2 解决方案多了起来,ENS 也要能为整个生态系统提供服务,同时让 ENS 用户能够获得 Layer-2 解决方案给他们带来的效率提升。自

  • 6

    一种C#读写二进制文件的通用方法 在日常的工作中,我们经常需要进行一些二进制文件或协议的读写操作,...

  • 5

    颜色标记法-一种通用且简明的树遍历方法 - 二叉树的中序遍历 - 力扣(LeetCode)颜色标记法-一种通用且简明的树遍历方法

  • 5

    关于“如何将自己写的LLVM Pass集成到NDK中”这个问题,目前网上并没有很完美的方法,并且大多数已经过时。史上最优雅的NDK加载pass方案此贴中提出的方法也很麻烦,在我看来并不算太“优雅”。经过我的一番折腾,...

  • 4

    【几百KB的小工具】万能通用合同生成器(同时可做 收据收条 送货单 发货单等) 查看: 1252|回复: 21

  • 4
    • wwj718.github.io 1 year ago
    • Cache

    一种通用的可视化订阅服务

    这篇也是脑洞系列,属于我觉得好玩、分析后认为技术上可行、但限于时间或精力没去做的事,分享出来,有兴趣的小伙伴可以去折腾 我有很多想法,只差一个程序员啦 先前的工作

  • 2

    一种通用的jquery动画滚屏方案 原创 在网站页面上,点击某个超链接,页面跳转到某个...

  • 3

    Toki Pona:一种只有约 120 个单词的通用语言 Toki pona 是一种围绕语言尽可能简单理念而设计的Conlangs(人工语言)。除了 Toki P...

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK