AICon 深圳站 Keynote 嘉宾官宣!共探AI价值转化的实践路径 了解详情
写点什么

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

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

关注

评论

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

AI教育大模型及其应用

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

AI教育 AI技术开发 软件外包公司

开源能源管理系统:筑牢企业安全自主可控防线​

开源能源管理系统

开源 能源管理

测试开发工程师AI智能体通关秘籍,15年大厂架构师手把手教学!

测试人

Blu-ray Player Pro Mac 支持播放完整的蓝光菜单,蓝光光盘,ISO镜像

Rose

如何实现空间分布变化的材料设置 --- 2

思茂信息

cst CST软件 CST Studio Suite

ISO 50002能源审计标准与MyEMS开源能源管理系统

开源能源管理系统

开源 能源管理

为什么用了代理IP后访问网站还是被拒绝了?

kookeey代理严选

代理商 海外IP代理 动态代理IP 配置IP 静态住宅IP

YashanDB数据库常见问题及其解决方案

数据库砖家

me2025媒体编码Media Encoder 2025系统要求及安装包下载-mac/win

Rose

chemdraw2023激活码 附详细安装教程

Rose

AI阅读APP的主要功能

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

软件外包公司 APP外包公司 AI阅读

揭秘混合休闲手游爆款制造机 Supersonic:3 分钟征服用户的“黄金FTUE”设计法则

极客天地

Aloudata 诚挚招募合作伙伴:携手共创数据智能新未来

Aloudata

人工智能 数据分析 ETL agent

DeepSeek+低代码,或许才是To B企业的正确打开方式!

优秀

低代码 DeepSeek

微擎生态驱动的数字化内容阅读

微擎应用市场

App Uninstaller for Mac(mac软件卸载工具)

Geek贝

详解鸿蒙Next仓颉开发语言中的全屏模式

幽蓝计划

Grafana与MyEMS的比较分析

开源能源管理系统

开源 能源管理

微擎生态驱动的内容数字化管理平台

微擎应用市场

开发实践,通过融云 IM + Dify 实现 AI 机器人

融云 RongCloud

Navicat Data Modeler Ess for Mac(数据库建模与设计工具)中文版

Geek贝

客户案例 | 某大型综合性券商借助白鲸开源产品打造全链路智能调度与数据集成平台

白鲸开源

DataOps 证券行业 白鲸开源 WhaleStudio WhaleScheduler

大数据-16-Hive HiveServer2 HS2 允许客户端远程执行HiveHQL HCatalog

武子康

大数据 hadoop hive Hive SQL

Cornerstone for Mac(SVN管理工具)

Geek贝

Mac 软件

YashanDB数据库常见问题解答:解决用户疑虑

数据库砖家

微擎生态驱动的全场景 IM 社交与商业赋能平台

微擎应用市场

Spring Boot 启动优化实践

vivo互联网技术

Java 性能优化 后端 spring-boot SpringBoot启动流程

用好 JUnit 5 的高级特性:提升单测效率和质量

xiaoxi666

Java 单元测试 JUnit 测试 单元测试 junit5

远程跨屏共享黑科技:细数三款热门远控软件里的神奇功能

小喵子

远程 远程控制 向日葵 ToDesk TeamViewer

图挖掘在反作弊场景的应用

百度Geek说

亮点满满,龙蜥社区走进中兴通讯 MeetUp 即将举办

OpenAnolis小助手

开源 AI 操作系统 龙蜥社区 龙蜥meetup

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