[轉]編程語言的聖戰

討論那種編程語言比較好實在是一個危險的工作, 隨時可能被人拖出去海k一頓
以下是個人觀點, 你不同意, 那是你的事情, 不要打我:

機器語言: 不是人學的, forget it.

彙編語言: 是目前還能學到的最低級的語言, 功能最強大, 只有你編不出來的, 沒有做不到的. 但是開發效率很低, 在寫應用程序的時候不推薦, 越少用越好, 對效率, 程序長度要求很高, 寫shellcode或直接對硬件[單片機]進行操作的時候才使用.
Windows下著名的開發環境有MASM和TASM

C: 高級語言中效率最高的一個 [確切地說是中級語言], 平臺兼容性非常的好, 幾乎所有系統都有C語言編譯器. 語言本身比較簡單, 結合操作系統後功能強大, 巔峯境界幾乎是無所不能, 但對於大工程的開發效率不高. 適合任何階段的人士使用, 尤其適合初學者.[你不學我看看.]

FORTRAN: 適合數學運算的語言, 在DOS, Windows, UNIX下均有環境. 現在學的人比較少了, 但還是有點用的, 如果你是專業人士, 可以學習一下, 有幫助的.

BASIC: "初學者通用指令碼"的縮寫, 是一種簡單的語言, 功能不強, 開發效率高, 運行效率低, 在DOS平臺下著名的BASIC平臺有Turbo Basic, Quick Basic, Visual Basic for DOS;在Windows平臺下有Visual Basic, Real Basic, Repaid-Q等; 在Linux下有KBasic; 在Mac下有Real Basic for Mac. 純粹的BASIC語言除了對學習編程本身以外現在幾乎沒有什麼用處, Visual Basic等開發工具提供了一些比較強大的庫來擴充功能, 但因爲實在是太簡單了, VB幾乎不是編程, 而大多數時間是在"畫程", 對初學者有害無益, 不要學習vb.

Pascal: 很流行的一種語言, 目前其面向對象[OO]版本Object-Pascal應用相當廣泛. 代 表開發工具有Turbo Pascal, Delphi, Kylix [均爲Borland公司產品]. 開發效率一般, 運行效率較高. 在教學, 應用和系統各方面都有使用 [個人感覺是沒什麼特點的一個語言]

LOGO: 基本上是給小學生接觸電腦用的, 也有人來進行簡單的幾何繪圖. 又叫"小海龜" 在DOS和Windows上均有運行環境 [中文小海龜].

COBOL: 商業開發語言, 曾經極度流行, 現在很少有人用了. 個人感覺開發效率不是很高, 由於當年COBOL程序員的過量培養, 導致了大批的事業情況, 現在同樣的情況也發生在C程序員身上.

C++: 全世界應用最廣泛的語言, 主流語言中功能最強大[最近聽到另一個試驗期的語言據說比C++還猛]. 開發平臺多地說不完, 在Windows上主要Borland C++ Builder和Visual C++, 我個人使用Dev-C++. 開發效率一般, 運行效率較高. 支持三種變成模式:面向過程, 面向對象, 模板. 在應用編程方面主要應用其面向對象的特性. 難度一般, 但應用就比較麻煩. 如果你想拍拍胸脯說:"我是個程序員"的話就學C++吧.

Java: 解釋型的語言, 基於虛擬機, 真正的面向對象[一切都是類]在web中的applet應用廣泛, 在系統編程方面一無是處, 但可以跨平臺: 一次編寫, 到處運行 [戲稱: 一次編寫, 到處調試]. 開發效率高, 運行效率低. 另外, 在嵌入式系統中的應用也比較常見. Borland 的JBuiler, IBM的Visual Age for Java以及Visual Cafe等都是常見的開發環境.

Python: 我喜歡的語言. 腳本語言, 支持面向對象, 語法優美, 易學易用, 功能強大, 跨平臺, 在各種UNIX, Mac, Windows上都有平臺. 非常適合初學者, 在CGI以及小應用方面比較合適.

