5種將死的程式語言
本文由碼農網 – 小峰原創翻譯,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃!
現在的開發人員都趨向於使用新的程式語言,那麼舊的程式語言呢?它們的前途一般是這樣兩種:仍然可以使用,但逐漸不受大家歡迎;直接完全死去。和之前的十佳最受歡迎的程式語言相反,本文我們預測以下這幾種程式語言面臨著死亡威脅:
Perl
曾幾何時,幾乎每個人都在使用Perl語言程式設計。但是那些經常使用的人慢慢地發現,關於這個Perl語言似乎總是有點不對勁。至少我知道有這麼個叫做“piecemeal”的程式語言,它的創造者似乎就只是將這個功能堆在另一個功能上面而已,並沒有好好考慮將它們結合在一起。
事實上,甚至是它的創造者也不得不承認這種程式語言是有問題的。經過完整地改造之後,現在的開發工作開始傾向於使用Perl6,這個大概是在2000年的時候。至於Perl?儼然已經銷聲匿跡了!所以完全沒有必要去學習它了。順便說一句,下面這個“Goodbye World”就是用Perl寫的:
#!/usr/bin/perl
print “Content-type: text/html\n\n”;
print “Goodbye, world!\n”;
上面這個例子會出來一個網頁。現在的Perl,由於可以作為CGI指令碼語言,所以使用的最廣泛的是在生成web頁面上。但是為了適應時代的變化,我們最好還是將Perl語言“棄之如敝履”。
Ruby
關於Ruby,可以這麼唱“十年之後,我不認識你你不屬於我……”。因為就在10年前,Ruby語言可謂是風靡一時。它出生於1995年,5年左右達到它的鼎盛時期。如果你經常使用的話,絕對會義無反顧地愛上它。但是,像我們這些學著C語言風格長大的孩子在學習Ruby時往往會覺得有點囧。
下面是用Ruby寫的“Goodbye World”:
puts ‘Bye bye, Miss American Ruby! Drove my Chevy to the Levie…’
puts ’2011 was the day that Ruby died, yeah…’
下面是一個用於計算階乘的例子:
def fact(n)
if n == 0
1
else
n * fact(n-1)
end
end
puts fact(ARGV[0].to_i)
我測試了這個例子,來計算1000的階乘。下面是結果(由於篇幅限制,中間略過了2569個數字):
ruby fact.rb 1000
40238726007709377354370243392300…0000000
從各方面來看,Ruby都很好,幾乎是一片讚譽聲……除了Twitter。 在2011年4月,Twitter宣稱他們已經將幾乎大部分的程式碼都改寫過了,以便不必使用Ruby和它的web框架——Ruby on Rails,據他們所說這個平臺非常之低效。不過,我想說的是,也正是那一天起,Ruby開始走下坡路,使用的人數也是越來越少。
Visual Basic.NET
十年前,我應聘到一個需要重寫大量程式碼的公司,名字我已經忘記了,主要工作就是將VB6轉換為Visual basic.NET。大概就只幹了一兩個月吧,我就跳槽了:真心太痛苦了。
微軟鍾愛於BASIC程式語言的擴充套件可以一路追溯到1991年,那時他們剛剛採購了來自Alan Cooper的一個非常酷(對於那個時候而言)的視覺化程式設計設計。Alan Cooper初期使用的是別的程式語言,但是比爾蓋茲讓他換成BASIC語言,因為蓋茨認為那是當時最為簡單的程式語言。於是乎,大名鼎鼎的Visual Basic,就從BASIC中衍生出來——物件這一概念以及新的程式設計技術問世了。
後面又發生了一些很有意思的事情。Borland Delphi的創造引領者,Anders Hejlsberg也到微軟工作,並且引領建立了一個新的程式語言——C#。這種程式語言非常類似於Java語言。剛開始的學習或許有點難,但是一旦上手,你絕對會對它愛不釋手。C#很快就成為了微軟的旗艦程式語言。現在的話,在軟體行業中,有很多很多需要C#的工作崗位,不少都是高薪聘用的。
雖然針對自己的CLR執行,微軟建立了C#,但是它的工程師們另外還建立了一個蓋茨深愛的BASIC語言版本,命名為Visual Basic.NET。該程式語言借用了BASIC語言的語法,但是它的編碼方法卻與C#相似。雖然Visual Basic.NET也在發展,但是優勝劣汰總是不可避免的——大家都選擇了C#,於是Visual Basic.NET就成為了明日黃花。
下面是摘自微軟網頁上的一段Visual Basic.NET程式:
‘ Allow easy reference to the System namespace classes.
Imports System
‘ This module houses the application’s entry point.
Public Module modmain
‘ Main is the application’s entry point.
Sub Main()
‘ Write text to the console.
Console.WriteLine (“Hello World using Visual Basic!”)
End Sub
End Module
(這裡的“Hello World”也可以替換成“Goodbye World”,這個沒關係。)
Adobe Flash和AIR
從技術上講,這些都是平臺,而非程式語言。我之所以將它們包含進來是因為如果你想要使用它們,就必須安裝Adobe自己的ECMAScript版本,即ActionScript。 ActionScript是JavaScript(當前最流行的程式語言之一,因為它能用於所有的瀏覽器)的一個近親。 ActionScript在ECMAScript(這是JavaScript實現標準的官方名稱)中增加了一些細節;但是除了Adobe Flash,其他地方几乎沒有ActionScript的用武之地。
你使用Flash不?賈伯斯非常討厭它,並且也不允許iPhone使用它。然後隨著iPhone(以及隨後的iPad)的逐漸普及,Web開發人員不得不建立不必依賴於Flash的網站。那些以ActionScript為生的開發人員也不得不紛紛下崗。(我曾經看到過一個Flash開發人員指責另一個JavaScript開發人員毀了他的職業生涯。)
Adobe也曾試圖通過AIR以求得其程式設計平臺的一線生機,於是配建了一個用於構建AIR app的工具,稱為Flex。至於AIR,許多人都說,這是一場災難。不過我們目前也不知道為什麼Adobe會推出AIR,可能是想用AIR取代Flash?也可能是想要AIR和Flash相親相愛共同發展?
記得有一段時間,得益於Twitter平臺——TweetDeck(要求使用者在電腦上安裝AIR執行時)的使用,AIR很是紅火了一陣子。那時大概有數以百萬計的pc AIR應用被開發出來,只是後來Twitter在2011年買了TweetDeck之後,又改寫原生程式碼取代了AIR。於是乎,AIR的輝煌就到此為止。
隨著Flash和AIR的逐漸逝去,Adobe的ActionScript也開始向世界吻別。下面是一些用ActionScript寫的程式碼示例。
package {
import flash.display.*;
import flash.text.*;
public class HelloWorld extends Sprite {
private var greeting:TextField = new TextField();
public function HelloWorld() {
greeting.text = “Hello World!”;
greeting.x = 100;
greeting.y = 100;
addChild(greeting);
}
}
}
(你可能會發現這與JavaScript非常相似,都使用var、function和new,並且也使用小數點來訪問成員變數。)
Delphi’s Object Pascal
首先我得向我曾經的好夥伴Delphi表示歉意,因為我不得不公佈Object Pascal的“死訊”。well,Delphi(用於發Object Pascal的工具)歷經變遷之後,依然苟延殘喘著(它起源於Borland公司,現在抱著Embarcadero公司的大腿)。
早先Delphi和它的Object Pascal語言確實給我們提供了一個良好的工作環境:雖然有點囉嗦,但是編譯器很快,而且相比Visual Basic(這裡指的是pre-Visual Basic.NET,1995年左右),建立Windows程式更容易。
但是它的優勢並沒有持續下去。也很難說是什麼原因,因為這個平臺真心是不錯的。就在這時,Borland公司開始在其Delphi的產品線上支援C#和C++。發展到後來,Borland公司甚至直接將Delphi賣給了Embarcadero公司,然後Embarcadero公司繼續使用Delphi開發產品。話說,它做得相當不錯,但是重點再也不是Pascal了。當然,你依然可以用Pascal程式設計,但是幾乎沒人走這條路了。事實上,我們可以使用Delphi建立許多不同的平臺,包括iOS、Android,以及即將到來的Linux作業系統。
但是,如果你去Embarcadero公司的網站看看,你會發現他們主要是在促進Delphi’s C++ 的支援。因此,換言之就是,Object Pascal已然逝去了。寫到這裡,我不禁悲從心來,因為我花了很多很多時間來學習Pascal語言,特別是Delphi’s Object Pascal。但是沒辦法,現實就是如此殘酷,不轉行就只能餓死。
下面請看Object Pascal的程式碼:
program HelloWorld;
begin
writeln(‘You say goodbye.’)
譯者注:以上觀點僅代表作者個人觀點,請文明禮貌按秩序吐槽。
譯文連結:http://www.codeceo.com/article/5-die-programming-language.html
英文原文:5 Programming Languages Marked for Death
翻譯作者:碼農網 – 小峰
[ 轉載必須在正文中標註並保留原文連結、譯文連結和譯者等資訊。]
相關文章
- 程式設計師都不知道的5種將死的程式語言程式設計師
- 定了!2020年,6種將死的程式語言!
- 如何用各種程式語言殺死一條龍
- 5種方式將機器學習帶到Java、Python以及Go等程式語言機器學習JavaPythonGo
- 將會改變未來IT世界的十種程式語言
- 5種你可能從未聽說過的程式語言
- C語言:一種高效、易學的程式語言C語言
- 史上最奇葩的5種程式語言,有的甚至模擬奶牛
- 20 種最奇怪的程式語言
- 我眼中的各種程式語言
- 12 種程式語言的起源故事
- 五種即將消亡的程式語言:Erlang首當其衝 (Chris)
- Dice :這 5 種程式語言未來可能各自成王
- 哦!這該死的 C 語言
- 哪種程式語言的開發者最幸福?
- 部署Go語言程式的N種方式Go
- 幾種常用程式語言的區別
- 漫畫:各種程式語言的困境
- 幾種程式語言的優缺點
- 你需要掌握的三種程式語言
- IT公司中最流行的10種程式語言
- 11 種程式語言的常用按鍵
- 哪種程式語言最流行?
- 如果程式語言是種武器
- 13 種程式語言名稱的來歷
- 哪種程式語言的影響力最大?
- 扯扯各種程式語言的吉祥物
- 22種程式語言新年快樂
- 哪種程式語言最熱門?
- 256種程式語言大薈萃
- 假如女人是一種程式語言
- 05 在谷歌,排名前5的程式語言谷歌
- 七週學會七種語言:學習程式語言的實用指南
- ASP程式中常使用的幾種指令碼語言指令碼
- Java是一種廣泛使用的程式語言Java
- Hack:用於HHVM的一種新程式語言
- 幾十種程式語言的快速入門教程
- 看看各種程式語言是如何相互瞧不起的