我们作为一名程序员,职业生涯中至少完成了一个“Hello, World!“程序。当我们学习一门新的语言时,“Hello, World!“通常是我们所写的第一个程序。程序员一般也都会使用多门语言,甚至有多数人都会使用十几种语言。甚至有一个名为TTHW的指标来衡量一个程序员接触一门新的编程语言时,成功写出“Hello, World!“并运行所需要的时间。然而,如果我问你,你会用多少种编程语言写“Hello, World!“?你的答案会是多少?

为了刷新你的记忆,我会带你经历一段计算机编程领域的时空之旅。为此,我将向你展示50种不同的编程语言的  “Hello, World!“程序的写法。你也会了解计算机语言随着时间的推进发生了哪些变化。

NO.1. 汇编语言 - 1949

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

NO.2. Fortran - 1957

PROGRAM Hello
WRITE (*,*) 'Hello, World!'
STOP
END

NO.3. Lisp - 1958

(write-line "Hello, World!")

NO.4. Cobol - 1959

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO-WORLD.
PROCEDURE DIVISION.
DISPLAY "Hello, World!"
STOP RUN.

NO.5. BASIC - 1964

PRINT "Hello, World!"
END

NO.6. Logo - 1968

print [Hello World !]

NO.7. B - 1969

main(
{
putstr("Hello world!*n");
return(0);
}

NO.8. Pascal - 1970

begin
writeln('Hello, World!')
end.

NO.9. Forth - 1970

: HELLO ( -- ) ." Hello, World!" CR ;
HELLO

NO.10. C - 1972

#include <stdio.h>

int main(void) {
printf("Hello, World!\n");
return 0;
}

NO.11. Smalltalk - 1972

Transcript show: 'Hello, world!'; cr.

NO.12. Prolog - 1972

:- write('Hello, World!'),nl.

NO.13. ML - 1973

print "Hello, World!\n";

NO.14. Scheme - 1975

(display "Hello, World!") (newline)

NO.15. SQL - 1978

CREATE TABLE message (text char(15));
INSERT INTO message (text) VALUES ('Hello, World!');
SELECT text FROM message;
DROP TABLE message;

NO.16. C++ - 1980

#include <iostream>
using namespace std;

int main() {
cout << "Hello, World!" << endl;
return 0;
}

NO.17. Ada - 1983

with Ada.Text_IO;
procedure Hello is
begin
Ada.Text_IO.Put_Line ("Hello, World!");
end Hello;

NO.18. Common Lisp - 1984

(princ "Hello, World!")

NO.19. MATLAB - 1984

disp('Hello, World!')

NO.20. Eiffel - 1985

class
HELLO_WORLD
create
make
feature
make
do
print ("Hello, world!%N")
end
end

NO.21. Objective-C - 1986

#import <Foundation/Foundation.h>

int main() {
@autoreleasepool {
NSLog(@"Hello, World!");
  }
}

NO.22. Erlang - 1986

io:format("Hello world!~n").

NO.23. Perl - 1987

print "Hello, World!\n";

NO.24. Caml - 1987

print_string "Hello, World!\n";;

NO.25. Tcl - 1988

puts "Hello, World!"

NO.26. Haskell - 1990

main = putStrLn "Hello, World!"

NO.27. Python - 1991

print("Hello, World!")

NO.28. Visual Basic - 1991

Public Sub Main()
Debug.Print "Hello, World!"
End Sub

NO.29. Lua - 1993

print("Hello, World!")

NO.30. Ruby - 1995

puts 'Hello, World!'

NO.31. Java - 1995

class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World!");
  }
}

NO.32. JavaScript - 1995

document.write('Hello, World!');

NO.33. PHP - 1995

<? echo "Hello, World!" ?>

NO.34. Rebol - 1997

print "Hello, World!"

NO.35. ActionScript — 1998

package {
public class HelloWorld {
public function HelloWorld() {
trace("Hello World !");
    }
  }
}

NO.36. D - 1999

import std.stdio;

void main () {
writefln("Hello, World!");
}

NO.37. C# - 2000

using System;

internal static class HelloWorld {
private static void Main() {
Console.WriteLine("Hello, World!");
  }
}

NO.38. Groovy - 2003

println "Hello, World!"

NO.39. Scala - 2003

object HelloWorld extends App {
println("Hello, World!")
}

NO.40. F# - 2005

printfn "Hello, World!"

NO.41. Windows PowerShell - 2006

echo "Hello, World!"

NO.42. Clojure - 2007

(println "Hello, World!")

NO.43. Go - 2009

package main

import "fmt"

func main() {
fmt.Println("Hello, World!")
}

NO.44. Rust - 2010

fn main() {
println("Hello, World!");
}

NO.45. Dart - 2011

main() {
print('Hello, World!');
}

NO.46. Kotlin — 2011

fun main(args: Array<String>) {
println("Hello, World!")
}

NO.47. Ceylon - 2011

void hello() {
print("Hello, World!");
}

NO.48. TypeScript - 2012

console.log("Hello, World!");

NO.49. Julia - 2012

println("Hello, World!")

NO.50. Swift - 2014

print("Hello, World!")

总结一下,50种语言的发展来看,大多数语言的设计思想都是互相借鉴的。语言的发展也是逐渐演进的,但不是越强大的语言就越流行。一门语言想要变得流行也是需要一定的机遇的(例如Python),或者是需要有个优质的大腿(例如Java和Dart)。(如果以上代码有问题或者有错的请大家评论区帮忙纠正)

