當咱們學習一門編程語言時,都是從「Hello, World!」開始。全部程序員在其職業生涯中,都至少接觸過一個經典的「Hello, World!」 程序。一般程序員會使用多種編程語言,多的甚至實現了十幾種。ios
還有一種稱爲TTHW(Time to 「Hello, World!」)的方法,來衡量程序員建立一個新的「Hello, World!」程序的時間。c++
你能夠用多少種不一樣的語言編寫一個「Hello, World!」程序,你的答案是什麼?程序員
讓咱們在計算機編程的世界裏回顧一翻。我會向你展現50種不一樣編程語言編寫的「Hello, World!」程序。同時讓你看到計算機編程語言隨時間的演變。web
01 彙編語言- 1949面試
彙編語言建立於1949年。下面我介紹一種經典的彙編語言,適用於Intel 8080 8位處理器,該處理器後來在1974年4月正式推出。shell
bdos equ 0005H ; BDOS entry point start: mvi c,9 ; BDOS function: output string lxi d,msg$ ; address of msg call bdos ret ; return to CCP msg$: db 'Hello, world!$' end start
02 Fortran - 1957數據庫
Fortran編程語言是Formula Translation的派生。它是一種彙編命令式程序設計語言,特別適合於數值計算和科學計算。Fortran語言建立於1957年,用這種語言寫的「Hello, World!」:編程
PROGRAM Hello WRITE (*,*) 'Hello, World!' STOP END
在Fortran 90或95版本中,程序「Hello, World!」能夠這樣寫:c#
PROGRAM Hello WRITE (*,*) 'Hello, World!' END PROGRAM Hello
03 Lisp - 1958瀏覽器
Lisp是最古老的命令式和函數式編程語言。它最初建立於1958年,在20世紀70年代和80年代,Lisp最終成爲人工智能世界中很是流行的語言。
(write-line "Hello, World!")
04 Cobol - 1959
Cobol編程語言於1959年正式建立,2019年剛剛60週年。Cobol是COmmon Business Oriented Language的縮寫,它本來是一種用於編寫業務應用程序的公共語言。到2019年,Cobol仍然普遍應用於銀行和保險領域。
IDENTIFICATION DIVISION. PROGRAM-ID. HELLO-WORLD. PROCEDURE DIVISION. DISPLAY "Hello, World!" STOP RUN.
05 BASIC - 1964
BASIC是Beginner’s All-purpose Symbolic Instruction Code的首字母縮寫,它是一種高級編程語言,其主要特色是易用性。
PRINT "Hello, World!" END
06 Logo - 1968
Logo是爲了更容易使用Lisp語言,常常被稱爲「Lisp without brackets」。具體來講,Logo是一種面向對象的編程語言。
print [Hello World !]
07 B - 1969
建立於1969年的B語言如今已通過時了,但它仍然扮演着重要的角色,由於它激發了C語言的靈感,而C語言至今仍被普遍使用。
main() { putstr("Hello world!*n"); return(0); }
08 Pascal - 1970
Pascal是建立於1970年的命令式編程語言。它是爲教學目的而設計的,其特色是語法清晰、嚴謹,有助於良好的程序結構。
begin writeln('Hello, World!') end.
Turbo Pascal建立於1983年,是Pascal編程語言的集成開發環境。它在20世紀80年代和90年代取得了巨大的成功。
program HelloWorld(output); begin writeln('Hello, World!'); readln; end.
09 Forth - 1970
Forth是一種基於命令式的計算機編程語言,由Charles H. Moore於20世紀60年代發明,其第一個版本於1970年發佈。它在1994年被ANSI標準化,並在1997年被ISO採用。
: HELLO ( -- ) ." Hello, World!" CR ; HELLO
10 C - 1972
C語言是1972年在貝爾實驗室發明的,當時丹尼斯·裏奇(Dennis Ritchie)和肯·湯普森(Ken Thompson)正在開發UNIX。Ken Thompson以前開發了B語言。Dennis Ritchie決定從B語言中得到靈感,經過添加類型來建立C語言。
#include <stdio.h> int main(void) { printf("Hello, World!\n"); return 0; }
11 Smalltalk - 1972
特別是受到Lisp語言的啓發,Smalltalk是一種面向對象、自反性和動態類型的編程語言,發明於1972年。Smalltalk是最先擁有集成開發環境的編程語言之一。
Transcript show: 'Hello, world!'; cr.
12 Prolog - 1972
Prolog是一種與人工智能和計算語言學相關的邏輯編程語言。Prolog建立於1972年。
:- write('Hello, World!'),nl.
13 ML - 1973
ML是一種基於Lisp的函數式編程語言。
print "Hello, World!\n";
14 Scheme - 1975
Scheme建立於1975年,是一種支持函數式和命令式編程的多範式編程語言。這是基於Lisp的三大語言之一,另兩種是Common Lisp和最近建立的Clojure。
(display "Hello, World!") (newline)
15 SQL - 1978
SQL(Structured Query Language)結構化查詢語言,是一種用於操做關係數據庫的標準化計算機語言。它也能夠設計「Hello, World!」。
CREATE TABLE message (text char(15)); INSERT INTO message (text) VALUES ('Hello, World!'); SELECT text FROM message; DROP TABLE message;
16 C++ - 1980
最初在1980年由Bjarne Stroustrup以C和類的名義建立,後來在1983年以c++語言命名。c++編程語言如今已被ISO標準化,並普遍應用於工業和其餘領域。
#include <iostream> using namespace std; int main() { cout << "Hello, World!" << endl; return 0; }
17 Ada - 1983
Ada是一種面向對象的編程語言,於1980年初開發,1983年正式發佈。「Ada」這個名字是爲了記念Ada Lovelace,她是有史以來第一位女計算機科學家。
Ada一般用於高可靠性和安全性的實時和嵌入式系統。
with Ada.Text_IO; procedure Hello is begin Ada.Text_IO.Put_Line ("Hello, World!"); end Hello;
18 Common Lisp - 1984
Common Lisp,一般縮寫爲CL,是由ANSI標準化的Lisp語言規範。
(princ "Hello, World!")
19 MATLAB - 1984
MATLAB,用於「矩陣實驗室」,是一種用於數值計算的腳本語言。MATLAB的開發環境也叫這個名字。
disp('Hello, World!')
20 Eiffel - 1985
Eiffel是一種面向對象的編程語言。Eiffel基於當今很是流行的概念,如契約編程或重用。
class HELLO_WORLD create make feature make do print ("Hello, world!%N") end end
21 Objective-C - 1986
Objective-C是一種自反的面向對象編程語言。它是C編程語言的擴展,與c++相似,但在動態消息分發或動態加載方面與c++有很大的不一樣。
現在,它主要用於蘋果的操做系統:macOS及其iOS衍生產品。
#import <Foundation/Foundation.h> int main() { @autoreleasepool { NSLog(@"Hello, World!"); } }
22 Erlang - 1986
Erlang編程語言支持幾種範例:併發、實時、分佈式。它基於actor模型,具備容錯和熱更新功能,可以開發高可用性應用程序。
io:format("Hello world!~n").
23 Perl - 1987
Perl是Larry Wall在1987年建立的一種編程語言,用於輕鬆地處理基於文本的信息。Perl是一種解釋語言,它受到C語言的控制和打印結構的啓發,也受到shell腳本語言的啓發。
print "Hello, World!\n";
24 Caml - 1987
Caml是Categorical Abstract Machine Language的縮寫,是一種面向程序安全性和可靠性的通用編程語言。Caml支持函數式、命令式和麪向對象的編程風格。它也是一種很是獨特的語言。
print_string "Hello, World!\n";;
25 Tcl - 1988
Tcl是工具命令語言,是John Ousterhout在1988年開發的一種腳本語言。這種動態類型語言是跨平臺的、可擴展的、易於學習的,而且基於12條語法規則。Tcl很容易與C編程語言進行交互。
1990年,John Ousterhout爲Tcl開發了一個名爲Tk的擴展,這是一個用於建立可移植圖形界面的庫。所以,今天提到Tcl時,更多的是指Tcl/Tk的組合。
puts "Hello, World!"
26 Haskell - 1990
Haskell是一種基於lambda計算和組合邏輯的函數式編程語言。
main = putStrLn "Hello, World!"
27 Python - 1991
Python是一種解釋性編程語言,具備多範式、多平臺的特色。Python支持結構化、函數式和麪向對象的命令式編程。這些年來,Python變得很是流行,甚至在2019年成爲最受歡迎的語言之一。
Python 3.0或更高版本中的「Hello, World!」:
print("Hello, World!")
28 Visual Basic - 1991
Visual Basic,簡稱VB,是第三代事件編程語言,是微軟爲其COM編程模型建立的集成開發環境。
Public Sub Main() Debug.Print "Hello, World!" End Sub
29 Lua - 1993
Lua建立於1993年,是一種自反的命令式腳本語言,用於嵌入其餘應用程序以擴展功能。
print("Hello, World!")
30 Ruby - 1995
Matsumoto Yukihiro因爲對本身的Smalltalk和Lisp開發經歷感到失望,於1993年開始在Emacs下設計Ruby語言。他在1995年發佈了初版。Ruby是解釋型的、面向對象的、多範式的編程語言。
puts 'Hello, World!'
31 Java - 1995
Java是James Gosling在1995年建立的一種面向對象的編程語言,至今還是業界最流行和使用最多的語言。Java容許完成客戶機到web應用程序的全部工做,而谷歌將其做爲Android移動操做系統上開發應用程序的語言,進一步擴展了它的功能。
class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World!"); } }
32 JavaScript - 1995
JavaScript是一種腳本編程語言,主要用於Web,但如今能夠在服務器端使用Node.js等。JavaScript是一種面向原型的編程語言。
document.write('Hello, World!');
33 PHP - 1995
就編程語言而言,1995年無疑是極其重要的一年,由於在Java和JavaScript以後,PHP也在這一年誕生。PHP主要用於Web,是一種面向對象的命令式語言,能夠像其餘解釋語言同樣在本地工做。
<? echo "Hello, World!" ?>
34 Rebol - 1997
Rebol是一種高級腳本編程語言,它創建在denotational語義的基礎上,自稱爲「消息傳遞語言」。這是一個「Hello, World!」:
print "Hello, World!"
35 ActionScript — 1998
ActionScript是一種用於客戶端應用程序(如Adobe Flash和Adobe Flex)和服務器(Flash media server、JRun、Macromedia Generator)的編程語言。ActionScript在Unity graphics中用做腳本語言。
package { public class HelloWorld { public function HelloWorld() { trace("Hello World !"); } } }
36 D - 1999
D是一種命令式的面向對象和多範式的編程語言。D的靈感來自許多語言,包括c++、Java和Eiffel。儘管D有不少優勢,但它還未取得創造者所指望的那樣成功。
import std.stdio; void main () { writefln("Hello, World!"); }
37 C# - 2000
c#是微軟在2000年與Sun就Java語言發生爭執後建立的。c#是一種面向對象的編程語言,用於在Microsoft上開發。該語言派生於c++和Java,使用它們的通常語法和一些概念。c#也能夠用於開發ASP上的web應用程序。
using System; internal static class HelloWorld { private static void Main() { Console.WriteLine("Hello, World!"); } }
38 Groovy - 2003
Groovy是一種運行在Java平臺上的面向對象編程語言。Groovy是Java語言的替代品,它的靈感來自Python、Ruby或Smalltalk。
println "Hello, World!"
39 Scala - 2003
Scala是一種多範式編程語言,旨在以簡潔優雅的形式表達常見的編程模型。Scala經過靜態類型集成了面向對象和函數式編程的範例。
object HelloWorld extends App { println("Hello, World!") }
40 F# - 2005
f#是一種函數式、命令式和麪向對象的編程語言,由Microsoft開發。f#源自與之高度兼容的OCaml編程語言。這兩種編程語言與ML語言屬於同一語系。
printfn "Hello, World!"
41 Windows PowerShell - 2006
Windows PowerShell是微軟開發的一套軟件,包括一個命令行界面、一種稱爲PowerShell的腳本語言和一個開發工具包。從Windows 7開始PowerShell做爲標準語言。
echo "Hello, World!"
42 Clojure - 2007
Clojure是一種通過編譯的跨平臺函數式編程語言,旨在建立安全且易於分發的程序。Clojure是基於Lisp的三大語言之一。Clojure能夠轉換爲Java代碼、JavaScript代碼和. net代碼。所以,Clojure能夠在JVM、CLR、瀏覽器和Node.js上使用。
(println "Hello, World!")
43 Go - 2009
Go是一種通過編譯的併發式編程語言,靈感來自C和Pascal。這種語言是由谷歌從Robert Griesemer、Rob Pike和Ken Thompson(他在1969年創造了B語言)最初提出的概念發展而來的。
package main import "fmt" func main() { fmt.Println("Hello, World!") }
44 Rust - 2010
Rust是由Mozilla設計和開發的多範型編譯的編程語言。Rust是「一種安全、併發、實用的語言」,同時支持純函數式編程風格、actor模型、過程式編程以及面向對象編程。Rust常被稱爲c++的潛在繼承者之一。
fn main() { println("Hello, World!"); }
45 Dart - 2011
Dart是一種由谷歌開發的web編程語言。它最初的目的是取代JavaScript。目前,Dart尚未達到它的目標,開發人員的首要任務是將Dart轉換成與全部現代瀏覽器兼容的JavaScript代碼。Dart也能夠用於服務器端編程。
Dart是Flutter用於開發移動應用程序的語言。
main() { print('Hello, World!'); }
46 Kotlin — 2011
Kotlin是一種面向對象的函數式編程語言,具備靜態類型,容許在Java虛擬機、JavaScript和本地的多種平臺進行編譯。2017年,谷歌使Kotlin成爲繼Java以後Android官方支持的第二種編程語言。
fun main(args: Array<String>) { println("Hello, World!") }
47 Ceylon - 2011
Ceylon由Red Hat建立,是一種高級開放源碼編程語言,具備強類型和靜態類型。它的語法與Java類似。它能夠編譯爲Java或JavaScript。
void hello() { print("Hello, World!"); }
48 TypeScript - 2012
TypeScript是一種免費的開源編程語言,由微軟開發,旨在提升JavaScript代碼的安全性。TypeScript語言是JavaScript的一個超集,它被轉換成JavaScript,這樣任何web瀏覽器或JavaScript引擎均可以應用。
console.log("Hello, World!");
49 Julia - 2012
Julia是一種用於科學計算的高級、強大和動態編程語言,其語法爲其餘相似開發環境(如MATLAB、R或Python)的用戶所熟悉。
println("Hello, World!")
50 Swift - 2014
Swift是一種通過編譯的、多範式的對象編程語言,其設計目標是簡單、高性能和安全。它是由蘋果公司開發的開源軟件,從而與Objective-C一塊兒成爲開發移動iOS應用程序的解決方案。
print("Hello, World!")
結論
經過此次時間旅行,用50種不一樣語言編寫了「Hello, World!」程序,向人們展現了70年來計算機編程語言的變遷。
在這分享一份整理了2個月的Android進階面試解析筆記文檔,包括了知識點筆記和高頻面試問題解析及部分知識點視頻講解給你們!爲了避免影響閱讀,在這以圖片展現部份內容於目錄截圖,有須要的朋友麻煩點贊後點擊下面在線連接獲取免費領取方式吧!
阿里P6P7【安卓】進階資料分享+加薪跳槽必備面試題