自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Perl 指導(dǎo)委員會(huì)談發(fā)展戰(zhàn)略: Perl 7 沒那么快發(fā)布

開發(fā)
隨著 Perl 5.36 即將發(fā)布,Perl 指導(dǎo)委員會(huì)在一篇博客中談?wù)摿?Perl 語言當(dāng)前的發(fā)展策略以及未來的發(fā)展計(jì)劃,同時(shí)也解答了一些常見的問題。

隨著 Perl 5.36 即將發(fā)布,Perl 指導(dǎo)委員會(huì)在一篇博客中談?wù)摿?Perl 語言當(dāng)前的發(fā)展策略以及未來的發(fā)展計(jì)劃,同時(shí)也解答了一些常見的問題。

誰在決定 Perl 的方向?

2020 年 6 月,Perl 官方宣布 Perl 7 計(jì)劃。Perl 7 的一個(gè)關(guān)鍵想法是通過啟用許多廣泛使用的模塊 / 編譯指示,來減少代碼頂部所需的樣板,但這將以破壞一些向后兼容性為代價(jià)。

該想法引發(fā)了很多激烈的討論,有些人認(rèn)為拋棄 Perl 的關(guān)鍵優(yōu)勢(shì) “向后兼容性” 是非常糟糕的想法,另一些人則認(rèn)為墨守成規(guī)得不到更好的發(fā)展。

這些討論引發(fā)了另一個(gè)新問題:誰有權(quán)利決定 Perl 的發(fā)展方向和具體計(jì)劃?原作者 Larry Wall ?但他已經(jīng)有近 20 年沒有參與 Perl 的開發(fā)了。最終,社區(qū)在討論之后創(chuàng)建了一個(gè)新的治理結(jié)構(gòu) :為 Perl 5 作出最多貢獻(xiàn)的核心團(tuán)隊(duì)通過選舉推出三個(gè)人,這三個(gè)人組成的 Perl 指導(dǎo)委員會(huì) (PSC) 擁有 Perl 未來的最終決策權(quán)。

Perl 當(dāng)前發(fā)展戰(zhàn)略

第一屆 PSC 在 2020 年底當(dāng)選,隨后為 Perl 制定了如下的戰(zhàn)略:

  • 現(xiàn)有的合理編寫的 Perl 5 代碼應(yīng)該能在未來的 Perl 版本下繼續(xù)運(yùn)行(繼續(xù)保持向后兼容性)。但有時(shí)這是不可能的,比如某些安全漏洞可能需要破壞向后兼容性的更改才能修復(fù)。
  • 推動(dòng)語言向前發(fā)展,提高引入新功能的速度。所以引入了 RFC 流程,任何人都可以使用該流程來對(duì) Perl 語言提出修改。
  • 讓人們更容易使用這些新功能。

該策略的核心是功能保護(hù)和版本包捆綁。

特性保護(hù)

如果一個(gè)新的語言特性不能向后兼容,那么它就會(huì)受到 “特性保護(hù)” 的保護(hù)。比如 ,Perl 5.010 引入了 say 關(guān)鍵字。但默認(rèn)情況下無法啟用它,因?yàn)橛腥丝赡茉诖a中有一個(gè) say 函數(shù),那么新的關(guān)鍵字就會(huì)與之沖突。因此需要用到 feature pragma (編譯指示功能):

use feature 'say';
say "hello, world";

但并不是所有的新語言特性都有保護(hù)。如果新的語法,在所有舊版本的 Perl 中都會(huì)導(dǎo)致語法錯(cuò)誤,那么就不需要保護(hù)了。例如,Perl 5.36.0 引入了新的語法,允許一次從一個(gè)列表中處理 N 項(xiàng):

foreach my ($key, $value) (%hash) {

}

這個(gè)新語法沒有特性保護(hù),所以可以在第 0 行使用 (即在 use v5.36 之前)。

版本包捆綁

