<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          官宣已兩年,Perl 7咋樣了?

          共 2236字,需瀏覽 5分鐘

           ·

          2022-06-09 23:00

          不點(diǎn)藍(lán)字關(guān)注,我們哪來(lái)故事?

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

          誰(shuí)在決定 Perl 的方向??

          2020 年 6 月,Perl 官方宣布 Perl 7 計(jì)劃。Perl 7 的一個(gè)關(guān)鍵想法是通過(guò)啟用許多廣泛使用的模塊 / 編譯指示,來(lái)減少代碼頂部所需的樣板,但這將以破壞一些向后兼容性為代價(jià)。
          該想法引發(fā)了很多激烈的討論,有些人認(rèn)為拋棄 Perl 的關(guān)鍵優(yōu)勢(shì) “向后兼容性” 是非常糟糕的想法,另一些人則認(rèn)為墨守成規(guī)得不到更好的發(fā)展。
          這些討論引發(fā)了另一個(gè)新問(wèn)題:誰(shuí)有權(quán)利決定 Perl 的發(fā)展方向和具體計(jì)劃?原作者 Larry Wall ?但他已經(jīng)有近 20 年沒(méi)有參與 Perl 的開(kāi)發(fā)了。最終,社區(qū)在討論之后創(chuàng)建了一個(gè)新的治理結(jié)構(gòu)?:為 Perl 5 作出最多貢獻(xiàn)的核心團(tuán)隊(duì)通過(guò)選舉推出三個(gè)人,這三個(gè)人組成的 Perl 指導(dǎo)委員會(huì)?(PSC) 擁有 Perl 未來(lái)的最終決策權(quán)。

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

          第一屆 PSC 在 2020 年底當(dāng)選,隨后為 Perl 制定了如下的戰(zhàn)略:
          1. 現(xiàn)有的合理編寫(xiě)的 Perl 5 代碼應(yīng)該能在未來(lái)的 Perl 版本下繼續(xù)運(yùn)行(繼續(xù)保持向后兼容性)。但有時(shí)這是不可能的,比如某些安全漏洞可能需要破壞向后兼容性的更改才能修復(fù)。
          2. 推動(dòng)語(yǔ)言向前發(fā)展,提高引入新功能的速度。所以引入了 RFC 流程,任何人都可以使用該流程來(lái)對(duì) Perl 語(yǔ)言提出修改。
          3. 讓人們更容易使用這些新功能。
          該策略的核心是功能保護(hù)版本包捆綁。
          • 特性保護(hù)
          如果一個(gè)新的語(yǔ)言特性不能向后兼容,那么它就會(huì)受到 “特性保護(hù)” 的保護(hù)。比如?,Perl 5.010 引入了?say?關(guān)鍵字。但默認(rèn)情況下無(wú)法啟用它,因?yàn)橛腥丝赡茉诖a中有一個(gè) say 函數(shù),那么新的關(guān)鍵字就會(huì)與之沖突。因此需要用到 feature pragma (編譯指示功能):
              use feature 'say';
          say "hello, world";

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

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

          }
          這個(gè)新語(yǔ)法沒(méi)有特性保護(hù),所以可以在第 0 行使用 (即在??use v5.36?之前)。
          • 版本包捆綁
          Perl 5.36.0 引入了版本包捆綁(Version bundles)功能,解決了 Perl 被詬病已久的 “樣板文件” 問(wèn)題。該功能只需將這一行放在代碼頂部:
              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';
          也就是說(shuō),版本包捆綁功能,讓開(kāi)發(fā)者使用簡(jiǎn)單的 use v...;? 語(yǔ)句即可達(dá)成這些效果:
          • 告訴 perl 解釋器和人類讀者,當(dāng)前代碼需要 perl 5.36.0 或更高版本才能運(yùn)行;
          • 支持當(dāng)前版本 Perl 提供的所有非實(shí)驗(yàn)性功能
          • 使用了許多已被廣泛實(shí)踐過(guò)的附加編譯指示。
          該功能極大地減少了在代碼頂部編寫(xiě)的樣板文件,解決了 Perl 這個(gè)詬病已久的問(wèn)題。

          Perl 7 咋樣了?

          目前,Perl 的計(jì)劃是繼續(xù)引入新功能,并解決所有現(xiàn)有的實(shí)驗(yàn)性功能,實(shí)驗(yàn)性功能要么被刪除,要么成為非實(shí)驗(yàn)性功能(包含在版本包捆綁中)。
          在未來(lái)的某個(gè)時(shí)候,Perl 指導(dǎo)委員會(huì)可能會(huì)認(rèn)為:這些新的功能加在一起,代表了一個(gè)足夠大的進(jìn)步,足以證明 Perl 的新方向是正確的。如果發(fā)生這種情況,那么 Perl 版本將被提升到 7.0。

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

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


          END



          若覺(jué)得文章對(duì)你有幫助,隨手轉(zhuǎn)發(fā)分享,也是我們繼續(xù)更新的動(dòng)力。


          長(zhǎng)按二維碼,掃掃關(guān)注哦

          ?「C語(yǔ)言中文網(wǎng)」官方公眾號(hào),關(guān)注手機(jī)閱讀教程??

          瀏覽 97
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日韩毛片免费看 | 久久久久黄色 | 中文字幕第三十页 | 中文人妻无码一区二区三区不卡 | 操高中生到高潮在线观看免费 |