<cite id="ffb66"></cite><cite id="ffb66"><track id="ffb66"></track></cite>
      <legend id="ffb66"><li id="ffb66"></li></legend>
      色婷婷久,激情色播,久久久无码专区,亚洲中文字幕av,国产成人A片,av无码免费,精品久久国产,99视频精品3
      網易首頁 > 網易號 > 正文 申請入駐

      這個沒落的編程語言,無意間改變了全球程序員的命運!

      0
      分享至

      2016年,一個叫 left-pad 的小工具被刪除,整個 JavaScript 生態瞬間癱瘓。

      你能想象嗎?這場“網絡災難”的源頭,能一直追溯到 1995 年,那個被遺忘的編程語言——Perl,以及它發明的包管理系統CPAN。

      01

      CPAN的誕生

      Perl是一門古老的編程語言。

      Larry Wall發明Perl的時候,目的非常單純,幫助自己做“報告生成和日志分析”。

      所以他賦予了Perl無以倫比的文本處理能力,特別適合處理正則表達式、日志文件、配置文本等。

      Perl也不是為了優雅,而是為了“快速地搞定事情”,所以它的表達能力、信息壓縮能力非常強。

      Larry說:“做一件事不止一種方法”,鼓勵程序員用自己舒服的方式寫代碼。

      于是有些Perl大師就寫出了這樣的代碼:

      #!/bin/perl -s-- -export-a-crypto-system-sig -RSA-3-lines-PERL
      $m=unpack(H.$w,$m."\0"x$w),$_=`echo "16do$w 2+4Oi0$d*-^1[d2%Sa
      2/d0 $n %0]SX$k"[$m*]\EszlXx++p|dc`,s/^.|\W//g,print
      pack('H*',$_)while read(STDIN,$m,($w=2*$d-1+length$n&~1)/2)

      短短的幾行代碼就實現了RSA算法!

      當時美國政府有嚴格的加密技術出口管制,有人將這幾行代碼印到了T恤上,于是T恤衫就變成了禁止出口的“軍火”。

      如果穿著它離開美國,將被處以高額罰款和10年監禁。

      1993年,Marc Andreessen發明了Mosaic瀏覽器,網頁開始真正流行起來。

      為了增加網頁的動態性,有人提出了CGI腳本,可以在服務器端執行,根據用戶的輸入產生動態內容。

      例如留言板,還有訪問計數器:

      CGI程序員可以用各種語言編寫,最早是用C語言,但很快大家就發現Perl更合適,因為CGI主要在處理HTML文本,正好是Perl擅長的領域。

      早期的互聯網是免費分享的天堂,大家建立了郵件列表,通過郵件的方式分享各種各樣的Perl腳本。

      Perl腳本多了以后,郵件分享就不方便了,有些“囤積者”就把自己收集的代碼放到個人FTP站點上讓大家下載。

      FTP站點多了以后,有人就想:大家應該合并資源啊!要不然重復代碼很多,找起來很麻煩。

      最初,大家整理了一個列表,列出Perl模塊的名稱和下載地址,像這樣:

      張大胖寫的計數器:ftp://xxx.xxx.xxx

      趙鐵蛋寫的留言板:ftp://xxx.xxx.xxx

      叫什么名稱呢?有人提議“CPAN”(Comprehensive Perl Archive Network),靈感來自CTAN,即TeX和LaTex的代碼庫。(嗯,看來這才是真正的老祖宗)。


      后來大家覺得用個人的FTP服務器不好,萬一down機了,就無法下載了,干脆集中到一起吧。

      有兩個人Andreas J. K?nig 和 Jarkko Hietaniemi,建立了一個叫PAUSE(Perl Author’s Upload Server)的東西,即Perl作者上傳服務器。

      每個人都可以在這個服務器上注冊,上傳自己的Perl模塊。

      系統建立了一棵分類樹,從原先按人名和文件簡單分組,變成了“數據庫模塊”、“用戶界面模塊”、“文件處理模塊”等等,這樣大家找代碼更方便了。

      從此以后,用Perl做事,大家第一想到的是CPAN,因為那里有所有模塊。如果找不到,也許你可以做一個再上傳。

      Perl 5發布以后,CPAN上的代碼和模塊激增。

      到 1999 年,每個月大約有 200 個包發布到 CPAN。到了 2001 年,這個數字超過了 500 個。

      Perl成了首個擁有超大集中開源代碼庫的語言,CPAN成了一個強大的生態系統。

      不過,還有一個問題還沒有解決:每個月都有這么多的新模塊上傳,還有成千上萬的模塊更新,怎么才能確定它們沒有問題呢?

      一般的Perl模塊都包含測試代碼,用戶把模塊下載以后可以測試,并且反饋是“通過”還是“失敗”。

      但是不可能讓每個用戶都這么干,于是CPAN設計了一個自動化的方案:志愿者可以貢獻機器,這些機器會自動下載模塊,運行測試,然后把結果傳到一個叫CPAN Testers的網站。

      用戶只需要到網站上一看,就知道哪個模塊在哪些系統上運行正常。

      這其實就是一個全球分布式的持續集成系統(CI),如今CI很常見,但是很少有包管理系統像CPAN Tester那樣,能利用志愿者的電腦,分布式地完成Perl代碼跨版本、跨環境的測試。

      Perl社區確實太了不起了!

      從CPAN的發展歷史來看,是自然而然,水到渠成的事情,Perl適合寫CGI腳本,后來又是LAMP的重要一員,在互聯網早期非常流行,用戶眾多,隨著分享代碼需求的出現,CPAN這這么一步步地成熟了。

      02

      "感染"其他語言

      Perl語法靈活,Perl社區黑客精神非常濃厚,這些都是好事兒,但是對很多人來說,門檻就有點高了。

      2000年左右,有著更清晰語法,更現代面向對象的Python和Ruby崛起,Perl終于讓出了王者寶座。

      很多Perl程序員轉入Python和Ruby陣營,也把Perl的優秀理念給帶來過來。

      2003年,Python的包管理器PyPI對外發布。

      2004年,Ruby的包管理器RubyGems對外發布。

      而Java經過了10年發展以后,也通過Maven在2004年建立了自己的中央倉庫。

      隨后,CPAN就像病毒一樣,感染了各個編程語言,JavaScript、Go、PHP、Rust都有了自己的包管理系統。

      它甚至入侵了微軟,.NET,也建立了NuGet作為包管理系統。

      這其中以JavaScript的npm最嚇人,我看到2023年的一個數據,說npm有300多萬個軟件包!

      JavaScript特別自由奔放,特別推崇“一包一事”,鼓勵將功能高度拆分為獨立模塊,哪怕只是幾個字符的功能。

      這導致了很多“微型”“極簡”的軟件包,其中只有幾行甚至一行代碼。

      例如判斷一個數字是否是偶數:is-even

      module.exports = function(n) {
         return n % 2 === 0;
      };

      還有最為知名的,讓真個互聯網都顫抖的left-pad:

      它的作者Azer不但寫了left-pad,還寫了其他273個軟件包,是npm一個相當大的貢獻者。

      這273個軟件包中有一個叫做kik,這個名稱和加拿大一家叫做Kik Interactive的公司相同,這家公司要求Azer Ko?ulu放棄對kik的控制權,因為該公司擁有Kik商標。

      Azer當然不愿意放棄,回復了一個 fuck you 的郵件就不搭理他了。

      沒想到Kik公司找到了npm的CEO,也是創始人 Isaac Schlueter ,注意,npm和CPAN不同,這是一家商業實體,是要盈利的。

      Kik威脅說要起訴npm,Isaac Schlueter怕了,就把所有權給了Kik公司。

      Azer Ko?ulu看到npm竟然站在對方那一邊,一氣之下把自己的273個軟件包都刪除了,其中就包括left-pad。

      這一下子捅了馬蜂窩,因為別看left-pad很簡單,卻是JavaScript的一個核心包。

      Babel在用它,Webpack在用它,React也在用它,left-pad被下載使用了1500萬次!

      left-pad被刪除,“整個互聯網被摧毀了”!

      所以你看,集中式軟件包管理給程序員們帶來了無數的便利,但一旦出事兒,就是大事兒。

      03

      缺席的C和C++

      有意思的是,C/C++一直沒有流行的包管理系統。

      2008 年,Linux內核開發者Rusty Russell在開源開發者大會 和CPAN 管理員Adam Kennedy偶然相遇,相談甚歡,回去以后就創建了CPAN的C語言版本 :CCAN(Comprehensive C Archive Network)。

      但是CCAN從來沒有流行起來,倒是微軟,在2016年創建了vcpkg這個C和C++的包管理系統,收錄了2613個知名軟件包,還有JFrog創建的Conan,也有幾千個,這規模完全無法和 npm 或 pip 那種“幾百萬包、全民使用”的盛況相比。

      C/C++ 是現在這個狀況,我覺得可能有這么兩個原因:

      1.語言設計哲學不同

      C 和 C++ 強調底層控制、編譯獨立性和平臺適配性,給了程序員最大程度的控制權。

      它們不是“一站式生態”,而是允許開發者自由決定怎么構建和鏈接依賴。

      所以大家都是手動下載源碼包、makefile、自定義構建。

      2.二進制兼容性難以統一

      腳本語言(如 Python、JavaScript)模塊多為純文本,天然跨平臺。

      而 C/C++ 的模塊多是靜態鏈接庫(.a/.lib)和動態鏈接庫(.so/.dll),這意味著編譯器(gcc、clang、MSVC)不一致會導致兼容性問題,不同平臺、架構、選項會生成不同的二進制文件,即使源代碼一致,也可能因構建參數不一而行為不同。

      這極大增加了構建和分發的復雜性,也使得標準化包管理器難以一統江湖。

      C/C++ 沒有統一包管理器,可能不是一種“現代開發者習慣”的友好體驗,但卻是一種“系統編程者文化”的真實寫照。

      04

      總結

      Perl 可能早已退出了主流舞臺,但它無意間種下的種子——CPAN,首次定義了“集中式代碼共享”的范式,讓程序員們不再孤軍奮戰,而是能夠站在彼此的肩膀上協作創新。

      它激發了Python的 PyPI,啟發了 RubyGems,影響了Java的 Maven,甚至在JavaScript中演化成了如今世界最大的軟件倉庫 npm。

      毫不夸張地說,整個編程世界的生態,全球程序員的工作方式,被Perl永久地改寫了。

      全文完,覺得不錯的話就點個贊或者在看吧!

      特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。

      Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

      相關推薦
      熱點推薦
      罕見!女足主帥米利西奇因熱身賽下課:37歲陳婉婷再次落選

      罕見!女足主帥米利西奇因熱身賽下課:37歲陳婉婷再次落選

      邱澤云
      2025-12-14 17:22:22
      澳大利亞邦迪灘槍擊事件已致16死,槍手為一對父子

      澳大利亞邦迪灘槍擊事件已致16死,槍手為一對父子

      觀察者網
      2025-12-15 07:18:04
      王一博海釣釣出帝王鮭!喊 “baby” 道歉,抱魚像年畫笑翻全網

      王一博海釣釣出帝王鮭!喊 “baby” 道歉,抱魚像年畫笑翻全網

      阿廢冷眼觀察所
      2025-12-15 01:12:42
      罰球準絕殺!詹姆斯對噴狄龍完勝!湖人拒絕逆轉,東契奇29+6

      罰球準絕殺!詹姆斯對噴狄龍完勝!湖人拒絕逆轉,東契奇29+6

      體壇小李
      2025-12-15 12:16:40
      生娃基本不花錢!明年力爭全國實現!

      生娃基本不花錢!明年力爭全國實現!

      看看新聞Knews
      2025-12-15 10:28:03
      阿隆索:皇馬需要狀態持續性

      阿隆索:皇馬需要狀態持續性

      體壇周報
      2025-12-15 11:33:13
      朱丹回金華老家,穿水靴割茭白弄一身泥,吃大碗“豬油面”很滿足

      朱丹回金華老家,穿水靴割茭白弄一身泥,吃大碗“豬油面”很滿足

      心靜物娛
      2025-12-15 09:46:52
      寧波通報患兒手術后離世

      寧波通報患兒手術后離世

      新京報
      2025-12-14 20:06:30
      日本記者挑釁:南京30萬你們數了?李連杰當場反問一句,他立馬閉嘴,提到了日本至今都抬不起頭的7萬女人公案

      日本記者挑釁:南京30萬你們數了?李連杰當場反問一句,他立馬閉嘴,提到了日本至今都抬不起頭的7萬女人公案

      歷史回憶室
      2025-12-11 18:47:11
      彩虹-7,首飛成功!

      彩虹-7,首飛成功!

      第一財經資訊
      2025-12-15 09:23:41
      外教杰森告別北京國安:這份情感將永遠存在,國安永遠爭第一

      外教杰森告別北京國安:這份情感將永遠存在,國安永遠爭第一

      懂球帝
      2025-12-15 08:29:03
      常遇春把兵符交予朱元璋,回府對心腹說:帳下四千鐵騎在城郊埋伏

      常遇春把兵符交予朱元璋,回府對心腹說:帳下四千鐵騎在城郊埋伏

      朝暮書屋
      2025-12-12 18:28:28
      就在今天!12月15日凌晨,傳來王曼昱、張本智和、樊振東最新消息

      就在今天!12月15日凌晨,傳來王曼昱、張本智和、樊振東最新消息

      皮皮觀天下
      2025-12-15 04:44:46
      柬埔寨是世界最貧窮的國家之一,但統治該國的洪森家族卻富可敵國

      柬埔寨是世界最貧窮的國家之一,但統治該國的洪森家族卻富可敵國

      大道無形我有型
      2025-09-05 11:31:52
      中國女游客在日本泡溫泉混進偽娘,因沒胸部暴露,酒店的回應讓人氣炸!

      中國女游客在日本泡溫泉混進偽娘,因沒胸部暴露,酒店的回應讓人氣炸!

      日本物語
      2025-12-14 20:43:30
      9000mAh!新機官宣:搭載天璣9500e+1.5K直屏!

      9000mAh!新機官宣:搭載天璣9500e+1.5K直屏!

      科技堡壘
      2025-12-14 12:05:40
      34歲張稀哲將重返國足?主帥邵佳一直接給出回應,球迷直呼意外!

      34歲張稀哲將重返國足?主帥邵佳一直接給出回應,球迷直呼意外!

      羅掌柜體育
      2025-12-15 09:36:04
      土媒:32歲的伊卡爾迪目前年薪1000萬歐元,米蘭難以負擔

      土媒:32歲的伊卡爾迪目前年薪1000萬歐元,米蘭難以負擔

      懂球帝
      2025-12-14 21:30:11
      小泉進次郎與美防長通話照被指“擺拍”,日本網民諷刺:表演也得拿根筆吧

      小泉進次郎與美防長通話照被指“擺拍”,日本網民諷刺:表演也得拿根筆吧

      環球網資訊
      2025-12-13 18:46:46
      曼城3-0輕取水晶宮!福登回暖謝爾基成“新丁丁”,阿森納壓力大

      曼城3-0輕取水晶宮!福登回暖謝爾基成“新丁丁”,阿森納壓力大

      里芃芃體育
      2025-12-15 11:10:15
      2025-12-15 12:28:49
      碼農翻身 incentive-icons
      碼農翻身
      有趣且硬核的技術文章
      207文章數 596關注度
      往期回顧 全部

      科技要聞

      平價數碼產品,要和我們說再見了?

      頭條要聞

      巨頭裁員史無前例 員工發現同事"消失":杯子還在桌上

      頭條要聞

      巨頭裁員史無前例 員工發現同事"消失":杯子還在桌上

      體育要聞

      戰勝完全體雷霆,馬刺“瘋狂動物城”只是半成品

      娛樂要聞

      黃綺珊在何晴去世首發,10年悄悄祈福

      財經要聞

      新會陳皮亂象曝光:產地造假、年份速成

      汽車要聞

      奔馳小G諜照,或搭混動或燃油動力

      態度原創

      教育
      親子
      家居
      公開課
      軍事航空

      教育要聞

      補課的孩子,在為誰努力?

      親子要聞

      這孩子

      家居要聞

      溫潤質感 打造干凈空間

      公開課

      李玫瑾:為什么性格比能力更重要?

      軍事要聞

      澤連斯基稱烏方已妥協不加入北約 俄方發聲

      無障礙瀏覽 進入關懷版 主站蜘蛛池模板: 久久精品国产99国产精品| 中文字幕久久久久人妻中出| 亚洲综合欧美在线一区在线播放 | 91资源总站| 人妻少妇嫩草被猛烈进入无码蜜桃| 日韩老无码| 在线免费熟女| 精久视频| 亚洲?日韩?中文?无码?制服| 满城县| 91丨九色丨人妻丨白浆| 欧美成人免费全部| 久久久久无码国产精品不卡| 人妻无码一区二区三区四区 | 国产无码免费| 无码簧片| 中文字幕日日夜夜| 亚洲韩欧美第25集完整版| 国产精品久久久久久爽爽爽| 久久伊人蜜桃av一区二区 | 中文字幕av无码一区二区三区| 2021国产精品一卡2卡三卡4卡| 亚洲va在线va天堂xx xx| 亚洲国产性夜夜综合| 蜜芽久久人人超碰爱香蕉| 欧美顶级metart祼体全部自慰| 国产360激情盗摄全集| 亚洲成人网在线| 91在线公开视频| 报价| 麻豆tv入口在线看| 少妇高潮喷水久久久影院| 亚洲?欧美?自拍?另类?日韩?人妻| 爆乳2把你榨干哦ova在线观看| 人人妻一区二区三区| 欧美自拍亚洲综合丝袜| 久久久久无码国产精品不卡| 裸体丰满白嫩大尺度尤物| 国产日韩综合av在线| 亚洲黑人av| 楚雄市|