Perl 5.36.0 引入了版本包捆綁(Version bundles)功能,解決了 Perl 被詬病已久的 “樣板文件” 問題。該功能只需將這一行放在代碼頂部:

use v5.36;

這一行相當(dāng)于以前的:

  require v5.36;
use strict;
use warnings;
use feature 'say';
use feature 'state';
use feature 'current_sub';
use feature 'fc';
use feature 'lexical_subs';
use feature 'signatures';
use feature 'isa';
use feature 'bareword_filehandles';
use feature 'bitwise';
use feature 'evalbytes';
use feature 'postderef_qq';
use feature 'unicode_eval';
use feature 'unicode_strings';
no feature 'indirect';
no feature 'multidimensional';

也就是說,版本包捆綁功能,讓開發(fā)者使用簡(jiǎn)單的 use v...; 語句即可達(dá)成這些效果:

  • 告訴 perl 解釋器和人類讀者,當(dāng)前代碼需要 perl 5.36.0 或更高版本才能運(yùn)行;
  • 支持當(dāng)前版本 Perl 提供的所有非實(shí)驗(yàn)性功能;
  • 使用了許多已被廣泛實(shí)踐過的附加編譯指示。

該功能極大地減少了在代碼頂部編寫的樣板文件,解決了 Perl 這個(gè)詬病已久的問題。

Perl 7 咋樣了?

目前,Perl 的計(jì)劃是繼續(xù)引入新功能,并解決所有現(xiàn)有的實(shí)驗(yàn)性功能,實(shí)驗(yàn)性功能要么被刪除,要么成為非實(shí)驗(yàn)性功能(包含在版本包捆綁中)。

在未來的某個(gè)時(shí)候,Perl 指導(dǎo)委員會(huì)可能會(huì)認(rèn)為:這些新的功能加在一起,代表了一個(gè)足夠大的進(jìn)步,足以證明 Perl 的新方向是正確的。如果發(fā)生這種情況,那么 Perl 版本將被提升到 7.0。

我們有很多好的想法在工作中,如果我們能夠保持去年的勢(shì)頭,那么事情看起來很有希望。與此同時(shí),我們將繼續(xù)發(fā)布 5.XX 版本。(畫餅大師?)

即使 Perl 版本將被提升到 7.0,默認(rèn)情況下 Perl 7 仍將向后兼容 Perl 5 —— 必須將 use v7; 放在代碼頂部,才能使用 V7 所有新功能。

感興趣的朋友可以移步 Perl 指導(dǎo)委員會(huì)的博客作進(jìn)一步閱讀。

本文轉(zhuǎn)自O(shè)SCHINA

本文標(biāo)題:Perl 指導(dǎo)委員會(huì)談發(fā)展戰(zhàn)略: Perl 7 沒那么快發(fā)布

本文地址:https://www.oschina.net/news/197534/what-happened-to-perl-7

責(zé)任編輯:未麗燕 來源: OSCHINA
相關(guān)推薦

2010-02-26 23:17:41

2010-07-13 13:15:17

Perl

2010-07-15 09:10:08

Perl函數(shù)手冊(cè)

2010-07-23 14:12:14

Perl Hash

2010-07-26 13:27:19

Perl多線程

2010-07-26 14:45:17

Perl Hash

2010-07-21 11:17:30

2010-07-21 13:43:30

Perl數(shù)組

2010-07-20 13:02:08

Perl數(shù)組

2010-07-26 15:17:51

Perl解析XML文件

2010-07-26 15:06:29

Perl解析XML文件

2010-07-26 16:23:23

Perl語言

2010-07-21 10:32:05

Perl函數(shù)返回值

2010-07-26 09:32:41

Perl命令行

2010-07-26 10:09:01

Perl split函

2010-07-23 13:23:10

Perl語言

2010-07-23 12:23:49

Perl基礎(chǔ)

2010-07-21 10:05:13

Perl文本處理模塊

2010-07-21 14:18:27

Perl函數(shù)

2010-07-19 10:01:57

Perl函數(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)