#3 第三期 - 歡迎進入駭客的思考領域

本週專欄

進入駭客的思考領域 — 從 DEVCORE CONF 學駭客思維 | StarBugs 星巴哥技術週刊

什麼是駭客思維?讓我們跟著 DEVCORE 舉辦的頂級資安研討會學習駭客是如何規劃攻擊,進一步提昇資訊安全的意識。

神 Q 超人

如何讓自己成為失敗的軟體工程師

所有的文章都在告訴你如何成為一位好工程師,怎麼寫好程式碼才不造成別人的困擾,但知己知彼敗戰百勝,與其盲目追求完美的程式,不如先來確認自己有沒有不小心踩到「失敗的工程師」那條線。

忍者程式碼(Ninja Code)

本篇文章的作者翻開覆蓋的魔法卡「傑出的反串之手」,以忍者為例子重新詮釋何謂程式碼,讓程式中的每一段都像真正的忍者一樣輕鬆、迅速、暢快、無負擔,最後千萬別忘了還要像秘密捲軸一樣讓人讀不懂看不明白!

工程師應該放心大膽地創造技術負債

歡迎來到本週最幹話之首,文中闡述了現今資訊業最黑暗的一面,我想只有看破一切的工程師才有辦法將技術負債闡述得如此透徹。不過記得有些人走著走著就散了,有些文章看著看著也笑一下就好,但各位身邊的環境如有雷同,就純屬巧合了!我們下週見:)

Larry Lu

A journey from containerization to orchestration and beyond

這幾年 container 相關的技術逐漸成熟,也越來越多公司導入 Docker 及 K8s。當然,這些技術的最底層還是 Linux 提供的基本功能:namespace 跟 cgroups,本文從這些底層的技術慢慢講到最 High Level 的容器編排,看完之後也更能了解 runc、docker、K8s 這些技術的定位

用傳紙條理解 WebSocket

一直以來都滿喜歡這種用故事來講解技術的文章,如果你不太清楚 WebSocket 相對於傳統的 Polling 有什麼優點,那這篇文章就是給你看的!而且文末也有一個 Node.js 小範例可以自己寫來玩玩看

Understanding Rust Lifetimes

變數的生命週期是 Rust 最重要但也最複雜的 feature,我本人剛寫 Rust 時也常被他搞得暈頭轉向,所以推薦這篇文章給搞不清楚變數所有權的 Rust 苦手們,希望各位在看了之後能有如醍醐灌頂、發現 Rust 生命週期的美好

LukaJoJo

Learn by Contributing

貢獻開源軟體可以讓你學到什麼?其中最重要的幾點分別是:你可以跟專家合作,你可以見識到專業的軟體開發方式,並且證明你的專業技術是實打實的。這篇文章提供非常具體的作法讓你跟著實踐,推薦一讀。

JavaScript - The prototype chain in depth

深入 JS 原型鏈 - 從 JS 原型鏈學習物件繼承的概念。

Common Node.js mistakes in Lambda

在 AWS Lambda 上寫 Node.js 時,幾個常犯的錯誤。由 AWS Serverless Hero @theburningmonk 帶給大家的開發經驗談。

smalltown

【Dev】究竟為什麼升級到 Python3 需要花這麼久的時間?

★ 在 2014 年的 Pycon,Python 的父親 Guido van Rossum 告訴大家是該時候往 Python 3 邁進了,在日常的工作中採用它 ;在經過了多年的努力之後,終於決定在 2020/01/01 停止支援 Python 2,有些公司已經升級完畢,,然而應該還有很多的公司不會馬上動手,究竟這 Python 3 到底是命運的安排,還是情感的糾結,或是另有隱情,真相到底是什麼 讓我們繼續看下去。

