当前位置: 首页 > 科技观察

Perl指导委员会谈论增长战略:Perl7不会很快

时间:2023-03-12 06:17:12 科技观察

随着Perl5.36的到来,Perl指导委员会在博客上介绍了Perl语言的当前发展战略和未来计划,同时还回答了一些问题。经常问的问题。谁在决定Perl的发展方向?2020年6月,Perl正式宣布了Perl7的计划。Perl7的一个关键思想是通过启用许多广泛使用的模块/编译指示来减少代码顶部所需的样板,但这将以破坏为代价一些向后兼容性。这个想法引发了很多热烈的讨论,一些人认为抛弃Perl的“向后兼容性”的关键优势是一个非常糟糕的想法,而另一些人则认为坚持旧的方式会更好。这些讨论引出了另一个新问题:谁有权决定Perl的发展方向和具体计划?原作者拉里·沃尔?但是他已经将近20年没有参与Perl的开发了。最终,社区讨论并创建了一个新的治理结构:对Perl5贡献最大的核心团队选出了三人,由三人组成的PerlSteeringCommittee(PSC)拥有最终决策权Perl的未来。Perl目前的发展策略2020年底选出了第一届PSC,随后为Perl制定了如下策略:现有合理编写的Perl5代码应继续在未来的Perl版本下运行(继续保持向后兼容性)。但有时这是不可能的,例如某些安全漏洞可能需要向后兼容性破坏性更改才能修复。推动语言向前发展并提高引入新功能的速度。因此引入了RFC过程,任何人都可以使用它来提议对Perl语言进行更改。让人们更容易使用这些新功能。该策略的核心是功能保护和版本包捆绑。FeatureGuards如果一个新的语言特性不向后兼容,它就会受到“featureguards”的保护。例如,Perl5.010引入了say关键字。但是默认是不能开启的,因为可能有人在代码中有say函数,new关键字会与之冲突。所以需要使用featurepragma(pragmafunction):usefeature'say';说“你好,世界”;但并非所有新语言功能都受到保护。如果新语法在所有旧版本的Perl中导致语法错误,则不需要守卫。例如,Perl5.36.0引入了新的语法,允许一次处理列表中的N个项目:foreachmy($key,$value)(%hash){...}Lineuse(i.e.priortousev5.36).版本捆绑Perl5.36.0引入了版本捆绑功能,解决了Perl长期被诟病的“样板”问题。该功能只是将这一行放在代码的顶部:usev5.36;这一行等同于之前:requirev5.36;使用严格;使用警告;使用功能“说”;使用特征“状态”;使用功能“current_sub”;使用功能“fc”;使用功能“lexical_subs”;使用特征“签名”;使用功能“isa”;使用功能“bareword_filehandles”;使用“按位”功能;使用功能“evalbytes”;;使用功能“unicode_eval”;使用功能“unicode_strings”;没有“间接”特征;没有“多维”特征;也就是说,版本包捆绑功能可以让开发者使用简单的usev...;实现这些效果的语句:告诉perl解释器和人类读者当前代码需要perl5.36.0或更高版本才能运行;支持当前版本的Perl提供的所有非实验性功能;使用许多已被广泛实践的附加编译指示。此功能大大减少了代码顶部编写的样板文件的数量,解决了Perl长期存在的问题。Perl7怎么了?目前,Perl的计划是继续引入新功能并解决所有现有的实验性功能,无论是已删除的还是非实验性的(包含在发布包中)。在未来的某个时候,Perl指导委员会可能会决定,将这些新功能放在一起,代表了足够大的进步,足以证明Perl的新方向。如果发生这种情况,那么Perl版本将升至7.0。我们在工作中有很多好主意,如果我们能保持去年的势头,那么事情看起来很有希望。同时,我们将继续发布5.XX版本。(图片大师?)即使Perl版本将升级到7.0,Perl7仍然默认向后兼容Perl5-你必须使用v7;在代码的顶部使用V7的所有新功能。感兴趣的朋友可以移步PerlSteeringCommittee的博客进一步阅读。本文转自OSCHINA文章标题:PerlSteeringCommittee谈发展战略:Perl7这么快发布地址:https://www.oschina.net/news/197534/what-happened-to-perl-7

猜你喜欢