zoukankan      html  css  js  c++  java
  • 【编程漫谈】Hello world!

    Hello world!是打开编程世界的第一把钥匙,只要你能运行出Hello world!,基本上就算入了个门了,因为程序正确的运行代表着基本开发环境都有了,包括编辑器,编译器,解释器,运行环境等待,同时你也知道了这个程序是如何运行起来,并且完成一次最简单的人机交互——运行程序 -> 返回一个结果。

    当然程序的运行是多种多样的,返回方式也各不相同的。比如有的弹窗,有的黑窗口,有的显示在网页里,有的写在文件里,有的传到网络上……但万变不离其宗,返回的结果的地方统称为输出设备。不过通常呢,我通常以显示器为输出设备,因为,有的显示在网页里到显示器是立即显示的,不需要其实手段打开输出的内容,再显示到屏幕上。同理,保存文件的地方就是文件设备,传输网络数据的就叫网络设备。当然,这里设备并不是指具体的东西,而是一个抽象的逻辑概念,是一个统称。

    我们在写第一个PC程序(像单片机之类大多数不带输出设备,没存储、没显示,所以这里强调是PC程序)的时候,往往是在黑窗口中进行的,这个黑窗口是电脑在显示器上输入输出内容的一种形式,在windows下往往是一个叫cmd.com(或.exe)的程序,在linux下是一个叫bash的东西,这种黑窗口只显示文本,最多可是定制一下字体。黑窗口本身也是一个可以编程的环境,你可以在提示符下直接敲入脚本,这时我们可以编写第一个“Hello World!”来。

    我们windows的黑窗口里输入:

    echo  Hello World! 
    

    返回结果:

    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文件,用文本编辑器打,在里边敲入如下一行代码:

    WScript.Echo("Hello World!");
    

    保存。然后双击文件,便得到如下效果。

    WSH

    其实写到这里依然有很多人觉得,这还是算不上是编程。这是为什么呢?大概是因为这两个例子都没有编译的过程。因为以前写的程序,并不能直接使用,而是要编译成机器所认识的二进制,编译就是程序语言所写的东西,翻译成二进制代码指令。比如用C写一个Hello World!。为了方便,操作系统使用的是Linux(Windows下边对IDE依赖太严重),Linux下自带GCC,先用vi编辑一个叫hello.c的文件。内容如下:

    #include <stdio.h>
    
    void main(){
    printf("Hello World!
    ");
    }
    

    保存,退出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!一站式体验。

    准备工作

    除了批处理程序,其他的或多或少都要安装一些编译和运行的环境。

    1、安装Visual Studio Code
    Visual Studio Code 下载页面:https://code.visualstudio.com/
    2、安装JDK
    JDK下载页面:https://www.oracle.com/technetwork/java/javase/downloads/index.html
    3、安装.Net Framework
    .Net Framework下载页面:https://dotnet.microsoft.com/download/dotnet-framework/net472
    4、安装 mingw
    mingw下载页面:https://osdn.net/projects/mingw/releases/
    5、安装PHP
    PHP下载页面:https://www.php.net/downloads
    6、安装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:devmydemo> 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:devmydemo> ./hello.exe
    Hello World!
    
    PS E:devmydemo>
    

    .net版本的Hello World

    C语言的Hello World!

    C语言的Hello World!

    Go语言的Hello World!

    Go语言的Hello World!

  • 相关阅读:
    6-Python爬虫-分布式爬虫/Redis
    ES 查询时 排序报错(fielddata is disabled on text fileds by default ... )解决方法
    Intellij Idea webstorm 激活
    Intellij Idea 配置jdk
    java 获取(格式化)日期格式
    js 跳转 XSS漏洞 预防
    CSS去掉背景颜色
    js对象无法当成参数传递 解决方法
    Elasticsearch java api
    java多条件查询SQL语句拼接的小技巧
  • 原文地址:https://www.cnblogs.com/icoolno1/p/11335233.html
Copyright © 2011-2022 走看看