写点什么

Clojure 1.8 提升了性能和开发体验

  • 2016-01-29
  • 本文字数:991 字

    阅读完需:约 3 分钟

2016 年 1 月初,身为 Clojure 社区主要开发者之一的 Alex Miller宣布了Clojure 的最新版本。Clojure 1.8 的主要新特性包括“直链(Direct Linking)”、字符串函数和套接字服务器。此外,它还包含一些小的改进及30 多项Bug 修复。

Clojure 是原始 Lisp 编程语言的一种现代化方言,初次出现是在 2007 年 10 月,第一个稳定版本于 2009 年发布。从那时起,Clojure 就大体上保持着每年一个版本的发布节奏。不过,最新评论表明,其目标是每6 个月发布一个新版本

这三个主要的新特性之间没有关联,但是它们为Clojure 用户带来了很大的好处。一方面,直链使用户可以直接静态调用其他函数,与使用普通的两步间接调用相比,提升了性能。而且,这还使JVM 可以通过JIT(Just In Time)编译优化代码。这种方法的其中一个缺点是方法丧失了动态性,因此,方法无法在执行过程中重定义。不过,用户可以使用元数据“^redef”注解任意函数,从而有选择地关闭该标识。在1.8 版本中,Clojure 核心中所有函数的这个标识在默认情况下都是打开的。

另一方面,该版本新增了多个原生字符串函数:index-of、last-index-of、starts-with?、ends-with? 和includes?。此前,这类功能只能直接调用Java 的String 方法(通过名为 Java Interop 的 Java 原生代码交互工具)。与直链的目标相反,新增的字符串函数的运行效率实际上比现有的可选方案略低。不过,这些函数简化了开发,使得该特性以 29 票的得票数成为 Clojure JIRA 任务中最受欢迎的任务之一。这些函数也添加到了 ClojureScript 中。

最后,新增的套接字服务器功能使开发人员可以为任何 Clojure 应用程序创建一个套接字服务器,只需要简单地在命令行或配置文件中提供一个函数名作为参数。该功能配以新增的 clojure.core.server/repl 函数,可以用于同一个正在运行的、用于调式或开发目的的应用程序交互,因为 REPL 模块能够在运行时查看变量甚至重定义函数。不过,这个特性不大可能用在生产环境中,这主要有两个方面的原因:一是开放一个可以同正在运行的应用程序进行交互的服务器,明显会让人有安全上的担忧;二是如果启用直链(如果关注性能,那么就可能启用),那么方法重定义就无法使用了,这会削弱 REPL 服务器的价值。

除了这些特性外,Clojure 1.8 还包含许多其他的变更,感兴趣的读者可以查看官方的发布说明

查看英文原文: Clojure 1.8 Improves Performance and Development Experience

2016-01-29 18:003002
用户头像

发布了 1008 篇内容, 共 374.4 次阅读, 收获喜欢 341 次。

关注

评论

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

Fine-Tuning: 精调大模型训练的关键步骤

百度开发者中心

大模型

京东商品评论数据接口(JD.item_review)

tbapi

京东API接口 京东商品评论接口 京东商品评论内容接口 京东评论API接口

XSKY SDS V6.3 版本发布:持续强化非结构化存储和管理能力

XSKY星辰天合

大模型微调:适应新任务的强大工具

百度开发者中心

深度学习 大模型 Prompt

LLAMA预训练:大模型的潜力与挑战

百度开发者中心

人工智能 深度学习 大模型

科学启智,AI赋能:AI for Science塑造多学科研究新范式

飞桨PaddlePaddle

人工智能 开发者 AI for Science WAVE SUMMIT

人工智能与测试开发自动化沙龙(PPT和回放集锦)

霍格沃兹测试开发学社

IPQ6010 vs. IPQ4019: The battle of Qualcomm chips and WIFI 6 vs WIFI 5

wallysSK

云原生技术:实践探索与未来展望

不会算法。

如何通过ETLCloud的API对接功能实现各种SaaS平台数据对接

RestCloud

SaaS API ETL

个人年度总结:大模型驱动技术的趋势洞察

Geek-yan

解析$nextTick魔力,为啥大家都爱它?

京东科技开发者

软件测试/测试开发丨名企私教服务加盟全栈开发与自动化测试班

测试人

人工智能 软件测试

得物商家域精准测试实践

得物技术

测试

法线贴图实现地形模型皱褶、凹凸不平的纹理效果

3D建模设计

3D渲染 材质纹理贴图

法线贴图实现衣服上皱褶特效

3D建模设计

3D渲染 材质纹理体贴 3D材质编辑

《环太平洋》流浪者机甲3D模型特效还原

3D建模设计

3D渲染 材质纹理贴图 3D材质编辑

一分钟带你了解人工神经网络(ANN)

小齐写代码

IPQ8074/IPQ8072 What's the performance difference?|8X8 4X4 High Performance 802.11ax Solution

wallyslilly

IPQ8072 IPQ8074

万界星空科技铜线MES、漆包线MES系统

万界星空科技

生产管理系统 智能制造 mes 漆包线mes 铜线mes

万界星空MES系统的十大核心功能

万界星空科技

数字化转型 MES系统 智能制造 mes 万界星空科技mes

如何将 Python 项目打包成 exe,另带卸载功能!

北桥苏

Python GUI pyinstaller tkinter Inno Setup Compiler

瑶池数据库Serverless+AI训练营开营啦,参营享千元好礼

阿里云瑶池数据库

数据库 Serverless 阿里云; 阿里云瑶池数据库

GLTF/GLB模型在线预览、编辑、动画查看以及材质修改

3D建模设计

3D渲染 材质纹理贴图 3D材质编辑

DxO PureRAW for Mac v3.8.0中文激活版(RAW照片处理器)

影影绰绰一往直前

只需一个bitget钱包,让你的web3体验翻倍

威廉META

软件测试/测试开发|测试开发线下高薪私教班助力你的职场晋升

霍格沃兹测试开发学社

软件测试/测试开发 | 测试开发线下高薪私教班助力你的职场晋升

测试人

人工智能 软件测试

开放原子开发者大会 | 开源就是国际化,华为大力推动开源社区建设

新消费日报

只需一个bitget钱包,让你的web3体验翻倍

鳄鱼视界

如何优化 RAG 系统的性能表现?10 条实用策略

Baihai IDP

深度学习 程序员 AI 白海科技 rag

Clojure 1.8提升了性能和开发体验_Java_Abraham Marín Pérez_InfoQ精选文章