美文网首页Raku Programming Language大数据
Perl 6 - 编程未来是什么样的?

Perl 6 - 编程未来是什么样的?

作者: 焉知非鱼 | 来源:发表于2016-09-30 18:58 被阅读127次

    PERL 6: 编程未来长什么样?

    作者: Zoffix Znet

    HASH SOME PASSWORDS

    use Crypt::Bcrypt;
    my @passes = rand.Str xx 32;
    
    my @hashes;
    for @passes {
        @hashes.push: bcrypt-hash $^pass, :15rounds;
    }
    say @hashes;
    

    运行花费了 63 秒

    要使我们的程序多线程化需要多少行额外的代码?

    地球上还没有任何语言能比 Perl 6 做得更好!

    我们不需要额外的代码行, 只要两个单词就够了!

    多线程

    use Crypt::Bcrypt;
    my @passes = rand.Str xx 32;
    
    my @hashes;
    for @passes {
        @hashes.push: start bcrypt-hash $^pass, :15rounds;
    }
    say await @hashes;
    

    在代码中添加两个额外的单词就比原来快了 2,000%。

    但是等等, 我还有话说!

    单线程

    use Crypt::Bcrypt;
    my @passes = rand.Str xx 32;
    
    my @hashes = @passes.map: {bcrypt-hash $^pass, :15rounds};
    say @hashes;
    

    多线程

    use Crypt::Bcrypt;
    my @passes = rand.Str xx 32;
    
    my @hashes = @passes.race.map: {bcrypt-hash $^pass, :15rounds};
    say @hashes;
    

    但是再等等, 我还要再唠两句!

    这是 HYPER 运算符: »

    @bunch-of-things».call-this-method-on-every-item;
    

    短点!

    use Crypt::Bcrypt;
    my @passes = rand.Str xx 32;
    say @passes».&bcrypt-hash: :15rounds;
    

    再短点!

    use Crypt::Bcrypt;
    say (rand.Str xx 32)».&bcrypt-hash: :15rounds;
    

    但是我们所有的核心怎样了呢?

    • 2016: 单线程化
    • 2018: 自动线程化

    让编译器来解决这个东西。

    有很多很酷的东西关于:
    并发/PARALLELIZM/异步/PROMISES/SUPPLIES/CHANNELS/JUNCTIONS/FEEDS
    它门都是语言自身的一部分(而非模块)!

    编程未来是什么样的呢? 更多核心。更多的 Perl 6.

    相关文章

      网友评论

        本文标题:Perl 6 - 编程未来是什么样的?

        本文链接:https://www.haomeiwen.com/subject/mhcryttx.html