• 请不要在回答技术问题时复制粘贴 AI 生成的内容
ajeef
V2EX  ›  程序员

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

  •  1
     
  •   ajeef · Jul 7, 2017 · 9493 views
    This topic created in 3257 days ago, the information mentioned may be changed or developed.

    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 运行。

    31 replies    2017-07-08 16:58:17 +08:00
    XhstormR
        1
    XhstormR  
       Jul 7, 2017 via Android
    这么 6 ?简直不敢相信
    ctsed
        2
    ctsed  
       Jul 7, 2017 via Android
    吃惊
    Cooky
        3
    Cooky  
       Jul 7, 2017 via Android
    没有大厂支撑能走到这一步确实牛逼
    Chingim
        4
    Chingim  
       Jul 7, 2017 via Android
    这么强,那缺点是什么?
    hljjhb
        5
    hljjhb  
       Jul 7, 2017 via Android
    暂且信个三分,回头仔细看下
    AngelCriss
        6
    AngelCriss  
       Jul 7, 2017 via Android   ❤️ 2
    @王垠
    如何掌握所有的程序语言
    http://www.yinwang.org/blog-cn/2017/07/06/master-pl
    LokiSharp
        7
    LokiSharp  
       Jul 7, 2017   ❤️ 1
    那么,代价是什么呢?
    likai
        8
    likai  
       Jul 7, 2017 via iPhone
    刚好正在关注这个语音言
    KeepPro
        9
    KeepPro  
       Jul 7, 2017 via Android
    为啥非要缩进呢 就是因为这个放弃 python 的。
    hwwh1999
        10
    hwwh1999  
       Jul 7, 2017
    关注这个语言!
    ltm
        11
    ltm  
       Jul 7, 2017
    @AngelCriss 王垠回国了!和他的猫一起
    tkpc
        12
    tkpc  
       Jul 7, 2017
    缺点是 debug 工具几乎没有.
    痛苦的
    最好要熟悉 C,这样有问题能及时的通过编译后的.c 发现
    wdhwg001
        13
    wdhwg001  
       Jul 7, 2017 via iPhone
    不错,但我选择 Crystal,使用 LLVM 的编译型的 Ruby,今年也在奔向 1.0。
    Nim 是我见过的第二个源码自动加密的复杂语言,第一个是 perl。
    Nim 支持的目标很多,但太多了,又缺乏足够完整的抽象,使得 Nim 在很多情况下过于底层,说不好听的就像其他语言的方言一样,参考那段 JavaScript 代码。
    Chingim
        14
    Chingim  
       Jul 7, 2017
    @wdhwg001 像这类语言, 定位是什么呢? 现代 C 吗
    CYKun
        15
    CYKun  
       Jul 8, 2017 via Android   ❤️ 1
    @AngelCriss 王垠竟然会推荐 JavaScript 做入门语言,不禁让我怀疑我以前看到的都是假王垠
    wdhwg001
        16
    wdhwg001  
       Jul 8, 2017 via iPhone   ❤️ 1
    @Chingim 不,Crystal 是一个去除了一部分 Ruby 影响性能的特性的语言,目标应该仍然是愉悦优先。
    但是,Crystal 可以让你愉悦的同时,一定程度的维持很高的执行效率。
    wdhwg001
        17
    wdhwg001  
       Jul 8, 2017 via iPhone
    @Chingim 至于 Nim,它的粉丝觉得这个世界都应该是 Nim 化的,Nim 是如此棒以至于可以转换到任何其他的辣鸡语言,并借此高高在上的伸出一只手拯救那些语言的码农们。
    mathgl
        18
    mathgl  
       Jul 8, 2017
    @Chingim 用的人少。
    lzhr
        19
    lzhr  
       Jul 8, 2017
    sagaxu
        20
    sagaxu  
       Jul 8, 2017 via Android
    @wdhwg001 那么 elixir 呢?亲近 Ruby 的语法,数倍的性能,天然支持高并发,成熟可靠的 otp
    victor
        21
    victor  
       Jul 8, 2017
    语言的名字 Nimrod -> 尼玛的?
    yanzixuan
        22
    yanzixuan  
       Jul 8, 2017   ❤️ 1
    @sagaxu elixir 干活要用到 OTP 的库,最后还得老老实实把 eralang 过一遍。不然你都不知道这些库是怎么玩的。
    hjc4869
        23
    hjc4869  
       Jul 8, 2017 via iPhone
    没强大好用的调试工具大项目不好做
    生成的 C 代码也不是人类可读的
    k9982874
        24
    k9982874  
       Jul 8, 2017 via iPhone
    说的好,我选择 golang
    andrewhxism
        25
    andrewhxism  
       Jul 8, 2017
    又一个轮子
    nyfwan123
        26
    nyfwan123  
       Jul 8, 2017
    PHP:我不是针对谁,在座的各位都是...
    dodo20120
        27
    dodo20120  
       Jul 8, 2017
    小众语言全无视了,第三方库太少,不停地要自己造轮子
    tempdban
        28
    tempdban  
       Jul 8, 2017 via Android
    那为啥不用 golang
    neugls
        29
    neugls  
       Jul 8, 2017
    NIM 就是另一个 haxe, 要搞全平台,推荐 haxe: http://haxe.org. 并发, 后端, 就直接 golang 了
    ipwx
        30
    ipwx  
       Jul 8, 2017
    神丑陋的一个混血产物。
    ostholz
        31
    ostholz  
       Jul 8, 2017
    @wdhwg001 同样看好 Crystal
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5452 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 99ms · UTC 08:06 · PVG 16:06 · LAX 01:06 · JFK 04:06
    ♥ Do have faith in what you're doing.