离 Nim 1.0 正式版发布不远了,官方论坛说,基本上以现在 0.17.0 为语法雏形,语法不再大改动了,要改也改 bug 和编译 y 引擎了,四大用户群 Python 、C、Pascal、javascript 都不放过。

2017-07-07 17:20:16 +08:00
 ajeef

Nim 语言:Pascal 的语法,Python 的缩进

http://nim-lang.org/

德国人 Andreas Rumpf 的作品,原因是他对过去使用的每种语言都不满意( Pascal 也不满意?)。以前叫 Nimrod 语言,从 0.96 版本开始改名为 Nim。它在 2008-08-22 发布了第一个公开版本 0.6.0,也是第一个可以自编译的版本。目前处于 pre-1.0 阶段。从 1.0 开始将不会再有不兼容的语法(breaking changes)。它的其中一个目标是,保证编译器尽可能的有效,几乎与 C/C++速度一样快。它的 asyncdispatch 模块允许你做有效的 Web 服务器程序,并且内建线程池。

它有以下特点(仅举例一小部分): 1.并发模型 2.深度拷贝 3.procCall 得到多个相似方法 4.experimental 模块化 5.编译器支持混合语法:Objective C / C++ / C,通过 importCpp 和 importObjc 导入 6.使用自动证明技术,自动并发多线程,而不需要锁 7.生成原生代码,不需要虚拟机。自带快速垃圾收集器。 8.可以直接操作硬件 9.内建动态方法,并可以没有 VPT 虚拟表 10.自动删除无效代码 11.可运行于 Windows, Linux, BSD and Mac OS X,但只提供了二进制 Windows 版本下载,其它平台要自己编译。 12.Nim 可以产生 C++或者 Objective C 的代码 13.已经绑定到 GTK2, the Windows API, the POSIX API, OpenGL, SDL, Cairo, Python, Lua, TCL, X11, libzip, PCRE, libcurl, mySQL and SQLite

最最关键的,它的 FAQ 中提到:为什么要再发明一门新语言?回答是:Nim 是非常稀少的可编程静态类型语言,它可以产生原生二进制代码(这样的语言甚至更少),不需要运行库和解释器。

其次关键的,是根据什么语言的影响来设计的?回答是:按照顺序:Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon

第三关键的,它采用 MPL 许可证,目前托管于 GITHUB 上,大家可以任意修改和 fork。

它是如此受欢迎以至于《 Unix in Rust 》的作者为它放弃了 Rust。Rust 是 Mozilla 主导开发的系统级编程语言。

作者很聪明,知道自己发明一门新语言和编译器,要用时间去累计生态库,于是直接将最终代码,编译成 C、或者 javascript 运行。

9056 次点击
所在节点    程序员
31 条回复
victor
2017-07-08 08:39:38 +08:00
语言的名字 Nimrod -> 尼玛的?
yanzixuan
2017-07-08 09:01:22 +08:00
@sagaxu elixir 干活要用到 OTP 的库,最后还得老老实实把 eralang 过一遍。不然你都不知道这些库是怎么玩的。
hjc4869
2017-07-08 09:31:44 +08:00
没强大好用的调试工具大项目不好做
生成的 C 代码也不是人类可读的
k9982874
2017-07-08 09:42:36 +08:00
说的好,我选择 golang
andrewhxism
2017-07-08 09:50:42 +08:00
又一个轮子
nyfwan123
2017-07-08 10:28:38 +08:00
PHP:我不是针对谁,在座的各位都是...
dodo20120
2017-07-08 11:19:42 +08:00
小众语言全无视了,第三方库太少,不停地要自己造轮子
tempdban
2017-07-08 11:27:30 +08:00
那为啥不用 golang
neugls
2017-07-08 11:53:16 +08:00
NIM 就是另一个 haxe, 要搞全平台,推荐 haxe: http://haxe.org. 并发, 后端, 就直接 golang 了
ipwx
2017-07-08 11:55:53 +08:00
神丑陋的一个混血产物。
ostholz
2017-07-08 16:58:17 +08:00
@wdhwg001 同样看好 Crystal

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/373781

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX