写点什么

多语言和 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:271002
用户头像

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

关注

评论

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

零信任的用户行为分析: 通过综合策略解锁安全洞察力(二)

天翼云开发者社区

安全 零信任 环境感知

Databend 推出 BendDeploy:一站式可视化管控平台,重塑数据库私有化运维体验

编程猫

为什么自动化测试总在凌晨崩溃?90%工程师不知道的AI脚本陷阱

测试人

人工智能

DNS缓存投毒是怎么回事?怎么预防?

国科云

FunProxy - 使用 Rust 构建跨平台全链路测试抓包代理工具

vivo互联网技术

效率 rust 测试 代理 抓包工具

低代码如何赋能前沿科技,打造智能企业生态

天津汇柏科技有限公司

人工智能 低代码

质量管理是干啥的?QA、QC、QE有啥不一样?

积木链小链

质量管理 数字化转型 智能制造 生产管理

和 Mint 一起了解 SuperStacks:开启 Superchain 激励的全新范式

NFT Research

NFT web3

AI工具的普及,让程序员面临当下的应聘困境

Nackydeng

个人感悟 程序员求职 大模型 求职面试 大厂招聘

从“制造”到“智造”,落地新质生产力的关键

科技热闻

零信任的用户行为分析: 通过综合策略解锁安全洞察力(三)

天翼云开发者社区

安全 零信任 行为感知

低代码云MES、轻量级部署、让智造更简单

万界星空科技

制造业 mes 云 原生云 CTO 云mes 低代码云MES

通义灵码添加上下文能力怎么用?一篇看懂

阿里云云效

通义灵码

区块链ETF软件的核心功能

北京木奇移动技术有限公司

区块链技术 软件外包公司 区块链ETF

区块链RWA软件的技术方案

北京木奇移动技术有限公司

区块链技术 软件外包公司 区块链RWA

掌握Multi-Agent实践(一):使用AgentScope实践入门和Workstation上手指南

汀丶人工智能

Agents

荣誉|奇点云荣登“2025杭州准独角兽企业榜单”

奇点云

AI 数据 大模型 专精特新 独角兽

即时通讯APP遭遇DDoS攻击怎么解决

网络安全服务

CDN 服务器 即时通讯IM 高防IP DDoS 攻击

rust程序静态编译的两种方法总结

电子尖叫食人鱼

rust 后端

FinClip赋能中国应用破浪全球:跨端降本增效引领出海新纪元

xuyinyin

AI 时代:程序员的史诗级转型与未来发展

代码制造者

AI编程

B2B 电商 API 实战:1688 平台实时商品数据采集接口对接指南

代码忍者

比较入站和出站防火墙规则

运维有小邓

日志分析 日志审计 防火墙工具 防火墙日志管理

Gitee推荐项目!埋点+用户分析系统,适合中小团队的开源方案

ClkLog

开源 SaaS 埋点 用户行为分析 画像

CST软件散射近场提取和散射截面-法诺共振球

思茂信息

cst CST软件 CST Studio Suite

小红书笔记评论API接口(附代码示例)

tbapi

小红书API 小红书笔记评论接口 小红书笔记内容采集 小红书笔记评论api

最近爆火的MCP究竟有多大魅力?MCP开发初体验|得物技术

得物技术

mcpserver

通义灵码添加上下文能力怎么用?一篇看懂

阿里巴巴云原生

通义灵码

PWA与小程序技术架构差异及出海布局策略

xuyinyin

区块链ETF软件的技术方案

北京木奇移动技术有限公司

区块链技术 软件外包公司 区块链ETF

【FAQ】HarmonyOS SDK 闭源开放能力 — PDF Kit

HarmonyOS SDK

harmoyos

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