本文内容
- 编程语言
- 编程工具
本文比较了各种语言,包括语法和执行、变量和表达式、数学和逻辑、字符串、正则表达式、日期和时间、可变数组、字典、函数、执行控制、异常、并发,以及文件、对象、继承和多态、反射、网络和web、单元测试等等方面。
但是,我比较想了解一下这些语言的设计哲学,可惜没有~
编程语言
Interpreted Languages(解释型语言):JavaScript, PHP, Python, Ruby。相对编译型语言,源代码不直接翻译成机器语言,而是先翻译成中间代码,再由解释器对中间代码进行解释运行。因此,解释型语言的程序不需要编译,在运行时才翻译成机器语言,每执行一次都要翻译一次,因此效率比较低,而且依赖解释器,但跨平台性好。
More Interpreted Languages(更多的解释型语言):Perl, Tcl, Lua, Groovy
Operating System Automation(操作系统自动化):POSIX Shell, Cmd.exe, PowerShell。这些语言是一种命令行外壳程序和脚本环境。
GUI Scripting(GUI 脚本):Smalltalk, AutoHotkey, AppleScript
Stack-Oriented Languages(面向堆栈的语言):Forth, PostScript
Prolog and Erlang:Prolog, Erlang
Lisp Dialects(Lisp 方言):Common Lisp, Racket, Clojure, Emacs Lisp
C++ Style Languages(C++风格的语言):C++, Objective-C, Java, C#
C, Go, and Dart:C, Go, Dart
Pascal Style Languages(Pascal 风格的语言):Pascal, Ada, PL/pgSQL
Rust, Swift, Scala:Rust, Swift, Scala
ML Dialects and Haskell:SML, OCaml, F#, Haskell
Numerical Analysis & Statistics(数值分析和统计):MATLAB, R, NumPy
Relational Data Languages(关系数据语言):SQL, Awk, Pig
Fortran and APL:Fortran, APL
Gnuplot, GLPK, Coq:Gnuplot, GLPK, Coq
Computer Algebra Software(计算机代数软件):Mathematica, SymPy, GAP, Pari/GP
编程工具
Unix Shells:ash, Fish, Ksh, Tcsh, Zsh
Text Mode Editors(文本编辑器):Vim, Emacs, Nano
Version Control(版本控制):Git, Mercurial
Build Tools(生成/构建工具):Make, Rake, Ant, MSBuild
Terminal Multiplexers():Screen, Tmux
Relational Databases(关系型数据库):PostgreSQL, MySQL, SQLite
Lightweight Markup(轻量级标记):Markdown, reStructuredText, MediaWiki, AsciiDoc, Org-mode
2D Vector Graphics(二维矢量图形):PostScript, Processing, SVG