34 年了,“杀”不死的 Perl!
作者 | 祝濤? ? ? ?
出品 | CSDN(ID:CSDNnews)
2021年12月18日,Perl迎來了自己34歲的生日。
當程序員聊到Perl會聊些什么呢?在各大平臺搜索Perl時,你會發現大家對Perl的態度呈現出一種兩級分化的狀態,有人對Perl依舊保持著熱情,視若珍寶,但也有人對Perl嗤之以鼻,有人甚至寫下“Perl正加速走向死亡,也許2023年就會消失”的標題。
生存還是死亡,似乎成為了Perl繞不開的一個話題。
Perl發展歷程
拉里·沃爾在1987年開始寫作Perl,那時他正在Unisys當程序員,并且在1987年12月18日把1.0版本發布到了comp.sources.misc新聞組。這個語言在接下來的幾年內很快地發展起來。
沃爾最早的確把這個語言稱為“Pearl”(珍珠),因為他希望自己開發的語言有一個吉利的名字而且要盡量短小好記,他甚至聲稱早已考慮過所有三個及四個字母的詞匯,以及自己妻子的名字Gloria。然而另一門語言PEARL早已存在,為了防止混淆,沃爾才把它改名Perl。
圖片來自i-Programmer
Perl 2在1988年發布,增加了更多特性,擁有更好的正則表達式引擎。Perl 3和Perl 4分別在1989年和1991年發布,
而1994年發布的Perl 5則是最重要的一個版本。Perl 5公布了許多個版本:Perl 5.6在2000年發布,Perl 5.8的持續開發貫穿了2002-2008年,5.10在2007年發布,5.12在2010年發布,此后Perl開始采取每月發布一個版本,每年發布一個穩定版本的發布周期。5.14在2011年發布,5.16于2012年發布,5.18于2013年發布。
2000年啟動的Perl 6則完全重寫了Perl,基于不同的原則,開發者決定先制定語言規格。2015年12月25日,開發了十多年的Perl 6語言在圣誕節正式發布。Larry Wall以Perl 6吉祥物Camelia的名義宣布Perl 6可以在產品中使用,但強調她仍然處于青春期,意味著她有幾分成熟了,但還是會有問題。
Perl已死?
許多聲稱討厭Perl的人,給出的理由多數是其可讀性和維護非常差。
Perl語言的中心思想是:TMTOWTDI(There’s more than one way to do it),條條大路通羅馬,解決問題的辦法不止一個。Perl具有動態語言的強大靈活的特性,并且還從C/C++、Basic、Pascal等語言中分別借鑒了語法規則,從而提供了許多冗余語法。
也正是因為Perl的靈活性和“過度”的冗余語法,也因此獲得了僅寫(write-only)的“美譽”,因為Perl程序可以寫得很隨意(例如,變量不經聲明就可以直接使用),但是可能少寫一些字母就會得到意想不到的結果(而不報錯),許多Perl程序的代碼令人難以閱讀,實現相同功能的程序代碼長度可以相差十倍百倍,這就令程序的維護者(甚至是編寫者)難以維護。
同樣的,因為Perl這樣隨意的特點,可能會導致一些Perl程序員遺忘語法,以至于不得不經常查看Perl手冊。
TIOBE發布了今年12月的編程語言排行榜,前20名的榜單里,Perl一直處于下游階段。相比于Python,Perl的境遇顯得有些慘淡。當人們討論“最受歡迎的編程語言”的時候,也很少有人會提到Perl。
Perl未死!
程序員Nikos Vaggalis在一篇博客中表示,Perl仍然有巨大的使用價值,他給出了自己的理由。
多平臺支持
甚至不需要使用VM(虛擬機),Perl就可以在上百種計算機平臺和系統體系上運行,適用范圍廣泛,從Solaris到Windows 10,從大型機到便攜設備。
多用途
Perl可以應用于計算機科學的所有領域,從數據庫使用、正則表達式和解析,到系統管理, 還包括Web和桌面開發等等。Perl還被用于金融、生物以及其他領域。
豐富的語法
Perl擁有自然且富有表現力的語法,是一種成熟的編程語言。Nikos Vaggalis表示:“不要被網上流傳的‘腳本語言’的說法所迷惑。我一直不明白為什么它獲得了這個標簽,但我猜這可能是因為它與Unix shell工具awk、sed等的古老關系。” Nikos Vaggalis認為,掌握這門語言將讓許多難事變得有可能,甚至可以進入函數式編程的領域。
與Python相比, Perl的語法沒有那么多限制,畢竟它的中心思想是TMTOWTDI(不止一種方法)。“有時候我想耍小聰明,有時候我想打安全牌,有時候我想做些嘗試”,Perl提供了這樣的環境。
Nikos Vaggalis說:“我記得當Java 8引入lambda表達式和函數式編程時,整個世界都為之驚嘆。回顧過去,Perl幾十年前就有了函數式編程(參見map、grep、子例程引用、Schwartzian Transform),但是卻沒有什么反響。”
Perl的未來
Perl仍然有巨大的價值與潛力,但也不得不承認它現在陷入了窘境。如何能讓Perl重新流行起來呢?Nikos Vaggalis分享了一項調查,他表示,這個調查或許會給出答案。
問:您未來對Perl的期望是什么?
答:在不影響向后兼容性的情況下進行現代化改造。保持向后兼容性,但使其易使用現代功能。
問:作為個人,該如何支持Perl ?
答:1. 只需簡單地使用它!2. 為CPAN做出貢獻。(Comprehensive Perl Archive Network,譯為“Perl綜合典藏網”,“Perl綜合檔案網”或者“Perl程序庫”)
問:Perl社區如何做出貢獻?
答:1.推動人們對這門語言的熱情;2. 確保CPAN上有足夠好的內容來完成任務
問:Perl基金會如何幫助社區實現目標?
答:1. 宣傳Perl的功能。將Perl集成到供應商的工具中會很有幫助,Python似乎是許多供應商的寵兒。
2. 招募一些大牌公司加入他們的軟件開發工具包。Perl在現代SDK中缺乏存在感,這導致許多人覺得它無關緊要。
Nikos Vaggalis表示,無論什么情況下,Perl的長壽和繁榮都是有保證的。你怎么看呢?
參考鏈接:
https://www.i-programmer.info/programming/perl/15105-perl-turns-34-a-retrospective.html?start=1
https://baike.baidu.com/item/perl/851577#2
https://zh.wikipedia.org/wiki/Perl
https://www.tiobe.com/tiobe-index/
往期推薦
虛幻引擎5上的《黑客帝國》全新體驗,愛了愛了
低代碼發展專訪系列之七:低代碼的火爆需要不一樣的聲音么?
Log4j 第三次發布漏洞補丁,漏洞或將長存
5G專網,路在何方?
點分享
點收藏
點點贊
點在看
總結
以上是生活随笔為你收集整理的34 年了,“杀”不死的 Perl!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用 ESS SDK 快速创建多实例规格
- 下一篇: 真香!8 行代码搞定最大子数组和问题