C#: 微軟公司生產的雞肋語言, 幾乎是Copy Java的, 在各個方面都很像, 而且不如Java, 只是有了MS的大量金錢支持, 纔會慢慢進入市場. 不管有沒有錢途, 我都不喜歡, 也不推薦任何人學.

Shell: 分系統, Windows的Shell在NT內核下比較強大, Unix的一向都很不錯. 做一些小小的工作的時候可以省力, 幾乎需要學習.

PERL: 一種腳本語言, 在各種系統上都有環境. 學起來不是很簡單, 符號化太嚴重了, 一般用於做生物數學和CGI, 功能強, 非常流行.

PHP: 也是一種腳本語言, 用於寫CGI. 流行

ASP: 並不是一種語言, 是一個規範, 一般基於VBscript, 用於編寫CGI, 非常流行.


以上是幾種主流語言的評論, 說實話一個Programmer不會LISP是十分可笑的事情, 但很可惜, 我的確沒有接觸過LISP也就不敢妄加評論. 還有一些非主流的語言:

Prolog: 人工智能常用的"語言", 其實最後是翻譯成C語言

SmallTalk: 最早實現OO的幾種語言之一, C++的靈感來源

HTML: 不是一種編程語言, 是一個標籤描述腳本, 用來寫網頁的

  編程語言有幾千幾百種, 剩下的都是一些專業領域的, 是古老的, 或者是仍處在試驗期的語言, 但也難免掛一漏萬, 望這些語言的Programmer見諒.
代程序設計語言不斷繁衍嬗變,進化出數以千計的語種和變體。所有程序設計語言似乎都從其他語言那裏剽竊了或多或少的語法特徵,以至於語言和語言之間的界限越來越模糊,你有時還真搞不清自己正在用的到底是哪一種語言。這篇指南正是爲了解救那些在語言選型上進退維谷的程序員而設計的。

你的任務:射擊你自己的腳丫子。

C 語言:你射擊你自己的腳丫子。

C++ 語言:你意外地創建了你自己的一打實例對象,並向這24只腳丫子射擊。你無法爲你自己包紮傷口,因爲你無法斷定哪一個對象是你自己的原始拷貝,哪一個對象是你自己的指針或者引用,況且那些用指針和引用假冒你的傢伙還在不停地叫嚷:“嘿,這就是我,我在這兒!”

FORTRAN 語言:你射擊你自己腳丫子上的每一個腳趾,直到一隻腳上的所有腳趾都被打光,然後切換到下一層循環,開始射擊另一隻腳上的腳趾。如果你射光了子彈,你將繼續裝腔作勢地朝你自己射擊,因爲你沒有異常處理功能。

Pascal 語言:編譯器不會讓你射擊你自己的腳丫子。

Ada 語言:當你正確地把你自己的腳丫子包好以後,你試圖併發地完成以下任務:裝填子彈,拉栓,扣扳機,尖叫,射擊腳丫子。但是,當你這麼做的時候,你會發現這是一個無法完成的任務,因爲你腳丫子的數據類型不匹配。

COBOL 語言:使用柯特45型手槍,瞄準“腿.腳”,將“臂.手.指”放到“手槍.扳機”上,按下去。然後,將槍收回皮套,檢查一下你的鞋帶是不是需要重新系一下。

LISP 語言:你射擊你自己的假肢,那條假肢拿着槍,你用這枝槍射擊你自己的假肢,那條假肢拿着槍,你用這枝槍射擊你自己的假肢,那條假肢拿着槍,你用這枝槍射擊你自己的假肢,那條假肢拿着槍,你用這枝槍射擊你自己的假肢,那條假肢拿着槍,你用這枝槍射擊你自己的假肢……

FORTH 語言:腳丫子你自己的射擊。

Prolog 語言:你告訴你的程序你想要射擊你自己的腳丫子。程序計算出你的射擊方法和步驟,但程序的語法不允許把這些東西講給你聽。

BASIC 語言:你用一把水槍射擊你自己的腳丫子。在大型系統中,射擊將持續到你的下半身都溼透了爲止。