★ Python 3 最主要的目的是要將舊版最大的問題給移除掉 (將所有的 String Render 成 Unicode), 開發團隊認為大家應該會馬上大刀闊斧進行升級,所以讓 Python 3 不向下相容,然而大家卻都不買單,因為認為改進的東西不多,結果導致 Python 2 還是持續地開發下去,新版的採用速度究竟有多慢呢?雖然 Python 3 主要版本在 2008 就發布了,但一直拖到現在XD

★ 在一開始有很多不要採用 Python 3 的好理由,最主要的理由當然就是其不向下相容,這點導致很多主要的 Library 都很猶豫升級,而且一開始其實要 Porting 過去也不簡單,但隨著 2016 Python 3.5 推出許多重大功能 (Matrix Multiplication, Asyncio, OrderedDict 的加速),而且後續版本的持續推出 (Pathlib, f-string manipulation),隨著這些改變,還有人們主要使用的 Library 也都升級,這才讓結束支援 Python 2 成為可能,

★ 雖然 Python 3 是目前的主要版本,但是根據 Package 下載數據顯示,截至 2019/09 仍然至少有 40% 的下載量來自 2.7,目前大部分 Flask 的下載都已經是 3 了,但是 botocore (AWS Python SDK) 只有 26% 下載的下載量是 3,不過雖然 2 即將結束支援,但既有的程式還是可以動,只是假如後續有資安漏洞或是有什麼 Bug 不會再繼續維護了,不過還有很多周邊的廠商也要跟著更新,所以可以預期可能還需要數年之久

★ 而究竟為什麼採用的速度會這麼的慢呢?為什麼不要等到採用率更高才停止支援 2 呢?其實大多數的大型組織,他們採用新技術的速度比你我想像的還要慢很多很多,例如許多銀行還是在使用 FORTRAN 跟 COBOL;儘管有許多公司描述他們如何升級,但有更多的公司應該會長期保留在 Python 2 上面,為什麼會這樣呢?因為升級要花很多的時間,而且這是一個高度的政治決策,再加上人都有慣性,即使是在高技術含量的公司內,例如 Facebook 為了採用 Python 3,Jason Fried 從 2014 年開始重寫服務,一路走來,他犯了很多的錯誤,也改了很多的代碼,還需要做新開發人員的培訓,後來他又跑去跟 ŁukaszLanga合作將Instagram 轉換為Python 3,花了差不多十個月;

★ 其次是安全問題,最諷刺的點在於,正在看這篇文章的你,可能會認為不升級的風險比較大,但是在較大的組織中,並不允許內部人員自己升級 Python,必須要由管理員或是安全團隊來負責推送更新,所以如果 Python 2 是安全團隊認可使用的版本,那麼可能需要做出重大的努力才能說服人們將其切換到 3,這種情況尤其可能發生在到嚴格監管和政府的環境中;Python 經歷了從 2 到 3 的漫漫長路,個人和一些新創公司都已經採用新版了,第二次的大遷移即將發生在大型企業開始遷移的時候,所以在 2020 應該可以看到剛剛提到的 40% 繼續下降,但變化應該是慢慢地遞減,而且也還會有許多的公司繼續運行 2.7 跟大家一起迎向未來

▍原文連結:https://stackoverflow.blog/2019/11/14/why-is-the-migration-to-python-3-taking-so-long/

StarBugs Weekly

StarBugs Weekly 由一群不寫文章就會想要亂花錢,但是又沒有那麼多錢,只好繼續寫文章的開發者所創立。
內容包含 Web 前端、中端、後端、DevOps、產品開發、精實創業,一切跟產品有關的知識,都是我們的守備範圍!

Curators:

  • @GQSM - 82 年次,單純相信努力不會騙人
  • @Larry850806 - 我是 Larry,傳說中的 0.1 倍工程師!
  • @LukaJoJo - 一名全身都是死角的工程師。
  • @smalltown - 熱愛鑽研各種可以提升雲端服務品質及增進團隊開發效率的開源技術

Feedback

想看什麼內容,告訴我們! 點我回饋意見