美國主要的電力生產商 Vistra 為了使工廠高效運行,工人必須持續監控數百個不同的指標,追蹤溫度、壓力、氧氣水平以及泵和風扇的速度——而且他們必須實時進行調整。該過程涉及大量複雜性,即使是最熟練的人員也無法始終正確完成。為了應對這一挑戰,該工廠安裝了一個人工智慧的工具——它每 30 分鐘分析數百個輸入並生成建議。結果:效率提高了 1%。這聽起來可能不多,但它可以節省數百萬美元並減少溫室氣體排放。
各行各業的公司都在嘗試整合分析和數據來改善他們的運營。電子商務公司 Wayfair 是將其數據轉移到雲端並投資於機器學習的先行者。當 Covid-19 爆發時,消費者需求隨之發生快速變化,它能夠優化物流,不斷調整將哪些貨物發送到哪些港口。結果:入境物流成本驚人地降低了 7.5%。然而,並非所有公司都像 Wayfair 一樣成功。事實上,與使用人工智慧的普通公司相比,表現最好的公司可以在一半的時間內產生兩倍以上的影響。為什麼有些公司比其他公司做得更好?
為了回答這個問題,麥肯錫和麻省理工學院的 MIMO 研究了從汽車到採礦等行業的 100 家企業。通過採訪、研究和調查,試圖了解他們如何使用數字、數據分析和機器智能 (MI) 技術;他們想要達到的目標;以及他們如何追蹤他們的進展。通過查看 9 個類別(戰略、機會焦點、治理、部署、合作夥伴、人員、數據執行、預算和結果)的 21 個績效指標,將 100 家公司分為四類:領導者、計劃者、執行者和新興組織,以確定所採取的行動和所進行的投資之間的關係,以及有形和可持續的成果。
任何有志從數位技術中獲益的公司都有機會從最佳實踐方法中學習,無論是規劃者、執行者還是當今的新興公司。我們來探索成功的潛在驅動因素。
四個部分——領導者、規劃者、執行者和新興公司——不是每個人都應該立即努力成為領導者;相反,他們應該努力進入下一個更好的狀態。
領導者是表現最好的人,約佔樣本的 15%。通過在正確的地方進行投資,他們從先進的數位技術中獲得了最大的收益。領導者更有可能擁有明確的實施流程。他們也更有可能定期遵循該流程並不斷更新。因此,在所評估的 21 項關鍵績效指標中,有 20 項取得了顯著提升,並且在所有九個績效類別中均名列前 25%。
計劃者約佔數據集的四分之一。規劃人員通常具有很強的人際交往能力和豐富的數據執行專業知識;他們有條不紊,專注於做出正確的投資。然而,在許多情況下,這些還沒有得到回報,儘管有一些人即將加入領導者的行列。雖然一些規劃者能夠指出成功的實施,但一些規劃者無法破解擴展真正重要的方式。
大約三分之一的受訪者是執行者,他們利用不斷增長的專業知識庫,並與合作夥伴一起創建針對最有希望的機會的特定解決方案。然後他們盡可能廣泛地實施這些解決方案。執行者以結果為導向。儘管建設的基礎設施比領導者或規劃者少,但他們能夠並且已經取得了顯著收益。另一方面,他們有時會發現很難將不同的努力整合到公司範圍內的績效中。
新興公司,約佔總數的四分之一,成熟度最低,收益最小;許多人才剛剛開始。一些新興公司報告在選定的用例方面取得了一定的成功,但其他公司發現甚至很難弄清楚在哪裡投資。很少有戰略、技能或基礎設施能夠走得更遠。
了解機器智能(MI)的五種方法
總的來說,我們發現成功部署先進數位技術的公司根據九項績效指標對自身所處的位置進行了誠實的評估。在此基礎上,他們能夠形成三四年後想要達到的目標。同時,他們確定了一些有希望的方式來快速獲勝。更具體地說,該研究確定了表現最佳的五個領域。
治理。機器智能是領先公司的戰略重點。許多公司建立了專門的卓越中心來支持他們的實施工作,無論是在業務部門內,還是作為支持整個組織、確保標準和加速部署的集中功能。專門和集中的支持功能還有助於保持他們的數位計劃正常進行,並記錄他們的投資組合的進展情況。與業績不佳的公司相比,領導者更有可能擁有明確的數位創新評估和實施流程。例如,製藥公司 Bayer 使用一個有據可查的治理流程在一個工廠部署多個應用程序,然後在其網絡中推出這些應用程序,從而提高了收入。
然而,領導者也認識到,在這個快速發展的領域,變革是不可避免的。大多數領導者都在不斷完善和改進他們的流程,執行者和規劃者經常陷入困境,這限制了成功擴展的能力。
部署。領先的組織更廣泛地應用 MI 並使用更複雜的方法。例如,每個領導者都在預測、維護優化以及物流和運輸方面實施了 MI。領導者也更有可能採用先進的方法,例如將機器視覺應用於產品質量保證。一家生物製藥公司 Amgen 發現,視覺檢測系統操作為自動化和利用 AI 技術帶來了巨大的機會。 Amgen 正在使用 AI 開發一個經過全面驗證的視覺檢測系統,該系統將提高 70% 的顆粒檢測並將錯誤剔除率減少 60%。
雖然此類應用程序可能會產生巨大影響,但這些公司也意識到,任何長期影響都需要同時拉動多個槓桿,而在企業範圍內進行廣泛部署是關鍵。
夥伴關係。合作夥伴關係很常見,通常與學術界、初創企業、現有技術供應商和外部顧問合作。然而,領導者與更廣泛的合作夥伴合作,並且更加密集,以最大限度地提高速度和學習。例如,Colgate-Palmolive 和 Pepsico/Frito-lay 這兩家消費品公司與系統供應商 Augury 合作,在其生產線上部署了人工智慧驅動的機器健康診斷;在一個案例中,這避免了 8 天的中斷。半導體公司 Analog Devices 與 MIT 合作開發了一種新穎的 MI 質量控制,使其能夠識別哪些生產運行和工具可能存在故障。這意味著公司工程師只需審查他們之前必須審查的 5% 的過程數據。
領導者,儘管他們的能力更高,實際上更多地依賴外部合作夥伴來進一步加快他們的學習和影響時間。
人。領先的公司採取措施確保盡可能多的利益相關者擁有採用先進數位方法所需的技能和資源,而不是將這種專業知識留給專家。例如,超過一半的公司對一線人員進行 MI 基礎知識培訓,而其他公司只有 4%。全球快餐店麥當勞使用 MI 改進了廣泛的運營任務,從預測客戶響應到預測實時客流量。該公司採用了一種混合方法來做到這一點:其企業卓越中心測試並開發新方法,然後將它們打包成易於使用的工具,並廣泛使用。該系統幫助該領域的團隊成員了解良好數據的重要性並磨練他們的問題識別技能。
很明顯,領導者認為數據和分析的使用深深植根於他們的運營方式,而不是使其孤立並僅限於少數員工。
數據可用性。領導者使數據易於使用。我們研究中的所有領導者都允許一線員工使用數據,而其他領導者的這一比例為 62%。領導者也都從客戶和供應商那裡獲取數據,89% 的人分享他們自己的數據。領先公司實現遠端數據訪問並將大部分數據存儲在雲中的可能性幾乎是其他公司的兩倍。簡而言之,數據的公開化是有效使用分析的一個關鍵方面。一個很好的例子來自汽車供應商 Cooper Standard。它要求團隊在開發早期解決數據策略。
數位化轉型的基石
我們發現,將五個領域——治理、部署、合作夥伴關係、人和數據——整合到一個卓越中心協調的組織中時最有效。但首先,公司需要對其維度進行誠實的評估。從那裡轉變計劃可以開始形成。即使是粗略的,現實中變革的障礙——熟練的人才、投資能力和關鍵基礎設施,例如將數據從舊系統遷移到雲。大多數領導者從使用數據和簡單工具做出決策開始,然後隨著他們對數據的成熟和熟悉轉向更先進的技術。
儘管 MI 最近取得了重大進展,但規模才剛剛開始顯現。這讓我們看到了領導者和其他人之間更重要的區別:金錢。領導者的支出增加了 30% 到 60%,他們預計將預算增加 10% 到 15%,而其他人則報告很少或沒有增加。這意味著領導者與其他人之間的差距實際上可能會擴大。不過根據狀況不同,每家公司的路徑都會有所不同。
2022/03/26
銀行利用人工智慧增強客戶體驗
韓國銀行正在採用人工智慧來更好地了解客戶,並使他們能夠更輕鬆地利用服務。韓亞銀行表示,它將使用人工智慧實時查看客戶評論,以擴大客戶和員工之間的溝通。
“我們每天都看到銀行業的變化。獲得有關我們金融服務的即時反饋,以便我們知道在需要時我們需要做什麼,這對我們的擴張至關重要,”一位負責該計劃的韓亞銀行官員說。
這位官員指出,人工智慧不僅速度更快,而且在處理數量驚人的評論方面也更加細緻入微,這意味著電腦判斷好與壞反饋之間的界限比人類更清晰。
與此同時,競爭對手新韓銀行也在部署人工智慧來幫助客戶開戶、處理儲蓄甚至申請貸款。
“我們稱其為 AI 銀行家,它將在數位服務台上幫助客戶尋找這些服務——我們還計劃提供的其他服務中最受歡迎的服務,”新韓銀行的一位官員說。
新韓銀行開設了數位辦公或無人值守的分行,因為在疫情大流行中對非接觸式商務的需求不斷增長。但是客戶必須等待在其他地方工作的員工連接到數位服務台才能在線進行任何交易。“人工智慧銀行家將擺脫等待,因為它會等待客戶,”這位官員說,並指出將在 40 家分行進行試運行,然後將服務擴展到全國。
這位官員稱,人工智慧銀行是該銀行母公司新韓金融集團正在開展的更廣泛數位化工作的一部分,該官員表示,該集團的信貸部門也在貫徹其口號,即提供更輕鬆、更新的服務。
“我們每天都看到銀行業的變化。獲得有關我們金融服務的即時反饋,以便我們知道在需要時我們需要做什麼,這對我們的擴張至關重要,”一位負責該計劃的韓亞銀行官員說。
這位官員指出,人工智慧不僅速度更快,而且在處理數量驚人的評論方面也更加細緻入微,這意味著電腦判斷好與壞反饋之間的界限比人類更清晰。
與此同時,競爭對手新韓銀行也在部署人工智慧來幫助客戶開戶、處理儲蓄甚至申請貸款。
“我們稱其為 AI 銀行家,它將在數位服務台上幫助客戶尋找這些服務——我們還計劃提供的其他服務中最受歡迎的服務,”新韓銀行的一位官員說。
新韓銀行開設了數位辦公或無人值守的分行,因為在疫情大流行中對非接觸式商務的需求不斷增長。但是客戶必須等待在其他地方工作的員工連接到數位服務台才能在線進行任何交易。“人工智慧銀行家將擺脫等待,因為它會等待客戶,”這位官員說,並指出將在 40 家分行進行試運行,然後將服務擴展到全國。
這位官員稱,人工智慧銀行是該銀行母公司新韓金融集團正在開展的更廣泛數位化工作的一部分,該官員表示,該集團的信貸部門也在貫徹其口號,即提供更輕鬆、更新的服務。
2022/03/19
JavaScript 中如何合併 Array
1. 使用 Concat 方法合併 Array
concat 函數是 JavaScript 中合併 Array 的標準。
使用 concat 是將 array2 的元素附加到 array1 的末尾。 值得注意的是,concat 函數不會更改 array1 和 array2。 相反,會創建一個新 Array。
2. 使用 Push 結合兩個 Array
push 函數將元素增加到現有 Array 的末尾。 此行為與 concat 函數略有不同,因為現有 Array 會更改。
concat 函數是 JavaScript 中合併 Array 的標準。
使用 concat 是將 array2 的元素附加到 array1 的末尾。 值得注意的是,concat 函數不會更改 array1 和 array2。 相反,會創建一個新 Array。
2. 使用 Push 結合兩個 Array
push 函數將元素增加到現有 Array 的末尾。 此行為與 concat 函數略有不同,因為現有 Array 會更改。
如果您需要合併較小的 Array,push 的效能是比較好的。對於具有較大 Array,請使用 concat 函數。
2022/03/06
.NET 6.0 有什麼新功能
.NET 6 是 .NET 的最新版本,於 2021 年 11 月發布。與其前身相比,.NET 6 不僅是該框架的一個大大改版,而且它還引入了一些在其他平台和語言看到的歡迎的功能。
在 .NET 6 之前,.NET 有兩個獨立的產品,.NET Framework 和 .NET Core。 .NET Framework 是未開源的 .NET。 .NET Core 是 .NET 的開源版本,它從頭開始重寫,適用於所有平台、Windows、Linux 和 Mac。對於 .NET 6.0 及更高版本,也將只有一個版本的 .NET。
.NET 6 是一個真正的統一開發平台,允許開發人員為雲端、Web、桌面、移動、遊戲、物聯網和人工智慧構建應用程式。所有這些子平台共享通用的基類庫、API 和底層基礎設施,包括語言和編譯器。.NET 6 可在 Visual Studio、Visual Studio Code 和 CLI 使用 。 將作為最新的 LTS 版本支持三年。
C# 10 和 F# 6 是 .NET 6 附帶的最新版本的 C# 和 F#。C# 10 提供了許多改進,但重點是簡單性。 C# 10 中的一些關鍵改進: using 指令、記錄結構、文件範圍命名空間、常量內插字符串、lambda 改進和空參數檢查。
.NET 中增加了 Hot Reload ,它允許開發人員在程式碼運行時修改程式碼並實時執行這些更改,而無需重新啟動應用程序。 Hot Reload 適用於 Visual Studio 和 CLI。
.NET 6 版本提供了 Blazor。 Blazor 是一個前端 Web 框架,用於構建在 Web 瀏覽器中運行的客戶端 Web 應用程序。 Blazor 使用 HTML、CSS 和 C# 來構建網頁。Blazor 支持兩種託管模型,Blazor Server 和 Blazor WebAssembly。 Blazor 服務器模型在服務器上執行類似於 ASP.NET 的程式碼並將 HTML 傳遞給瀏覽器。 對於 Blazor WebAssembly,C# 程式碼使用 WebAssembly 在瀏覽器中執行。
ASP.NET Core 6.0 在 Minimal API、SignalR、Razor 編譯、ASP.NET 性能和 API 改進以及 Blazor 等多個方面提供更新和改進。
.NET MAUI 是 .NET Multi-platform App UI 的縮寫,是 .NET 的最新功能之一。它是 Xamarin 和多 UI 平台的下一個化身。 .NET MAUI 允許專案中編寫程式碼,提供跨桌面和移動操作系統的客戶端應用程式體驗,預計很快就會發布。
在 .NET 6 之前,.NET 有兩個獨立的產品,.NET Framework 和 .NET Core。 .NET Framework 是未開源的 .NET。 .NET Core 是 .NET 的開源版本,它從頭開始重寫,適用於所有平台、Windows、Linux 和 Mac。對於 .NET 6.0 及更高版本,也將只有一個版本的 .NET。
.NET 6 是一個真正的統一開發平台,允許開發人員為雲端、Web、桌面、移動、遊戲、物聯網和人工智慧構建應用程式。所有這些子平台共享通用的基類庫、API 和底層基礎設施,包括語言和編譯器。.NET 6 可在 Visual Studio、Visual Studio Code 和 CLI 使用 。 將作為最新的 LTS 版本支持三年。
C# 10 和 F# 6 是 .NET 6 附帶的最新版本的 C# 和 F#。C# 10 提供了許多改進,但重點是簡單性。 C# 10 中的一些關鍵改進: using 指令、記錄結構、文件範圍命名空間、常量內插字符串、lambda 改進和空參數檢查。
.NET 中增加了 Hot Reload ,它允許開發人員在程式碼運行時修改程式碼並實時執行這些更改,而無需重新啟動應用程序。 Hot Reload 適用於 Visual Studio 和 CLI。
.NET 6 版本提供了 Blazor。 Blazor 是一個前端 Web 框架,用於構建在 Web 瀏覽器中運行的客戶端 Web 應用程序。 Blazor 使用 HTML、CSS 和 C# 來構建網頁。Blazor 支持兩種託管模型,Blazor Server 和 Blazor WebAssembly。 Blazor 服務器模型在服務器上執行類似於 ASP.NET 的程式碼並將 HTML 傳遞給瀏覽器。 對於 Blazor WebAssembly,C# 程式碼使用 WebAssembly 在瀏覽器中執行。
ASP.NET Core 6.0 在 Minimal API、SignalR、Razor 編譯、ASP.NET 性能和 API 改進以及 Blazor 等多個方面提供更新和改進。
.NET MAUI 是 .NET Multi-platform App UI 的縮寫,是 .NET 的最新功能之一。它是 Xamarin 和多 UI 平台的下一個化身。 .NET MAUI 允許專案中編寫程式碼,提供跨桌面和移動操作系統的客戶端應用程式體驗,預計很快就會發布。
其他 .NET 改進
- JSON API 的功能更強大
- ASP.NET Core 中引入的Minimal API 提高 HTTP 服務的性能
- 使用 ASP.NET Core 構建的單頁應用程式現在使用更靈活,可與 Angular、React 和其他流行的前端 JavaScript 框架一起使用
- 增加了 HTTP/3,以便 ASP.NET Core、HttpClient 和 gRPC 都可以與 HTTP/3 客戶端和服務器互動
- 支持 OpenSSL 3、ChaCha20Poly1305 加密方案和運行時深度防禦措施,安全性得到了改進
- 可以為 Linux、macOS 和 Windows 發佈文件應用程式
- IL 更加強大和有效,新的警告和分析器可確保正確的最終結果
- 增加了程式碼生成器和分析器,可幫助生成更好、更安全和更高性能的程式碼
- .NET 6 為容器提供了更好的支持,使 .NET 6 應用程式的打包、部署和執行更加容易
- Windows 視窗應用程式的改進
2022/03/05
AlphaCode 是工具,不是程式設計師的替代品
DeepMind 是人工智慧研究實驗室,它引入了一種深度學習模型,可以產生具有顯著效果的軟體程式碼。 該模型名為 AlphaCode,基於 Transformers,OpenAI 在其程式碼產生模型中使用的架構相同。在這複雜的編寫程式碼,AlphaCode 確實給人留下了深刻的印象。 但它肯定不等同於任何級別的程式設計師。 這是一種完全不同的軟體開發方法,如果沒有人類的思考和直覺,是無法完整的一個應用程式。
AlphaCode 可以完成非常複雜的任務,但只是類似專注於產生程式碼片段,例如執行小任務的函數或代碼塊(例如,設置 Web 服務器,從 API 系統中提取資訊)。雖然令人印象深刻,但當要應付夠大的應用程式系統時,這些任務變得微不足道。基本上,機器學習模型要能產生一個完整的程式來解決前所未有的問題,是相當困難的。
還有另一種程式產生深度學習系統被稱為 seq2seq。 Seq2seq 是將一序列值(字母、像素、數字等)作為輸入並產生另一個值序列。 這是許多自然語言任務中使用的方法,例如機器翻譯、文本生成和語音識別。
無監督和監督學習
為了創造 AlphaCode,DeepMind 的科學家結合了無監督預訓練和監督微調。 通常被稱為自我監督學習,這是在沒有足夠標記數據或數據註釋昂貴且耗時的應用程序中流行的方法。
在預訓練階段,AlphaCode 從 GitHub 提取的 715 GB 數據進行了無監督學習。 通過預測語言或程式碼片段來訓練模型。 這種方法的優點是它不需要任何類型的註釋,通過接觸大量的樣本,ML 模型在為文本和程式碼的結構逐漸變得更好。另外在製造數據集時,研究人員特別注意避免訓練、驗證和測試集之間的重複。 這確保了 ML 模型在面臨挑戰時不會產生記憶結果。
一旦 AlphaCode 被訓練,它就會針對以前從未見過的問題進行測試。當 AlphaCode 處理一個新問題時,它會生成許多解決方案。然後它使用過濾算法來選擇最好的 10 名候選結果並將其提交。如果其中至少一個是正確的,則認為問題是被解決。為了優化樣本選擇過程,使用聚類算法將解決方案分組。根據研究人員的說法,聚類過程傾向於將工作解決方案組合在一起。這使得找到通過測試的候選結果變得更加容易。
根據 DeepMind 的說法,在流行的 Codeforces 平台上的實際編程比賽中進行測試時,AlphaCode 平均排名前 54% 的參與者,考慮到撰寫程式碼的難度,這算是非常好的結果了。
人工智慧與人類
DeepMind 的 Blog 指出,AlphaCode 是第一個在程式競賽中達到具有競爭力的 AI 程式碼產生系統。然而,一些刊物將這種說法誤認為 AI 編碼與程式設計師一樣好,這是相當荒謬。兩個主要的例子是 DeepBlue 和 AlphaGo,它們是擊敗國際象棋和圍棋世界冠軍的人工智慧系統。雖然這兩個系統都是計算機科學和人工智慧的了不起的成就,但它們只擅長一項任務。他們無法在任何任務上與人類競爭。
因此,與其說 AlphaCode 與程式設計師是彼此競爭,不如我們更應該對 AlphaCode 和其他類似的 AI 系統在與程式設計師合作時能做什麼感興趣。這些工具可以對程式設計師的生產力產生巨大影響。它們甚至可能改變寫程式的方式,將人類轉向設計問題並讓人工智慧系統生程式碼。再由程式設計師利用他們的直覺將系統導向正確的解決方案。使用測試、分析和審查來改進他們的程式碼。
認識到 AlphaCode 的本質:一個程式碼產生器,可以為精心設計的問題提出良好的候選解決方案。它也不應該被認為是程式設計師的代替品。
AlphaCode 可以完成非常複雜的任務,但只是類似專注於產生程式碼片段,例如執行小任務的函數或代碼塊(例如,設置 Web 服務器,從 API 系統中提取資訊)。雖然令人印象深刻,但當要應付夠大的應用程式系統時,這些任務變得微不足道。基本上,機器學習模型要能產生一個完整的程式來解決前所未有的問題,是相當困難的。
還有另一種程式產生深度學習系統被稱為 seq2seq。 Seq2seq 是將一序列值(字母、像素、數字等)作為輸入並產生另一個值序列。 這是許多自然語言任務中使用的方法,例如機器翻譯、文本生成和語音識別。
無監督和監督學習
為了創造 AlphaCode,DeepMind 的科學家結合了無監督預訓練和監督微調。 通常被稱為自我監督學習,這是在沒有足夠標記數據或數據註釋昂貴且耗時的應用程序中流行的方法。
在預訓練階段,AlphaCode 從 GitHub 提取的 715 GB 數據進行了無監督學習。 通過預測語言或程式碼片段來訓練模型。 這種方法的優點是它不需要任何類型的註釋,通過接觸大量的樣本,ML 模型在為文本和程式碼的結構逐漸變得更好。另外在製造數據集時,研究人員特別注意避免訓練、驗證和測試集之間的重複。 這確保了 ML 模型在面臨挑戰時不會產生記憶結果。
一旦 AlphaCode 被訓練,它就會針對以前從未見過的問題進行測試。當 AlphaCode 處理一個新問題時,它會生成許多解決方案。然後它使用過濾算法來選擇最好的 10 名候選結果並將其提交。如果其中至少一個是正確的,則認為問題是被解決。為了優化樣本選擇過程,使用聚類算法將解決方案分組。根據研究人員的說法,聚類過程傾向於將工作解決方案組合在一起。這使得找到通過測試的候選結果變得更加容易。
根據 DeepMind 的說法,在流行的 Codeforces 平台上的實際編程比賽中進行測試時,AlphaCode 平均排名前 54% 的參與者,考慮到撰寫程式碼的難度,這算是非常好的結果了。
人工智慧與人類
DeepMind 的 Blog 指出,AlphaCode 是第一個在程式競賽中達到具有競爭力的 AI 程式碼產生系統。然而,一些刊物將這種說法誤認為 AI 編碼與程式設計師一樣好,這是相當荒謬。兩個主要的例子是 DeepBlue 和 AlphaGo,它們是擊敗國際象棋和圍棋世界冠軍的人工智慧系統。雖然這兩個系統都是計算機科學和人工智慧的了不起的成就,但它們只擅長一項任務。他們無法在任何任務上與人類競爭。
因此,與其說 AlphaCode 與程式設計師是彼此競爭,不如我們更應該對 AlphaCode 和其他類似的 AI 系統在與程式設計師合作時能做什麼感興趣。這些工具可以對程式設計師的生產力產生巨大影響。它們甚至可能改變寫程式的方式,將人類轉向設計問題並讓人工智慧系統生程式碼。再由程式設計師利用他們的直覺將系統導向正確的解決方案。使用測試、分析和審查來改進他們的程式碼。
認識到 AlphaCode 的本質:一個程式碼產生器,可以為精心設計的問題提出良好的候選解決方案。它也不應該被認為是程式設計師的代替品。
訂閱:
文章 (Atom)