Hello world!是打開編程世界的第一把鑰匙,只要你能運行出Hello world!,基本上就算入了個門了,由於程序正確的運行表明着基本開發環境都有了,包括編輯器,編譯器,解釋器,運行環境等待,同時你也知道了這個程序是如何運行起來,而且完成一次最簡單的人機交互——運行程序 -> 返回一個結果。php
固然程序的運行是多種多樣的,返回方式也各不相同的。好比有的彈窗,有的黑窗口,有的顯示在網頁裏,有的寫在文件裏,有的傳到網絡上……但萬變不離其宗,返回的結果的地方統稱爲輸出設備。不過一般呢,我一般以顯示器爲輸出設備,由於,有的顯示在網頁裏到顯示器是當即顯示的,不須要其實手段打開輸出的內容,再顯示到屏幕上。同理,保存文件的地方就是文件設備,傳輸網絡數據的就叫網絡設備。固然,這裏設備並非指具體的東西,而是一個抽象的邏輯概念,是一個統稱。html
咱們在寫第一個PC程序(像單片機之類大多數不帶輸出設備,沒存儲、沒顯示,因此這裏強調是PC程序)的時候,每每是在黑窗口中進行的,這個黑窗口是電腦在顯示器上輸入輸出內容的一種形式,在windows下每每是一個叫cmd.com(或.exe)的程序,在linux下是一個叫bash的東西,這種黑窗口只顯示文本,最多但是定製一下字體。黑窗口自己也是一個能夠編程的環境,你能夠在提示符下直接敲入腳本,這時咱們能夠編寫第一個「Hello World!」來。java
咱們windows的黑窗口裏輸入:python
echo Hello World!
返回結果:linux
Hello World!
不過確定有人說,這算什麼Hello World!,這算什麼編程。但我以爲,編程就是這樣的,只要能夠寫代碼操控計算機的行爲,均可以稱爲編程。只是說,沒人用命令行的腳本代碼去構建龐大的應用系統,但它能夠做爲一個系統的子集,好比控制一些程序的啓動,對系統進行一些批量操做什麼的,也是能夠實現必定功能的。程序員
對於Windows,cmd的腳本語法着實反人類,早期程序員發明的東西,幾十年來就沒變過,奇奇怪怪的關鍵字,法語規則,面向過程的設計,都很是的搞腦子。因此後來,微軟了個WSH來代替命令行(Linux下能夠用python,php,perl等腳本語言來代替bash)。編程
Javascript(簡稱js)是個很是流行的語言,普遍用於Web應用上。因此我用js寫了一個Hello World!。js的Hello World!跟cmd的同樣簡單,甚至還乾淨一點。咱們先建立一個hello.js文件,用文本編輯器打,在裏邊敲入以下一行代碼:windows
WScript.Echo("Hello World!");
保存。而後雙擊文件,便獲得以下效果。bash
其實寫到這裏依然有不少人以爲,這仍是算不上是編程。這是爲何呢?大概是由於這兩個例子都沒有編譯的過程。由於之前寫的程序,並不能直接使用,而是要編譯成機器所認識的二進制,編譯就是程序語言所寫的東西,翻譯成二進制代碼指令。好比用C寫一個Hello World!。爲了方便,操做系統使用的是Linux(Windows下邊對IDE依賴太嚴重),Linux下自帶GCC,先用vi編輯一個叫hello.c的文件。內容以下:網絡
#include <stdio.h> void main(){ printf("Hello World!\n"); }
保存,退出vi,進行控制檯,輸入命令:
gcc main.c ls
而後就會發現,當前目錄下多了一個a.out的文件。而後運行:
./a.out
獲得運行結果:
Hello world!
a.out就是一個二進制程序。用普通的文本編輯器打開是一堆亂碼,只有用支持二進制編輯的程序打開,纔看到是一堆沒法理解的數字。
其實這種編譯式的程序開發,比前邊的寫腳本要多一道步驟,因此從情懷上來說,編譯開發確實比較正統,但如今腳本語言的勢頭倒是愈來愈猛,這種老式的編程方式,有時成了人類進步的障礙。
不過走極端都不是什麼好事情,其實主流的是介於純腳本和編譯之間的虛擬機技術。典型的有java和.net。它們看上去跟古老的編程方式一至,但實際編譯出來的東西並不能直接運行在機器上,它們編譯出來的是一種供虛擬機認識的代碼,而後再解釋執行。好比java的.class類,你用文本編輯器打以後,發現裏邊並徹底是亂碼。再來段Java版的Hello World!
public class Hello { public static void main(String[] args) { System.out.println("Hello World!"); } }
上述內容保存到一個叫Hello.java的文件裏,而後命令行裏運行:
javac Hello.java
獲得Hello.class,運行Hello:
java Hello
運行結果請自嘗試啊。
這裏要注意的是,通常電腦上不會自帶java的運行環境,須要到Oracle或OpenJdk的網站下載安裝程序並安裝,並把程序的Bin目錄設置到環境變量PATH下邊,這樣才能夠正常運行java的各類命令。
.Net與java同理。不過,.net是多語言編程環境,一般是用C#。C#的代碼結構與java的大同小異。C#程序須要安裝.net framework。.net並不要求文件名與類名相同。
C#的Hello World!
using System; public class program { public static void main() { Console.WriteLine("Hello,World"); Console.ReadLine(); } }
附——Hello World!一站式體驗。
準備工做
除了批處理程序,其餘的或多或少都要安裝一些編譯和運行的環境。
一、安裝Visual Studio Code
Visual Studio Code 下載頁面:https://code.visualstudio.com/
二、安裝JDK
JDK下載頁面:https://www.oracle.com/technetwork/java/javase/downloads/index.html
三、安裝.Net Framework
.Net Framework下載頁面:https://dotnet.microsoft.com/download/dotnet-framework/net472
四、安裝 mingw
mingw下載頁面:https://osdn.net/projects/mingw/releases/
五、安裝PHP
PHP下載頁面:https://www.php.net/downloads
六、安裝Python
Python下載頁面https://www.python.org/downloads/release/python-374/開始體驗
在電腦磁盤上隨便建立一個文件夾
在vs code中打開
建立一個hello.cs的文件,內容以下
using System; public class program { public static void Main() { Console.WriteLine("Hello World!"); } }
按CTRL+SHIFT+~,就會在vs code 下方彈出一個黑窗口。
用鼠標點一下黑窗口,而後輸入:
csc hello.cs hello.exe
輸出內容:
PS E:\dev\my\demo> csc hello.cs Microsoft (R) Visual C# Compiler version 4.7.3190.0 for C# 5 Copyright (C) Microsoft Corporation. All rights reserved. This compiler is provided as part of the Microsoft (R) .NET Framework, but only supports language versions up to C# 5, which is no longer the latest version. For compilers that support newer versions of the C# programming language, see http://go.microsoft.com/fwlink/?LinkID=533240 PS E:\dev\my\demo> ./hello.exe Hello World! PS E:\dev\my\demo>
C語言的Hello World!
Go語言的Hello World!