本文比較了各種語(yǔ)言,包括語(yǔ)法和執(zhí)行、變量和表達(dá)式、數(shù)學(xué)和邏輯、字符串、正則表達(dá)式、日期和時(shí)間、可變數(shù)組、字典、函數(shù)、執(zhí)行控制、異常、并發(fā),以及文件、對(duì)象、繼承和多態(tài)、反射、網(wǎng)絡(luò)和web、單元測(cè)試等等方面。
但是,我比較想了解一下這些語(yǔ)言的設(shè)計(jì)哲學(xué),可惜沒(méi)有~
InterPReted Languages(解釋型語(yǔ)言):javaScript, php, Python, Ruby。相對(duì)編譯型語(yǔ)言,源代碼不直接翻譯成機(jī)器語(yǔ)言,而是先翻譯成中間代碼,再由解釋器對(duì)中間代碼進(jìn)行解釋運(yùn)行。因此,解釋型語(yǔ)言的程序不需要編譯,在運(yùn)行時(shí)才翻譯成機(jī)器語(yǔ)言,每執(zhí)行一次都要翻譯一次,因此效率比較低,而且依賴(lài)解釋器,但跨平臺(tái)性好。
More Interpreted Languages(更多的解釋型語(yǔ)言):Perl, Tcl, Lua, Groovy
Operating System Automation(操作系統(tǒng)自動(dòng)化):POSIX Shell, Cmd.exe, PowerShell。這些語(yǔ)言是一種命令行外殼程序和腳本環(huán)境。
GUI Scripting(GUI 腳本):Smalltalk, AutoHotkey, AppleScript
Stack-Oriented Languages(面向堆棧的語(yǔ)言):Forth, PostScript
Prolog and Erlang:Prolog, Erlang
Lisp Dialects(Lisp 方言):Common Lisp, Racket, Clojure, Emacs Lisp
C++ Style Languages(C++風(fēng)格的語(yǔ)言):C++, Objective-C, Java, C#
C, Go, and Dart:C, Go, Dart
Pascal Style Languages(Pascal 風(fēng)格的語(yǔ)言):Pascal, Ada, PL/pgSQL
Rust, Swift, Scala:Rust, Swift, Scala
ML Dialects and Haskell:SML, OCaml, F#, Haskell
Numerical Analysis & Statistics(數(shù)值分析和統(tǒng)計(jì)):MATLAB, R, NumPy
Relational Data Languages(關(guān)系數(shù)據(jù)語(yǔ)言):SQL, Awk, Pig
Fortran and APL:Fortran, APL
Gnuplot, GLPK, Coq:Gnuplot, GLPK, Coq
Computer Algebra Software(計(jì)算機(jī)代數(shù)軟件):Mathematica, SymPy, GAP, Pari/GP
Unix Shells:ash, Fish, Ksh, Tcsh, Zsh
Text Mode Editors(文本編輯器):Vim, Emacs, Nano
Version Control(版本控制):Git, Mercurial
Build Tools(生成/構(gòu)建工具):Make, Rake, Ant, MSBuild
Terminal Multiplexers():Screen, Tmux
Relational Databases(關(guān)系型數(shù)據(jù)庫(kù)):PostgreSQL, MySQL, SQLite
Lightweight Markup(輕量級(jí)標(biāo)記):Markdown, reStructuredText, MediaWiki, AsciiDoc, Org-mode
2D Vector Graphics(二維矢量圖形):PostScript, Processing, SVG
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注