Hello World的五十种不同实现方法!!!!!的更多相关文章

  1. 关于C#程序优化的五十种方法

    关于C#程序优化的五十种方法    这篇文章主要介绍了C#程序优化的五十个需要注意的地方,使用c#开发的朋友可以看下   一.用属性代替可访问的字段 1..NET数据绑定只支持数据绑定,使用属性可以获 ...

  2. 关于优化C#程序的五十种方法

    一.用属性代替可访问的字段 1..NET数据绑定只支持数据绑定,使用属性可以获得数据绑定的好处: 2.在属性的get和set访问器重可使用lock添加多线程的支持. 二.readonly(运行时常量) ...

  3. Java中的五种单例模式实现方法

    [代码] Java中的五种单例模式实现方法   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 2 ...

  4. jQuery -- 光阴似箭(五):AJAX 方法

    jQuery -- 知识点回顾篇(五):AJAX 方法 1. $.ajax 方法:用于执行 AJAX(异步 HTTP)请求. <!DOCTYPE html> <html> &l ...

  5. AJAX--XMLHttpRequest五步使使用方法

    传统浏览方式和AJAX方式的不同 多数Web应用程序都使用请求/响应模型从server上获得完整的HTML页面.经常是点击一个button,等待server对应,在点击还有一个button.然后在等待 ...

  6. Ajax学习(三)——XMLHttpRequest对象的五步使使用方法

        Ajax的核心技术是XMLHttpRequest对象,它能够在不向server提交整个页面的情况下.实现局部更新网页.通过这个对象,Ajax能够像桌面应用程序那样仅仅与server进行数据层的 ...

  7. find、findIndex、indexOf、lastIndex、includes 数组五种查询条件方法介绍

    find() 方法返回数组中满足提供的测试函数的第一个元素的值. 语法: arr.find(callback[, thisArg]) findIndex()方法返回数组中满足提供的测试函数的第一个元素 ...

  8. 使用EXCEL绘制三维地图(超简单的五分钟绘制地图方法,妈妈再也不用担心我不会画地图啦~)

    博主为从区域规划转行地图学的小学渣一枚,最近处理数据希望对结果进行三维可视化,意外发现从小用到大的EXCEL可以绘制地图且功能非常强大,在这里做一下简单介绍,希望可以给看官提供些许帮助.那下面就开始吧 ...

  9. (五)js数组方法二

    一:数组方法 var arr = []; 1.arr.push()//给数组末尾<添加>元素 2.arr.unshift()//给数组头部<添加>元素 3.arr.shift( ...

随机推荐

  1. Python设计模式(5)-代理模式

    # coding=utf-8 # 代理模式:# * 代理类成为实际想调用对象的中间件,可以控制对实际调用对象的访问权限# * 可以维护实际对象的引用 class DbManager: def __in ...

  2. 墨者学院靶场:uWSGI(CVE-2018-7490)路径遍历漏洞复现

    0x01漏洞简介 uWSGI是一款Web应用程序服务器,它实现了WSGI.uwsgi和http等协议.uWSGI 2.0.17之前版本中存在路径遍历漏洞,该漏洞源于程序没有正确的处理DOCUMENT_ ...

  3. AJ学IOS 之CoreLocation指南针小应用

    AJ分享,必须精品 一:效果图示 简单的用到CoreLocation获取方位做的指南针小应用 二:制作思路 具体用到了CoreLocation相关的知识,请看上一篇博客有写 然后获取方向不需要进行授权 ...

  4. Thinking in Java,Fourth Edition(Java 编程思想,第四版)学习笔记(八)之Polymorphism

    Polymorphism is the third essential feature of an object-oriented programming language,after data ab ...

  5. 从python爬虫以及数据可视化的角度来为大家呈现“227事件”后,肖战粉丝的数据图

    前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取t.cn ...

  6. 从联想昭阳到MacBook Pro,致我的那些败家玩意——电脑

    对于程序员来说,你懂的,电脑就是我们的女朋友,在很多层面上,它都是,打游戏.敲代码,以及看影片. 我第一台电脑是联想的笔记本(昭阳系列),花了 4000 多块买的. 那时候,家里很是缺钱,4000 多 ...

  7. week homework: 大家来找茬

    上周课程主题为用户体验,每位同学也根据自己使用APP的体验,例举出一些手机或电脑客户端软件的bug或用户体验非常不好的地方: Tianfu: GitHub.com:界面不够直观,有许多功能不知道入口在 ...

  8. stand up meeting for beta release plan 12/16/2015

    今天我们开会讨论一下beta版需要的feature,其中待定的feature是可选做的,如果有时间.其他都是必须实现的. 因为做插件的计划失败了,所以我们现在是pdf阅读器和取词查词加入生词本这两部分 ...

  9. MySQL如何创建一个好索引?创建索引的5条建议【宇哥带你玩转MySQL 索引篇(三)】

    MySQL如何创建一个好索引?创建索引的5条建议 过滤效率高的放前面 对于一个多列索引,它的存储顺序是先按第一列进行比较,然后是第二列,第三列...这样.查询时,如果第一列能够排除的越多,那么后面列需 ...

  10. phpstorm破解版

    查看下载:https://www.7down.com/soft/229568.html 破解:https://www.7down.com/article/305640.html 主题更换和下载:htt ...