多種語言列印Hello World
Hello,World,幾乎是程式猿學習各種語言的第一個程式,心血來潮,有空拿主流開發語言如何實現,彙總並整理了下.包括大致快速瞭解下這門語言,開發,編譯,環境搭建,執行,簡單語言等。其實很多語言是由關聯的,在當下,只掌握一門語言是不夠的,比如說Python,語言簡潔,開發快是其最大優點。但缺點是速度相對較慢,但C/C++/Java開發比較慢,程式執行速度比較快,如果想兼具兩者的優點,就要寫Python的擴充套件,這就涉及到(C,C++,Java,Fortan...)等語言,Python的GUI中Tkinter裡面又涉及到TCL語言,所以就PYTHON開發來說,就必須熟悉C(CPython就是用C開發出來的),最好同時熟悉Java(Jython,Python的基於Java的實現)C++/C#(IronPython就是基於C#及.net的實現),還有不同語言間的通訊可能會用到CORBAL,還有Python中可能會呼叫SHELL中的命令,或Perl的命令。所以,精通一到兩門,熟悉多門語言是必須的。
下面用多種語言來實現列印Hello,World,包括所需要的環境(主要是如何編譯,連結等),程式碼,語言說明,語言特色介紹.
並帶附錄:2014年程式語言總排行榜前二十名、Web開發語言排行榜前十名以及移動應用開發語言排行榜前十名
01. Java
環境:
JDK1.7
<span style="font-family:SimHei;font-size:14px;">C:\>java -version java version "1.7.0_51" Java(TM) SE Runtime Environment (build 1.7.0_51-b13) Java HotSpot(TM) Client VM (build 24.51-b03, mixed mode, sharing)</span>
程式碼:
#FileName: HelloWorld.java
public class HelloWorld #如果有public類的話,類名必須和檔案同名,注意大小寫
{
#Java入口程式,程式從此入口
public static void main(String[] args)
{
#向控制檯列印一條語句
System.out.println("Hello,World!");
}
}
說明:
D:\HelloWorld>javac HelloWorld.java #用javac編譯成位元組碼檔案(HelloWorld.class) D:\HelloWorld>java HelloWorld #用java解釋執行成特定平臺的機器碼 Hello,World!
02. C
環境:
MinGW 或各種C/C++編譯器
D:\HelloWorld>gcc -v
Reading specs from C:/Perl/site/lib/auto/MinGW/bin/../lib/gcc/mingw32/3.4.5/specs
Configured with: ../gcc-3.4.5-20060117-3/configure --with-gcc --with-gnu-ld --with-gnu-as --host=min
gw32 --target=mingw32 --prefix=/mingw --enable-threads --disable-nls --enable-languages=c,c++,f77,ad
a,objc,java --disable-win32-registry --disable-shared --enable-sjlj-exceptions --enable-libgcj --dis
able-java-awt --without-x --enable-java-gc=boehm --disable-libgcj-debug --enable-interpreter --enabl
e-hash-synchronization --enable-libstdcxx-debug
Thread model: win32
gcc version 3.4.5 (mingw-vista special r3)
程式碼:
#include <stdio.h>
int main() #main入口函式
{
printf("Hello,World!"); #printf函式列印
return 1; #函式返回值
}
說明:
D:\HelloWorld>gcc HelloWorld.c -o output #檔名HelloWorld.c, -o輸出檔名:output
HelloWorld.c:6:2: warning: no newline at end of file
D:\HelloWorld>output #直接執行輸出檔案
Hello,World!</span>
#如果未安裝GCC,那麼必須按照 http://gcc.gnu.org/install/上的詳細說明安裝GCC。
#為了在 Windows上安裝GCC,需要安裝MinGW. 為了安裝 MinGW,請訪問MinGW的主頁www.mingw.org,
#進入MinGW下載頁面,下載最新版本的 MinGW 安裝程式,命名格式為 MinGW-<version>.exe
#當安裝 MinWG時,至少要安裝gcc-core、gcc-g++、binutils和MinGW runtime,但是一般情況下都會安裝更多其他的項。
#新增您安裝的 MinGW 的bin子目錄到您的 PATH 環境變數中,這樣您就可以在命令列中通過簡單的名稱來指定這些工具。
#當完成安裝時,就可以從Windows命令列上執行gcc、g++、ar、ranlib、dlltool和其他一些GNU工具。
03. C++
環境:
MinGW 或 各種C++編譯器
標頭檔案字尾名:.h, .hpp, .hxx
原始檔字尾名:.cpp, .c++, .cxx, .cc, .C
程式碼:
#include <iostream> //std::cout要用到的標頭檔案
#include <stdio.h> //標準輸入輸出標頭檔案
int main()
{
printf("Hello,World!--Way 1\n"); //printf語句列印
puts("Hello,World!--Way 2"); //puts語句
puts("Hello," " " "World!--Way 3"); //字串拼接
std::cout << "Hello,World!--Way 4" << std::endl; //C++教科書上寫法
return 1; //作為註釋
}
說明:
D:\HelloWorld>g++ HelloWorld.c++ -o output //原始檔字尾也可為.cpp, .C
D:\HelloWorld>output
Hello,World!--Way 1
Hello,World!--Way 2
Hello,World!--Way 3
Hello,World!--Way 4</span>
04. Python
環境:
Python 2.x 或 Python 3.x
D:\HelloWorld>python
Python 2.7.4 (default, Apr 6 2013, 19:55:15) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
程式碼:
>>>> print "Hello,World!" #Python 2.x
Hello,World!
>>> print("Hello,World!") #Python 3.x
Hello,World!
說明:
1. 在Python 3.x中,print語句是函式,所以為print()
2. 也可以在寫在.py檔案,同樣執行.
3. python2.6及以上版本和python3.x基本相同,也同樣可以使用print()來列印
05. C#
環境:
Windows
d:\HelloWorld>csc -v
Microsoft (R) Visual C# 2005 Compiler version 8.00.50727.4927
for Microsoft (R) Windows (R) 2005 Framework version 2.0.50727
Copyright (C) Microsoft Corporation 2001-2005. All rights reserved.
程式碼:
//FileName: HelloWorld.cs
using System;
class TestApp
{
public static void Main()
{
Console.WriteLine("Hello,World!");
Console.ReadKey();
}
}
//執行如下:
d:\HelloWorld>csc HelloWorld.cs
Microsoft (R) Visual C# 2005 Compiler version 8.00.50727.4927
for Microsoft (R) Windows (R) 2005 Framework version 2.0.50727
Copyright (C) Microsoft Corporation 2001-2005. All rights reserved.
d:\HelloWorld>HelloWorld.exe
Hello,World!
說明:
C#其實和Java非常相像,剛才用的是命令列方式,需要設定環境變數,可以參考下面:
如果是直接下載Microsoft Visual Studio的話,就可以再IDE中用快捷鍵編譯,執行
06. PHP
環境:
程式碼:
<!DOCTYPE html>
<body>
<?php
echo "Hello,World!"; //列印語句
echo "The first php program!"; //列印語句
echo phpinfo(); //phpinfo()系統函式,輸出環境資訊
?>
</body>
</html>
說明:
#PHP(Hypertext Preprocessor)。
#PHP是一種HTML內嵌式的語言,PHP與微軟的ASP頗有幾分相似,都是一種在伺服器端執行的嵌入HTML文件的指令碼語言
#PHP語言的風格有類似於C語言,現在被很多的網站程式設計人員廣泛的運用。
#PHP獨特的語法混合了C、Java、Perl以及PHP自創新的語法。它可以比CGI或者Perl更快速的執行動態網頁。
#與其他的程式語言相比,PHP是將程式嵌入到HTML文件中去執行,執行效率比完全生成HTML標記的CGI要高許多;
#與同樣是嵌入HTML文件的指令碼語言JavaScript相比,PHP在伺服器端執行,成分利用了伺服器的效能;
#PHP執行引擎還會將使用者經常訪問的PHP程式駐留在記憶體中,
#其他使用者在一次訪問這個程式時就不需要重新編譯程式了,只要直接執行記憶體中的程式碼就可以了,這也是PHP高效率的體現之一。
#PHP具有非常強大的功能,所有的CGI或者JavaScript的功能PHP都能實現,而且支援幾乎所有流行的資料庫以及作業系統。
07. JavaScript
環境:
node.js 或 jaxer
D:\>node -v
v0.10.33
程式碼:
var sys = require("sys"); #匯入需要的sys模組
sys.puts("Hello,World!"); #呼叫裡面的puts函式來列印字串
說明:
D:\>node HelloWorld.js #node + *.js,執行
Hello,World!
#JavaScript是Web的程式語言。
#所有現代的HTML頁面都使用JavaScript。
#JavaScript 非常容易學。
08. Ruby
環境:
ruby 1.9.3
D:\HelloWorld>ruby -v
ruby 1.9.3p429 (2013-05-15) [i386-mingw32]
程式碼:
#可用print語句列印
print "Hello,World!\n"
#可用puts語句列印
puts "Hello,World!\n"
#可以先宣告一個變數,然後再用puts語句
a = "Hello,World!\n"
puts a
#可以先寫個函式再呼叫
def say(name)
"Hello,#{name}"
end
puts say("World!")
說明:
D:\HelloWorld>ruby HelloWorld.rb #執行方式類似Python,Perl
Hello,World!
Hello,World!
Hello,World!
Hello,World!
09. R
環境:
R-3.1.2-win(適用於32,64位),分別有相應的GUI
C:\>R #安裝好了之後,輸入R後顯示
R version 3.1.2 (2014-10-31) -- "Pumpkin Helmet"
Copyright (C) 2014 The R Foundation for Statistical Computing
Platform: i386-w64-mingw32/i386 (32-bit)
R
'license()''licence()'
R.
'contributors()'
'citation()'RR
'demo()''help()'
'help.start()'HTML
'q()'R.
程式碼:
print("Hello,World!")
說明:
R語言,一種自由軟體程式語言與操作環境,主要用於統計分析、繪圖、資料探勘.
下面安裝下載比較詳細的步驟:
10. SQL
環境:
ORACLE SQL/PLUS
程式碼:
SQL> select 'Hello,World!' from dual;
'HELLO,WORLD
------------
Hello,World!
說明:
還可以建一個表,插入,再查詢,最後刪除該表;
SQL> CREATE TABLE MESSAGE (TEXT CHAR(15)); #建立表
INSERT INTO MESSAGE (TEXT) VALUES ('Hello, world!'); #插入表
SELECT TEXT FROM MESSAGE; #查詢表
DROP TABLE MESSAGE; #刪除表
Table created.
SQL>
1 row created.
SQL>
TEXT
---------------
Hello, world!
11. Perl
環境:
Perl 5.16 或 MinGW
D:\HelloWorld>perl -v
This is perl 5, version 16, subversion 3 (v5.16.3) built for MSWin32-x86-multi-thread
(with 1 registered patch, see perl -V for more detail)
Copyright 1987-2012, Larry Wall
Binary build 1603 [296746] provided by ActiveState http://www.ActiveState.com
Built Mar 13 2013 11:29:21
Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.
Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl". If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.
程式碼:
#!C:\Perl\bin #Windows平臺下
#!/usr/bin/env perl #Linux環境下
print "Hello,World!\n"; #print("Hello,World")也可
輸出結果
D:\HelloWorld>perl HelloWorld.pl #類似於python file.py
Hello,World!
說明:
#Perl 5.10及以上的版本,可以用
use 5.010;
say "Hello,World!";
12. HTML
環境:
HTML 或 HTML 5.0
程式碼
<!DOCTYPE html>
<html>
<body>
<h1>This is the first program!</h1>
<p>Hello,World!</p>
</body>
</html>
說明:
HTML4.0無論用那種瀏覽器,HTML5.0有些瀏覽器只支援部分功能,打可以開啟。可用不同的編輯器編輯.
13. VB
環境:
VBC version 8.0.5
D:\Learn\C>vbc -v
Microsoft (R) Visual Basic Compiler version 8.0.50727.5483
for Microsoft (R) .NET Framework version 2.0.50727.5485
Copyright (c) Microsoft Corporation. All rights reserved.
vbc : Command line warning BC2007 : unrecognized option 'v'; ignored
vbc : Command line error BC2008 : no input sources specified
程式碼:
'FileName: HelloWorld.rb rb作為VB原始檔的字尾
Module Hello
Sub Main() '程式人口函式
MsgBox("Hello,World!") '計算機螢幕上顯示資訊
End Sub 'End作為程式塊結尾
End Module '單引號作為註釋
說明:
D:\>vbc HelloWorld.vb #vbs來編譯,生成HelloWorld.exe可執行檔案
Microsoft (R) Visual Basic Compiler version 8.0.50727.5483
for Microsoft (R) .NET Framework version 2.0.50727.5485
Copyright (c) Microsoft Corporation. All rights reserved.
D:\>HelloWorld
14. Scala
環境:
scala-2.11.4.msi編譯器
d:\>scala
Welcome to Scala version 2.11.4 (Java HotSpot(TM) Client VM, Java 1.7.0_51).
Type in expressions to have them evaluated.
Type :help for more information.
scala> println("Hello,World!"); #可在互動式介面執行println語句,倒很想java
Hello,World!
http://developer.51cto.com/art/200909/154647.htm
程式碼:
object HelloWorld
{
def main(args:Array[String])
{
println("Hello,World!");
}
}
//編譯
d:\HelloWorld>scala HelloWorld.scala
Hello,World!
說明:
Scala是一門把面向物件和函數語言程式設計思想加入靜態型別中的程式語言,志在以簡練、優雅及型別安全的方式來表達常用程式設計模式。它平滑地集成了面向物件和函式語言的特性,使Java和其他的程式設計師更富有成效。
15. Shell
環境:
Linux/Unix平臺,或安裝了MinGW和MSYS的Windows平臺
程式碼:
#安裝了MinGW和MSYS的Windows平臺
D:\HelloWorld>echo "Hello,World!"
"Hello,World!"
#Linux平臺下
#echo "Hello,World!" 或 printf "Hello,World!"
#如果是寫在檔案中:
chmod +x HelloWorld.sh
./HelloWorld.sh
說明:
#Shell誕生於Unix,是與Linux/Unix互動的工具,單獨地學習Shell是沒有意義的,必須先學習Linux/Unix。
#Shell雖然是Unix的第一個指令碼語言,但它是相當優秀的。它結合了延展性與效率,持續保有獨具的特色,並不斷的被改良,功能更加強大。
#缺陷:Shell需要依賴其他程式才能完成大部分的工作;長處是:簡潔的指令碼語言標記方式,比C語言編寫的程式執行更快、更有效率
16. Delphi
環境:
Delphi 7
程式碼:
[File|New|Application]-->拖一個Button,一個Label
-->雙擊Button,編碼如下:
procedure TForm1.Button1Click(Sender: TObject);
begin
label1.Caption := 'Hello,World!';
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
end;
end.
說明:
Delphi,是Windows平臺下著名的快速應用程式開發工具(Rapid Application Development,簡稱RAD)。
似乎很多人都覺得Delphi已經沒落了、過時了(我身邊有好多同事都沒聽過Delphi)。
但我不這麼認為。“真正的程式設計師用c,聰明的程式設計師用Delphi”
經典無需多言,尤其是開發GUI程式,拖一下就OK了!!!
17. Fortran
環境:
Linux 或者 安裝了MinGW的Windows平臺
D:\HelloWorld>gfortran -v
Using built-in specs.
COLLECT_GCC=gfortran
COLLECT_LTO_WRAPPER=c:/mingw/bin/../libexec/gcc/mingw32/4.8.1/lto-wrapper.exe
Target: mingw32
Configured with: ../gcc-4.8.1/configure --prefix=/mingw --host=mingw32 --build=mingw32 --without-pic
--enable-shared --enable-static --with-gnu-ld --enable-lto --enable-libssp --disable-multilib --ena
ble-languages=c,c++,fortran,objc,obj-c++,ada --disable-sjlj-exceptions --with-dwarf2 --disable-win32
-registry --enable-libstdcxx-debug --enable-version-specific-runtime-libs --with-gmp=/usr/src/pkg/gm
p-5.1.2-1-mingw32-src/bld --with-mpc=/usr/src/pkg/mpc-1.0.1-1-mingw32-src/bld --with-mpfr= --with-sy
stem-zlib --with-gnu-as --enable-decimal-float=yes --enable-libgomp --enable-threads --with-libiconv
-prefix=/mingw32 --with-libintl-prefix=/mingw --disable-bootstrap LDFLAGS=-s CFLAGS=-D_USE_32BIT_TIM
E_T
Thread model: win32
gcc version 4.8.1 (GCC)
程式碼:
program hello
print *,"Hello World!"
end program hello
說明:
Fortran是最早出現的計算機語言,主要用於科學及工程計算領域,在這一點和Python相同
D:\HelloWorld>gfortran -ffree-form HelloWorld.f -o out.exe #-ffree-form自由格式 -o後面是輸出檔案
#字尾名可以為.f, .F, .f90, .fpp. 如果是.f90結尾的檔案,可以不用-ffree-form,因為該字尾結尾的檔案預設是自由格式
D:\HelloWorld>out #如果是.f結尾的話,必須要加上,否則報錯
Hello World!
找到兩個靠譜點,可以編譯通過的LINK:
18. TCL
環境:
Linux 或 帶有WinGW的Windows平臺
程式碼:
<span style="font-family:SimHei;font-size:14px;">#命令列互動方式
D:\>tclsh
% puts "Hello,World!"
Hello,World!
% exit
D:>
#檔案方式執行
#!/usr/local/bin/tcl
puts "Hello, world!"
D:\>tclsh HelloWorld.tcl
Hello,World!
說明:
1. 檔名字尾.tcl 編譯器為tclsh(命令方式顯示) 或 wish(GUI方式顯示)
2. TCL(Tool Command Language)一種通用的指令碼語言,幾乎在所有平臺都能執行,功能非常強大
19. FoxPro
環境:
VFP9.0
程式碼:
?"Hello,World!"
說明:
儘管編譯,執行都通過了,在GUI介面都不知道如何顯示編譯後的結果,還是在命令列介面裡執行.FXP檔案,顯示的結果。
Visual FoxPro原名FoxBase,最初是由美國Fox Software公司於1988年推出的資料庫產品,在DOS上執行,與xBase系列相容。FoxPro是FoxBase的加強版,最高版本曾出過2.6。之後於1992年,Fox Software公司被Microsoft收購,加以發展,使其可以在Windows上執行,並且更名為 Visual FoxPro。 FoxPro比FoxBASE在功能和效能上又有了很大的改進,主要是引入了視窗、按紐、列表框和文字框等控制元件,進一步提高了系統的開發能力。
20. Ada
環境:
ADA95的gnat編譯器
d:\HelloWorld>gnat
GNAT 4.8.1
Copyright 1996-2013, Free Software Foundation, Inc.
List of available commands
gnat bind gnatbind
gnat chop gnatchop
gnat clean gnatclean
gnat compile gnatmake -f -u -c
gnat check gnatcheck
gnat elim gnatelim
gnat find gnatfind
gnat krunch gnatkr
gnat link gnatlink
gnat list gnatls
gnat make gnatmake
gnat metric gnatmetric
gnat name gnatname
gnat preprocess gnatprep
gnat pretty gnatpp
gnat stack gnatstack
gnat stub gnatstub
gnat test gnattest
gnat xref gnatxref
程式碼:
說明:
Ada是一種表現能力很強的通用程式設計語言,它是美國國防部為克服軟體開發危機,在經過除去#行獲得最終處理過的檔案後即可交由GNAT編譯.
21. AWK
環境:
Linux/Unix平臺,或安裝了MinGW和MSYS的Windows平臺
程式碼:
[[email protected] ~]# echo | awk '{print "Hello,World!"}'
Hello,World!
[[email protected]<span style="font-family: SimHei; font-size: 14px;">Linux</span><span style="font-size: 14px; font-family: SimHei;"> ~]# echo | awk 'BEGIN {print "Hello,World!"}'</span>
Hello,World!
[[email protected] ~]# awk 'BEGIN {print "Hello,World!"}'
Hello,World!
[[email protected] ~]# echo "hello world" | awk '{print}'
hello world
說明:
#AWK是一種優良的文字處理工具。它不僅是 Linux 中也是任何環境中現有的功能最強大的資料處理引擎之一。
#這種程式設計及資料操作語言(其名稱得自於它的創始人(Alfred Aho,Peter Weinberger和Brian Kernighan姓氏的首個字母)的最大功能取決於一個人所擁有的知識。
#AWK提供了極其強大的功能:可以進行樣式裝入、流控制、數學運算子、程序控制語句甚至於內建的變數和函式。它具備了一個完整的語言所應具有的幾乎所有精美特性。
22. Sed
環境:
Linux/Unix
程式碼:
# sed -ne '1s/.*/Hello, world!/p'
Hello,World! #第一行為輸入
Hello, world! #
說明:
sed 流編輯器,和awk,正則表示式等一起,是編寫Linux指令碼中非常有用的工具.
23. Pascal
環境:
Free Pacal IDE
程式碼:
Program HelloWorld(output);
begin
writeln('Hello, world!')
{程式塊的最後一條語句後不需要";" - 如果新增一個";"會在程式中增加一個“空語句”}
end.</span>
說明:
Pascal程式開始於外部檔案描述符作為引數的program關鍵字;然後跟著begin和end關鍵字封裝的主要塊。分號分割槽語句,句點終結整個程式(或單元)。Pascal原始碼是大小寫不敏感的。這裡是一個非常簡單的“Hello world”程式示例的原始碼: (注:在實際程式設計中,通常可以省略第一行的output).其語法整理上來看,很像Delphi,基本上是一個等級的。另外,FPC編譯器安裝後,居然顯示是亂碼,看來還是要下載(Turbo Pascal)更經典些,不過聽說Turbo Pascal下載比較難,再說,能不能在WIN*64位的平臺編譯也不知道,就下了個FPC用用.24. Prolog
環境:
SWI-PrologPortable 編譯器
程式碼:
write("Hello,World!").
#注意,句末有點號
說明:
Prolog(Programming in Logic)是一種邏輯程式語言。它建立在邏輯學的理論基礎之上,最初被運用於自然語言等研究領域。現已廣泛的應用在人工智慧的研究中,可以用來建造專家系統、自然語言理解、智慧知識庫等
附錄:
IEEE Spectrum 根據十多個資料來源,對各大程式語言的使用普及率進行了統計,公佈了2014年程式語言總排行榜前二十名、Web開發語言排行榜前十名以及移動應用開發語言排行榜前十名。統計資料結果如下:
總排行榜:
Web開發排行TOP10:
01. Java
02. Python
03. C#
04. PHP
05. JavaScript
06. Ruby
07. Perl
08. HTML
09. Scala
10. Go
移動應用開發語言排行TOP10:
01. Java
02. C
03. C++
04. C#
05. JavaScript
06. Objective-C
07. Scala
08. Delphi
09. Scheme
10. ActionScript
以上統計資料分別來自Google搜尋結果、Google趨勢分析、推特、GitHub庫、StackOverflow 問答、Reddit 文章、Hacker News、Career Builder、ice job以及IEEE 期刊論文等