Visual Basic:你的工作將僅僅“顯示”出你射擊了你自己的腳丫子,無論你是否在意,你將在這一過程中得到許許多多樂趣。

HyperTalk 語言:把槍裏的第一發子彈塞進你自己的左腳,然後給出結果信息。

Motif 語言:你花了好幾天時間,用界面描述語言詳細描繪你的腳丫子,你的子彈,子彈的彈道曲線,以及槍柄上覆雜的象牙雕花。當你最後騰出時間裝子彈的時候——槍卡殼兒了。

APL 語言:你射擊你自己的腳丫子,然後整天琢磨怎麼用更少的字符來完成這個任務。

SNOBOL 語言:如果你成功了,射擊你自己的左腳;如果你失敗了,射擊你自己的右腳。

併發 Euclid 語言:你射擊你自己的其他人的腳丫子。

370 系統的 JCL 語言:你把你自己的腳丫子放到系統批隊列中等待處理,裏面要包含至少400頁文檔,詳細說明你想如何處置你自己的腳丫子。3年以後,你的腳丫子回到你的面前,整隻腳都已經被烤焦了。

Paradox 數據庫:不僅你可以射擊你自己的腳丫子,你的用戶也可以。

Access 數據庫:你試圖將槍指向你自己的腳丫子,但槍卻不停地在你買Borland產品光盤上射出洞洞來。

Revelation 數據庫:你一旦指出子彈中所含的所有不同元素的功用,你就會確信你有能力射擊你自己的腳丫子了。

dBase 數據庫:你買了一枝槍。子彈只在其他公司出售。出售子彈的公司向你保證子彈是可用的,於是你也買了子彈。然後你發現,那枝槍的下一個版本纔可以真正用來做實彈射擊。

PL/I 語言:在耗盡了包括子彈在內的所有資源後,數據處理部門將其業務規模翻了一番,新購置了兩臺大型計算機,同時弄丟了你腳丫子的原型。

彙編語言:想射擊你自己的腳丫子的話,你必須先發明槍、子彈、扳機,以及你自己的腳丫子。

彙編語言的另一個版本:你搞癱了操作系統,覆蓋了根分區。於是,系統管理員跑過來射擊你的腳丫子。接下來,一番沉思之後,系統管理員射擊了他自己的腳丫子,然後單腳跳着,繞着屋子飛速轉圈,射擊他看見的每一個人。

Modula-2 語言:等你明白了你實際上不能用這種語言完成任何事情之後,你向你自己的腦袋開了一槍。

C Shell語言:你不停地檢索文檔,你的腳都等得睡着了,然後你向計算機開槍,然後切換到C語言。

Smalltalk 語言:玩兒了3周的圖形功能之後,程序經理射擊你的腦袋。或者,你反覆做着射擊你自己腳丫子的白日夢。

HTML 語言:

<a target="http://身體/下半身/腿/腳.假肢">射擊這裏</a>

Java 語言:射擊得非常漂亮,但你的腳無法確定子彈是什麼類型的對象,只好忽略了它們。

C# 語言:把你的腳丫子改寫成Java程序,然後射擊它們。

FTP:
% ftp lower-body.me.org
ftp> cd /foot
ftp> put bullets

Unix:

% ls
foot.c foot.h foot.o toe.c toe.o
% rm * .o
rm:.o no such file or directory
% ls
%

Windows 95:
d:/setup

Apple 公司:我們允許你射擊你自己,但價格很貴哦。

IBM 公司:你把彈夾裝到槍裏,等半個小時,然後子彈向四面八方發射。如果有一顆子彈碰巧射中了你的腳,那你真是太幸運了。

Microsoft 公司:“腳”這個對象將在下一版本中提供,你需要支付500美金的升級費用。

HP 公司:你可以用這挺機槍射擊你自己的腳丫子,但槍的撞針是斷的。

Sun 公司:只要Solaris系統一到,你就想射哪兒射哪兒。

發佈了4 篇原創文章 · 獲贊 0 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章