AICon上海|与字节、阿里、腾讯等企业共同探索Agent 时代的落地应用 了解详情
写点什么

多语言和 DSLs 会使 Java 成为最后的大语言吗?

  • 2008-05-24
  • 本文字数:1126 字

    阅读完需:约 4 分钟

Ola Bini 说这个世界不会再有新的大(big)语言了,因为开发者要根据其问题域来选择不同的语言。同样,Martin Folwer 说开发者选择语言的根据是它能做什么,就像他们选择框架一样。另一方面,Joe Winchester 说你只能精通一种语言。

Ola Bini 在一篇最近发表的文章中详细分析了 Haskell、Java 和 Ruby 的类型系统的优劣,对这些语言进行比较并非不可能,但却很难

现在我们有三种语言。一种静态检查较强,比如 Haskell。一种静态检查较弱,比如 Java。还有一种是动态检查的,如 Ruby。从我的角度来说,他们分别善于不同的方面。甚至在同一个领域里他们都不会互相竞争。对他们进行比较真的没有什么太大意义。

Ola在多语言中找到了希望

一个优秀的程序员通过其判断来提供最佳值。这包括为工作选择最佳的语言。如果 Ruby 使你能用比 Java 快 5 倍的速度完成同样的功能,你需要考虑一下这是否可接受。另一方面,Java 的 IDE 使得维护变得很简单,但是通过使用 Ruby 代码,你需要维护的代码量只有 Java 的五分之一。这种交换可接受吗?有些情况下,是的。

最后他建议:

成为优秀的通晓多种语言的程序员。这个世界不会再有新的大语言了,你需要调整思维适应这个环境。

Joe Winchester 在 Java 开发者杂志上给出了一个不同的视角。他相信:

你只可能精通一门语言——如果什么都会,那其实就是什么都不会。

Joe 回想起 Smalltalk 社区所做的尝试:让 Java 运行在他们的虚拟机上(Universal Virtual Machine——UVM),这一切简直就是一场噩梦。

最后他说:

我们需要完善 Java,而不是对 VM 做一些手脚,更不是仅仅为了适应几年前就已不存在的语言而徒增复杂性。

如果我们不把 Java 看做一门语言,而仅仅看做是一些“Java 技术”之类的东西的话,那么我们正在用其他语言来减弱 Java 的能力,并提高了构建优秀软件的成本。

另一方面,Martin Folwer 也提到我们可能正在走进这样一个时期:

我们看到项目中使用了多种语言,开发者选择语言的根据是它能做什么,就像他们选择框架一样。

他说自从 SmallTalk 之后已经发生了很多变化

我们难道回退到 80 年代晚期和 90 年代初期那种语言争论的时代了吗?我想我们将看到多语言的争论,但这有一个很重要的区别。在 80 年代晚期,语言之间很难实现紧密的交互。现在人们将很多精力放在使得不同语言能紧密交互的环境构建上。脚本语言本来就与 C 有着密切的关系。人们投入了大量精力实现 JVM 和 CLR 平台的交互。人们在库的构建上花费了大量时间以使语言能忽略它们的不同。

去年在 InfoQ 上有一篇文章讨论到 DSLs 是否会终结单语言开发

你的想法如何?多语言和 DSLs 会占据主导地位,从而不给新的“下一代的大语言”留下任何余地吗?

查看英文原文: Will Polyglotism and DSLs make Java the Last Big Language?

2008-05-24 08:27928
用户头像

发布了 88 篇内容, 共 266.6 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

AntDB数据库与鼎甲科技完成产品互认证,共筑数据安全防线

亚信AntDB数据库

AntDB AntDB数据库

计算机网络——媒体接入控制的基本概念

StackOverflow

编程 计算机网络 9月月更

存储资源盘活系统,“盘活”物联网架构难题(上)

天翼云开发者社区

Netty高性能之Reactor模型

C++后台开发

后台开发 reactor 多线程 网络io模型 C++开发

易观分析对《上海市促进人工智能产业发展条例》的解读

易观分析

人工智能 上海

知识经济时代的基石:知识协同

Baklib

SaaS时代,您的企业与团队需要知识管理工具

Baklib

AntDB入选《爱分析:2022数据智能厂商全景报告》

亚信AntDB数据库

AntDB AntDB数据库

数据中台打造企业数据能力组件中心

元年技术洞察

数据中台 SaaS服务应用 PaaS平台化能力

千亿流量并发治理!Alibaba实战Sentinel笔记,为微服务保驾护航

Geek_0c76c3

Java 数据库 开源 程序员 架构

企业知识管理怎样做?一些解决方案分享!

Baklib

led显示屏的合理亮度很有必要

Dylan

LED显示屏 全彩LED显示屏 led显示屏厂家

一文读懂“云游戏”

Finovy Cloud

人工智能 云渲染 云游戏

分布式系统中自适应统计信息收集策略

KaiwuDB

【redis】Redis cluster是AP架构还是CP架构?

非晓为骁

redis 分布式架构 redis cluster 分布式理论

为什么说企业需要实施知识管理?

Baklib

聊一聊新陈代谢

小鲸数据

创新 新陈代谢

荣耀开发者平台全面升级,加强分发场景服务与能力开放

荣耀开发者服务平台

开发者 手机 安卓 荣耀 honor

双非二本程序员,年近30,5年间在大厂中横跳,工资翻了三番

程序知音

Java java面试 后端技术 秋招 Java面试八股文

MySQL查询数据库表记录数

源字节1号

AX200NGW//2×2.4GHz 2x5GHz MT7915 MT7975 //AR9582 2x 2 900M 802.11an//network card//wallys

wallys-wifi6

MT7915 AX200NGW AR9223

架构三原则学习心得

Jack

架构 #架构训练营

区块链商城dapp系统开发,代币模式定制

开发微hkkf5566

javascript 高级编程 之 Array 用法总结

hellocoder2029

Vue

仅靠一文便火爆全网!开源阿里绝密800页JDK源码笔记:霸榜GitHub

Geek_0c76c3

Java 数据库 程序员 架构 开发

架构---作业1

李某人

架构实战营

数据中台与数据平台有什么区别?

雨果

数据中台 数据平台

英特尔发力“系统级代工”,为芯片制造带来全新可能

科技之家

计算机网络——媒体接入控制——静态划分信道

StackOverflow

编程 计算机网络 9月月更

计算机网络——点对点协议PPP

StackOverflow

编程 计算机网络 9月月更

健康信息化不断建设——2022年8月互联网医疗月度观察

易观分析

医疗

多语言和DSLs会使Java成为最后的大语言吗?_Java_Dio Synodinos_InfoQ精选文章