Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 免费视频99,欧美日韩在线视频专区免费,免费大片黄在线观看日本

          整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          chm轉換為html的超簡單方法

          Windows下chm轉換為html的超簡單方法(反編譯CHM文件的方法)

          通過調用Windows命令,將chm 文件轉換為html 文件。

          方法:

          命令行(cmd),輸入hh -decompile <輸出文件夾路徑> <要反編譯的CHM文件全路徑名>

          例如:

          win+r 鍵,彈出運行窗口輸入命令cmd回車,然后輸入:

          hh -decompile D:/chm/target D:/chm/VC++6DOC.chm

          實例:

          復制代碼

          就會在目錄D:/chm/target 中生成相應的 html 文件。

          好了,如果你只轉換一個chm,那就不用看下面的了,如果批量的話就看下面的。

          如果有很多chm文件需要轉換,可以通過寫一個批處理bat文件:

          Chm文件放在同一個目錄中。

          例如如下的bat:

          for %%c in (D:/chm/*.chm) do hh.exe -decompile D:/chm/%%c D:/chm/%%c.chm

          將會把D:/chm目錄的所有chm文件都轉換到與chm文件名稱一樣的文件夾中去。

          過調用Windows命令,將chm 文件轉換為html 文件。

          方法:

          命令行(cmd),輸入hh -decompile <輸出文件夾路徑> <要反編譯的CHM文件全路徑名>

          例如:

          win+r 鍵,彈出運行窗口輸入命令cmd回車,然后輸入:

          CSDN 編者按】從日常生活中發現電梯軟件的系統崩潰,到將一個業余項目發展成為最受開發者喜愛的編程語言,這是全球開發者Graydon Hoare與Rust的一段奇妙故事。

          原文鏈接:https://www.technologyreview.com/2023/02/14/1067869/rust-worlds-fastest-growing-programming-language/

          未經授權,禁止轉載!


          作者 | Clive Thompsonarchive page 譯者 | 彎月

          出品 | CSDN(ID:CSDNnews)

          許多軟件項目的建立都是因為某個地方的某個程序員遇到了一個需要解決的問題。Graydon Hoare 的故事也源于此。


          Rust 誕生背景


          2006 年,Hoare 是一名 29 歲的計算機程序員,就業于開源瀏覽器公司 Mozilla。有一天,回到溫哥華的公寓,他發現電梯壞了,原因是電梯的軟件系統崩潰了。這已不是第一次發生這樣的事情。
          Graydon Hoare 住在 21 樓,想到要爬樓梯回家,他頓時感到很惱火:“我們這些從事計算機工作的人甚至無法制造出一部不會崩潰的電梯!”
          Graydon Hoare 知道,許多此類的崩潰都是由于程序使用內存的方式存在問題而造成的。電梯之類的設備內部的軟件通常是用 C++ 或 C 等語言編寫的,用這兩種語言編寫的代碼運行速度非常快,而且代碼非常緊湊。然而,問題在于,這兩種語言也很容易意外引入內存錯誤,這些錯誤會導致程序崩潰。根據微軟的估計,其代碼中 70% 的漏洞是由于使用這些語言編寫的代碼存在的內存錯誤造成的。
          對于大多數人而言,當知道自己需要爬到 21 樓時,都會很生氣,但也就僅此而已了。但 Graydon Hoare 決心為此做點什么。于是,他打開筆記本,開始設計一種全新的計算機語言,他希望這種語言能夠編寫出沒有內存錯誤、小而快的代碼。他將其命名為 Rust,英文單詞“rust”本是一種真菌,中文中叫植物銹病的不少都是這類真菌造成的,他說這個名字的寓意是:“為了生存而過度設計”。


          成為“最受程序員喜愛”的編程語言

          17 年后,Rust 發展成為了全球最熱門的新語言之一。有將近 280 萬程序員使用 Rust 編寫代碼,從微軟到亞馬遜,許多公司都將其視為未來的關鍵。聊天平臺 Discord 使用 Rust 來加速其系統,Dropbox 使用它來將文件同步到用戶的計算機,而 Cloudflare 使用它來處理超過 20% 的互聯網流量。
          在 Stack Overflow 的年度調查中,Rust 連續七年蟬聯“最受程序員喜愛”的編程語言。就連美國政府也在積極地推廣 Rust 軟件,將其作為確保流程更安全的一種方式。與許多成功的開源項目一樣,Rust 的發展也離不開社區的共同努力,現有數百名貢獻者仍在支持,其中許多是志愿者。Graydon Hoare 本人在 2013 年退出了該項目,很放心地將其移交給了其他工程師,包括 Mozilla 的核心團隊。
          創造一種新的計算機語言并不罕見。許多程序員都會利用業余時間建立一個小項目。但是,能夠在 JavaScript、Python 或 Java 等眾多流行的編程語言之中站穩腳跟,實屬罕見。


          C/C++ 的天然“大坑”


          為了理解 Rust 為何如此實用,我們應該深入了解編程語言對計算機內存的處理。
          簡單來說,你可以將計算機中的動態內存想象成一塊黑板。軟件運行時會不斷地在黑板上寫數據,記錄哪個數據保存到了哪里,并在不需要的時候將其擦除。但是,不同的計算機語言,管理這塊黑板的方式也不同。C 以及 C++ 等早期的語言傾向于賦予程序員很大的權力,讓他們來決定何時以及如何使用這塊黑板。這種能力很強大,代碼可以動態控制內存,加快軟件的運行速度。這就是為什么 C 和 C++ 常用于編寫“裸機”代碼,即直接與硬件交互。許多沒有 Windows 或 Linux 之類的操作系統的機器,比如透析機或收銀機等,都運行著這樣的代碼。(此外,C 和 C++ 之類的語言也用于更高級的計算:有時操作系統需要與硬件通信。Windows、Linux 和 MacOS 的內核都是用 C 語言編寫的。)
          雖然 C 和 C++ 的速度很快,但這是有代價的。編程人員需要仔細記錄寫入哪塊內存,以及何時擦除。如果不小心忘記刪除某些內容,結果會怎樣?可能會導致軟件崩潰,當軟件嘗試使用它認為是空的內存,但實際上其中已保存了數據,就會崩潰?;蛘撸@會成為非法用戶的入侵渠道。
          黑客會發現程序沒有正確清理內存,本應被清除的密碼或財務等信息仍然存在,他們就會偷偷攫取這些數據。隨著 C 和 C++ 代碼的規模增大,即便是程序員再細心,也可能會犯很多內存錯誤,從而導致軟件中 bug 累累。
          無人機公司 Fusion Engineering 的聯合創始人兼 Rust 庫團隊負責人 Mara Bos 表示:“在 C 或 C++ 中,你總是會擔心代碼隨時出現問題?!?/span>
          上個世紀 90 年代,Java、JavaScript 和 Python 等一系列語言開始流行。這些語言采取了完全不同的方法。為了減輕編程人員的壓力,這些語言使用“垃圾收集器”自動管理內存,這些組件會在軟件運行時定期清理內存。你可以編寫沒有內存錯誤的代碼。但缺點是失去了細粒度的控制。程序的執行速度也減慢了(因為垃圾收集占用了關鍵的處理時間)。用這些語言編寫的軟件需要使用更多的內存。因此,編程世界分成了兩大陣營。如果軟件需要快速運行或在嵌入式設備的微型芯片上運行,則選用 C 或 C++ 編寫更合適。如果是網絡應用程序或手機應用,則可以選用一種更新的、具有垃圾收集功能的語言。


          編程大佬紛紛加入 Rust


          Graydon Hoare 創建的 Rust 語言與上述這些方法有很大的不同。Rust 不需要程序員手動找出數據在內存中的位置,而是由語言本身來管理。但 Rust 對于如何在程序中使用或復制數據有許多嚴格的規則。程序員必須學習這些編程規則—— 比 Python 或 JavaScript 更繁瑣的規則。雖然編寫代碼的難度有所提高,但代碼是“內存安全的”,你無需擔心不小心插入致命的內存錯誤。最為重要的是,Rust 還將提供“并發安全”?,F代程序可以同時做多件事——并發,有時不同的線程會嘗試修改同一塊內存,而 Rust 的內存系統會阻止這種操作。
          在剛開始設計 Rust 時,Graydon Hoare 在 Mozilla 工作,已是一名擁有十多年軟件開發經驗的老程序員。起初,Rust 只是一個業余項目。Graydon Hoare 花了幾年時間來開發 Rust,當第一次向其他程序員展示這門語言時,收到的反饋褒貶不一。“有些人很熱情,而有些人則表示不喜歡,還說這門語言壓根不行,永遠沒機會使用?!?/span>
          然而,Mozilla 的高層卻對 Rust 很感興趣。他們認為,Rust 可以幫助他們構建更好的瀏覽器引擎。瀏覽器是非常復雜的軟件,出現內存錯誤的風險極高。
          Patrick Walton 也是 Mozilla 的一名員工,他也參與了 Rust 的開發工作。當初,Patrick Walton 放棄繼續攻讀編程語言博士的學位,并加入了 Mozilla。偶爾的一次機會,JavaScript 的創建者 Brendan Eich 把他拉進了 Mozilla 的一次會議:“我們在討論 Rust 的設計決策,你要不要來看看?”Patrick Walton 覺得 Rust 非常棒,于是,他開始和 Graydon Hoare 一起開發該語言。后來越來越多的工程師加入了他們的隊伍。當時的很多人,包括 Mozilla 的工程師 Niko Matsakis 和 Felix Klock,都有內存和編程語言相關的研究經驗。

          Patrick Walton Niko Matsakis Felix Klock Manish Goregaokar圖源:MITTechnologyReview

          2009 年,Mozilla 決定正式支持 Rust。該語言是完全開源的,而且其決策由創造者全權負責,不過 Mozilla 同意出錢資助幾位工程師。于是,Rust 小組占據了公司的一間會議室,Mozilla Research 的聯合創始人 Dave Herman 將其稱為“書呆子洞穴”,并在門外張貼了一個標志。在這之后的十年里,Mozilla 雇傭了十幾名工程師全職研究 Rust。
          Walton 回憶道:“每個人都覺得自己在從事一項偉大的事業。” 這種興奮延伸到了 Mozilla 的大樓之外。2010 年代初期,Rust 吸引了世界各個角落的科技志愿者,他們中的有些人在大型科技公司工作。其中一名主貢獻者是德國的一名高中生。2010年,Mozilla 在加拿大不列顛哥倫比亞省舉行會議,Eich 發表了關于實驗性語言的演講,他說:“如果你對編程語言充滿了興趣,就一定要試試看 Rust?!?/span>


          確認 Rust 核心,程序運行更快,更安全

          2010 年代初期,Mozilla 的工程師和世界各地的 Rust 志愿者逐漸打磨出了 Rust 的核心:內存的管理方式。他們創建了一個“所有權”系統,一個數據只能由一個變量引用,這大大降低了內存出問題的風險。Rust 的編譯器會嚴格執行所有權規則。如果編程人員違反這些規則,編譯器將拒絕編譯代碼,也不會將其變成可運行的程序。
          Rust 使用的許多技巧都算不上新穎,Manish Goregaokar 是 Rust 開發人員工具團隊的負責人,早年曾在 Mozilla 工作,他表示:“大多是幾十年前的研究”。但 Rust 工程師善于發現這些設計概念,并將它們轉化為實用的功能。
          隨著這個團隊不斷改進內存管理系統,逐漸地 Rust 不再需要自己的垃圾收集器,直到 2013 年,他們刪除了垃圾收集器。如今用 Rust 編寫的程序運行速度更快,因為計算機不會每隔一段時間就停下來清理垃圾。Hoare 指出,一些軟件工程師認為 Rust 仍然擁有類似于垃圾收集的元素:“引用計數”系統,這個系統是內存所有權機制的一部分。但無論采用了哪種方式,如今 Rust 的性能確實提高了,距離硬件越來越近,就像 C 和 C++ 一樣,同時也保證了內存安全。
          2012 年,Steve Klabnik 開始接觸 Rust 的開發工作,并在之后的十年里負責編寫相關文檔,他表示,刪除垃圾收集后“Rust 變成了一門更精簡且更有效地語言。”

          友好的社區文化


          在此過程中,Rust 社區建立了一種文化:對新人異常友好,而且非常開放。微軟首席工程師 Nell Shamrell-Harrington 曾在 Mozilla 從事 Rust 的開發工作,她表示:“我們不會稱任何人為菜鳥,沒有任何問題是愚蠢的問題?!?/span>
          她說,部分原因是 Hoare 在很早以前就發布了“行為準則”,任何為 Rust 做出貢獻的人都應該遵守這些準則。Rust 社區成員說,社區接受了這套準則,并且成功地吸引到了很多編程高手加入 Rust。即便程序員犯錯,編譯器拋出的錯誤消息也很友好,不僅描述了錯誤,而且還會就如何修復禮貌地提出建議。
          Shamrell-Harrington 說:“當我犯錯誤時,C 和 C++ 的編譯器會讓我覺得自己是一個很糟糕的人。而 Rust 編譯器更像是在指導你編寫超級安全的代碼?!?/span>
          2015 年,該團隊全力以赴最終發布了 Rust 的“穩定”版本。這個版本非??煽浚捎糜跒檎嬲目蛻艟帉戃浖?。距離 Rust 歸入 Mozilla 旗下已經過去六年了,在漫長的開發期間內,編程人員一直渴望嘗試演示版本,盡管這些版本的表現會很糟糕,Goregaokar 說:“編譯器一直在崩潰”。終于是時候將“1.0”推向世界了。
          Walton 記得自己蜷縮著身體坐在電腦前奮戰了幾個小時。Klabnik“在過去兩周內寫了大約 45 頁的文檔,”他回憶道。2015 年 5 月 15 日,他們終于發布了第一個版本,眾多 Rust 粉絲聚集在世界各地慶祝。
          Mozilla 的投資很快開始獲得回報。2016 年,Mozilla 小組發布了 Servo,這是一款使用 Rust 構建的新型瀏覽器引擎。第二年,另一個小組使用 Rust 重寫了 Firefox 中渲染 CSS 的部分。這一變化給瀏覽器帶來了明顯的性能提升。此外,Mozilla 還使用 Rust 重寫了處理 MP4 多媒體文件的代碼。
          很快,Rust 開發人員就聽到很多公司都在嘗試他們的新語言。

          榮獲科技巨頭青睞

          三星公司的程序員告訴在法國 Mozilla 辦公室工作的 Klock,他們已經開始使用 Rust 語言了。Facebook(現改名為 Meta)使用 Rust 重新設計了程序員管理其內部源代碼的軟件。Walton 如今在 Meta 工作,他表示:“無論怎么夸 Rust 的重要性都不為過?!?/span>
          很快,許多重要軟件的核心部分都開始采用 Rust 編寫。2020 年,Dropbox 推出了其“同步引擎”的新版本,他們的工程師也用 Rust 重寫了該引擎。該系統最初是用 Python 編寫的,但現在要處理幾十億個文件(以及在線同步的數萬億個文件)。軟件工程師 Parker Timmerman(最近離開了 Dropbox)表示,Rust 降低了處理如此復雜的系統的難度。
          他說:“使用 Rust 寫程序很愉快,這門語言太棒了,很有趣。你感覺自己就像一位魔術師,使用其他語言時根本不會有這樣的感覺。我們做了一個很明智的決定,這是一項新技術?!?/span>
          一些公司發現 Rust 減輕了他們對內存錯誤的恐懼,Mara Bos 使用 Rust 重寫了控制無人機的軟件,該軟件最初是用 C++ 編寫的。
          還有一些人感受到放棄垃圾收集的好處了。在 Discord,長期以來工程師們一直對 Go 中的垃圾收集器很不滿。他們用 Go 編寫的軟件大約每兩分鐘就需要執行一次垃圾收集,盡管 Discord 的工程師寫得非常仔細,沒有垃圾需要收集。2020 年,他們用 Rust 重寫了該系統,如今運行速度提高了 10 倍。
          現如今,就連科技巨頭亞馬遜的云計算平臺 AWS 的高管和工程師也越來越相信 Rust 可以幫助他們編寫更安全、更快的代碼。Shane Miller 為 AWS 創建了一個 Rust 團隊,他表示:“Rust 具有獨特的優勢,可以提供其他語言無法提供的優勢。Rust 能提供一種語言的多種超能力?!?/span>
          對這家云計算巨頭來說,最重要的是,一項基于 Rust 代碼的研究發現,Rust 代碼的運行效率非常高,其耗電量只有用 Java 編寫的同等程序的一半。Miller 說:“因此,我可以創建一個數據中心,運行 2 倍的工作負載?;蛘撸恍枰话氪笮〉臄祿行木涂梢酝瓿赏攘康墓ぷ鳎吘箶祿行男枰⒃诔鞘兄行?,不能放到郊區。”
          Rust 的成功讓一些長期貢獻者感到有些緊張。隨著科技巨頭陸續開始采用這種語言,他們對 Rust 產生的影響也越來越大。這些巨頭公司資金充沛,足夠負擔工程師全職開發 Rust,實際上如今 Rust 團隊的幾位領導者就是亞馬遜和微軟的員工。而其他有價值的貢獻者必須在業余時間從事 Rust 的開發,比如 Bos 除了運營她的無人機創業公司外,還需要承擔華為的 Rust 工作,但作為 Rust 庫的團隊負責人,她的這部分工作并不會獲得任何酬勞。
          Bos 表示,這種現象在開源項目中很常見:大公司有能力更多地參與項目開發,他們可以推動整個項目,解決他們關心的問題,但小公司就沒有這種能力。她說:“大公司確實有這樣的一些影響力”。但到目前為止,沒有任何公司采取任何措施來敲響警鐘。Klabnik 對亞馬遜參與 Rust 的開發表示擔憂,“我擔心嗎?當然擔心了。我會覺得這個項目比其他項目更糟糕嗎?并不會。”


          基金會成立,開源不再用“愛”發電


          2021 年,各大科技公司出資成立了一個非營利性 Rust 基金會,以支持志愿者。在 Miller 領導該基金會的頭兩年里,他們提供了 2 萬美元的資助,用于支持希望承擔 Rust 主要功能開發但短期內需要資金支持的貢獻者。此外,該基金會還為托管 Rust 代碼的服務器提供了資金,并付錢給一家技術公司,以確保這些服務器全天候運行。Miller 說,在常見的開發風格中,這項工作以前是由“兩名志愿者完成的,他們基本上有 50% 的時間在待命,其中一名是來自意大利的學生。
          這種語言的發展速度非常不可思議。如果說 Rust 誕生于 2006 年,那么如今即將結束青春期,走向成熟期。汽車公司正在采用 Rust 來構建運行車輛的關鍵代碼,航空航天公司也在使用這種編程語言。Dropbox 的 Timmerman認為:“將來,到處都會使用 Rust?!蔽④浉吖苌踔凉_表示,他們將使用 Rust 編寫越來越多的新代碼,而C和C++的使用將越來越少,最終為零。
          所有使用 C 和 C++ 編寫的舊代碼不會消失,會一直使用,可能會持續數十年。但是,如果 Rust 成為編寫快速和裸機代碼的常用語言,我們會逐漸地意識到,我們的軟件環境將變得越來越可靠,不那么容易崩潰,也不至于那么不安全。
          看到 Rust 如今的發展,最驚訝的人莫過于 Hoare 本人。因為,“許多語言都半路夭折了,”他說。

          主站蜘蛛池模板: 国产品无码一区二区三区在线蜜桃 | 亚洲夜夜欢A∨一区二区三区| 精品国产a∨无码一区二区三区 | 日本强伦姧人妻一区二区| 无码视频一区二区三区| 国产一区二区三区在线免费观看| 无遮挡免费一区二区三区| 亚洲一区二区三区无码中文字幕 | 四虎一区二区成人免费影院网址| 国产福利电影一区二区三区| 亚洲日韩激情无码一区| 国产短视频精品一区二区三区| 在线免费视频一区| 亚洲一区二区三区影院| 亚洲综合色一区二区三区| 国产伦一区二区三区免费| 国精品无码一区二区三区在线 | 国产一区二区三精品久久久无广告| 亚洲不卡av不卡一区二区| 人妻互换精品一区二区| 国产婷婷一区二区三区| 亚洲一区二区三区免费观看| 一区二区免费在线观看| 国产精品视频一区二区三区| 亚洲爽爽一区二区三区| 亚洲AV日韩AV一区二区三曲| 中文字幕一区二区三区精华液| 久久精品午夜一区二区福利 | 日本高清不卡一区| 无码人妻精品一区二区蜜桃| 91福利国产在线观看一区二区| 亚洲一区二区三区国产精华液| 国产在线精品一区二区夜色| 国产视频一区在线播放| 色窝窝无码一区二区三区色欲 | 在线播放偷拍一区精品| 中文字幕一区二区区免| 日本高清无卡码一区二区久久| 国产99久久精品一区二区| 国产精品美女一区二区视频 | 久久精品国产免费一区|