客觀地說,Perl 是不是快死了?
新項目還有人會選 perl 作開發語言嗎?知名的項目只知道 bugzilla 一個,我覺得 perl 天書一樣的代碼風格挺難維護的。
顯然不會,儘管Perl可能並不適用於應用類的開發,或者做CGI的web開發,但是作為腳本語言在數據挖掘、linux系統管理等偏重於面向過程的文本處理分析方面仍然是十分順手的工具,並且有很多自動化測試領域的工具都是Perl寫的,所以顯然Perl還活得好好的,只是逐漸淡出了為人們所熟知的Perl CGI開發而已。在百度用Perl的人很多,大多數據挖掘數據分析都是用Perl完成的。
2006 年就有 perl is dying 的聲音。ok,轉一篇水母 D 大的文:
發信人: Dieken (風催草低 - 明月何嘗不照人), 信區: Perl
標 題: Re: Perl is dying
發信站: 水木社區 (Wed Dec 7 18:00:37 2011), 轉信2006 年的文章。。。
看看歷史吧,這是個 dying 的東西么?
$ perldoc perlhist
5.8.8-RC1 2006-Jan-20
5.8.8 2006-Jan-31 5.8.9-RC1 2008-Nov-10 5.8.9-RC2 2008-Dec-06 5.8.9 2008-Dec-14Hugo 5.9.0 2003-Oct-27 The 5.9 development track
Rafael 5.9.1 2004-Mar-16 5.9.2 2005-Apr-01 5.9.3 2006-Jan-28 5.9.4 2006-Aug-15 5.9.5 2007-Jul-07 5.10.0-RC1 2007-Nov-17 5.10.0-RC2 2007-Nov-25Rafael 5.10.0 2007-Dec-18
David M 5.10.1-RC1 2009-Aug-06 The 5.10 maintenance track
5.10.1-RC2 2009-Aug-18
5.10.1 2009-Aug-22Jesse 5.11.0 2009-Oct-02 The 5.11 development track
5.11.1 2009-Oct-20 Leon 5.11.2 2009-Nov-20 Jesse 5.11.3 2009-Dec-20 Ricardo 5.11.4 2010-Jan-20 Steve 5.11.5 2010-Feb-20 Jesse 5.12.0-RC0 2010-Mar-21 5.12.0-RC1 2010-Mar-295.12.0-RC2 2010-Apr-01
5.12.0-RC3 2010-Apr-02 5.12.0-RC4 2010-Apr-06 5.12.0-RC5 2010-Apr-09Jesse 5.12.0 2010-Apr-12
Jesse 5.12.1-RC2 2010-May-13 The 5.12 maintenance track
5.12.1-RC1 2010-May-09 5.12.1 2010-May-16 5.12.2-RC2 2010-Aug-31 5.12.2 2010-Sep-06Ricardo 5.12.3-RC1 2011-Jan-09
Ricardo 5.12.3-RC2 2011-Jan-14 Ricardo 5.12.3-RC3 2011-Jan-17 Ricardo 5.12.3 2011-Jan-21Leon 5.13.0 2010-Apr-20 The 5.13 development track
Ricardo 5.13.1 2010-May-20 Matt 5.13.2 2010-Jun-22 David G 5.13.3 2010-Jul-20 Florian 5.13.4 2010-Aug-20 Steve 5.13.5 2010-Sep-19Miyagawa 5.13.6 2010-Oct-20
BinGOs 5.13.7 2010-Nov-20 Zefram 5.13.8 2010-Dec-20 Jesse 5.13.9 2011-Jan-20 var 5.13.10 2011-Feb-20 Florian 5.13.11 2011-Mar-20 Jesse 5.14.0RC1 2011-Apr-20 Jesse 5.14.0RC2 2011-May-04 Jesse 5.14.0RC3 2011-May-11 Jesse 5.14.0 2011-May-14 The 5.14 maintenance trackJesse 5.14.1 2011-Jun-16
Florian 5.14.2-RC1 2011-Sep-19 5.14.2 2011-Sep-26不可能死。相反,生命力旺盛。只是大家看不到罷了。Perl 語言是最符合霍夫曼編碼準則的,最常用的以最簡單的形式表示,潛台詞的以約定默認的方式運行。Perl 是面向程序員的,其他大多數語言是面向機器的。其實 Perl 是懶人最喜歡的,所謂的難學都是開始的時候被別人嚇到的。
雖然對編程語言不是那麼熟,但作為腳本語言,Perl在文本處理方面確實有它的優勢,在Lunix系統下直接調用處理文本非常方便快捷,而且處理效率很高。
不好看但能幹活的語言
如果需要寫一個各unix機通用的腳本, perl仍然是好選擇.不需要考慮bsd find和gnu find的區別 很少機器不帶解釋器搞社科的也來嗶嗶兩句吧。本人的研究領域需要進行大量的文本處理與提取,所用工具一直是Perl。本人博士論文所需的數據也是用Perl來搞定的。在文本處理方面,本人的使用經驗證明Perl最強,沒有之一。原因很簡單,人家就是干這個的!近來試圖使用Python代替Perl做語料分析與提取,試來試去發現Python至少在這一塊還是有點low。別的不說,一沾上正則表達式,Python就得調用模塊和各種函數,n行代碼才能搞定的東西對於Perl而言也就是幾個運算符的事。結論:Perl至少在我們這個領域是絕對死不了的,誰用誰知道!
我們的build system裡面那一萬多行的perl腳本還在不斷地更新呢,很多東西一旦依賴了你就甩不掉了
在我的工作中,經常用到perl,以Perl作為主要語言寫過兩個工具。它用來處理分析文本信息相當的給力,速度也很快,尤其是正則表達式。所以我覺得它並不會死亡,依然有用武之地!
perl的靈活性和文本處理能力無與倫比。很早接觸了perl,其實perl可應用的領域並不僅僅是數據挖掘、文本處理而已,曾經用perl/tk實現了一個linux下的圖形界面的MP3播放器當做perl語言課程的作業,perl做起UI程序來一樣沒有問題。
近些年來感覺到所謂流行趨勢的沒落,個人覺得還有一部分原因是由於perl 6 和perl 5的割裂。perl 6的雄心太龐大,編譯器非要自己實現自己,進展異常緩慢,說到底沒有大公司的支持,perl語言死肯定不會死,但也不會再那麼「流行」起來perl一統廣東移動運維N多年。
題主這個問題是2011年問的,5年過去了,Perl還是沒有死。
今年YAPC NA上ActiveState的技術總監有個發言,名為The Perl Paradox [1]。說的是一方面近年來Perl給人悄無聲息的感覺,另一方從Tiobe看Perl卻還在前十的位置且近兩年份額有所增長,實際上ActiveState的Perl業務也在增長。於是他們做了一個調查(雖然樣本有點小),結果顯示:- 大公司的Perl使用量依然很多。(即使想換哪有那麼容易)
- 三四年以內經驗的Perl程序員佔了相當比例。(不只是中老年人的玩具)
- 使用較新Perl版本的佔了相當比例。(每年推出新版本保持了Perl的活力)
- 非IT業的Perl使用者佔了相當比例。(世界很大)
實際上Perl5的應用是很廣泛的,只是這幾年沒出很多時髦的東西可宣傳,Perl community也不太擅長宣傳(Larry Wall本人的精力都在宣傳Perl6上了),以至於局外人看不到罷了。近幾年的幾個在社區外比較有名的公司,比如http://booking.com和duckduckgo這些,很多人也不知道它們是Perl shop。在另一個blog post中[2],ActiveState稱Perl為"the secret workhorse」,並提到LinkedIn上的Python工作量也就是Perl的兩倍左右(說明差距並非特別懸殊)。
[1] (需翻牆)https://www.youtube.com/watch?v=Df5Q4iPBNKMlist=PLA9_Hq3zhoFykB5TDa4OjI6uoTg9OtABTindex=48
[2] http://www.activestate.com/blog/2016/03/perl-secret-workhorsePerl在我開發的設備上有廣泛的應用,在可預見的將來仍會繼續使用.
接觸Perl之後,我發現它確實是一個強大,方便,而且易用的工具.Perl自有它生存的土壤.
而且Perl並不難學,幾個基本的文檔一讀,就能應付日常的開發需求.當然後續還要繼續磨礪技能.日常開發和網上學習的過程中,經常能見到讓我眼前一亮的代碼. 用我沒有想到過的方式輕鬆地解決看似很複雜的問題.Perl在幾乎所有Linux/Unix平台上都有安裝, 巨大的用戶基礎決定了它不會輕易死. 它會淡出一些開發領域, 但在一些它適合的領域將會長期存在.大概所有的ic企業都在用perl做文本處理的工作吧,像verilog和vhdl這些rtl語言我們經常寫perl腳本進行集成和修改,還有測試用例很多也是用perl腳本生成的
我們BI系統里的幾千個代碼還在日夜運行並不斷有修改和新增呢!
學過很多種編程語言。但是這幾天狂學習perl,發現perl還是有很多優點,值得花時間多看看。針對不同的問題,用不同語言。特別方便。當然也有人用一種語言處理各種不同的問題。
perl絕對是語言中孤僻的異類,任何語言都會活在各種已經存在的系統和維護人員的心中。
對perl來說:靈活到凌亂的語法,$@% ([{,隱含變數, sub, closure,包,模塊,絕對非主流的OOP,還有tie簡直讓我驚呆了不過基本上每個語言,使用上無非面向過程或OO,只是各語言實現方法和使用不同而已。
唯一的抱怨是:為什麼函數調用都那麼多種方法