【編程漫談】Hello world!

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!」

不過確定有人說,這算什麼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

WSH

其實寫到這裏依然有不少人以爲,這仍是算不上是編程。這是爲何呢?大概是由於這兩個例子都沒有編譯的過程。由於之前寫的程序,並不能直接使用,而是要編譯成機器所認識的二進制,編譯就是程序語言所寫的東西,翻譯成二進制代碼指令。好比用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>

.net版本的Hello World

C語言的Hello World!

C語言的Hello World!

Go語言的Hello World!

Go語言的Hello World!

相關文章
相關標籤/搜索