Hello World的五十种不同实现方法!!!!!
我们作为一名程序员,职业生涯中至少完成了一个“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的五十种不同实现方法!!!!!的更多相关文章
- 关于C#程序优化的五十种方法
关于C#程序优化的五十种方法 这篇文章主要介绍了C#程序优化的五十个需要注意的地方,使用c#开发的朋友可以看下 一.用属性代替可访问的字段 1..NET数据绑定只支持数据绑定,使用属性可以获 ...
- 关于优化C#程序的五十种方法
一.用属性代替可访问的字段 1..NET数据绑定只支持数据绑定,使用属性可以获得数据绑定的好处: 2.在属性的get和set访问器重可使用lock添加多线程的支持. 二.readonly(运行时常量) ...
- 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 ...
- jQuery -- 光阴似箭(五):AJAX 方法
jQuery -- 知识点回顾篇(五):AJAX 方法 1. $.ajax 方法:用于执行 AJAX(异步 HTTP)请求. <!DOCTYPE html> <html> &l ...
- AJAX--XMLHttpRequest五步使使用方法
传统浏览方式和AJAX方式的不同 多数Web应用程序都使用请求/响应模型从server上获得完整的HTML页面.经常是点击一个button,等待server对应,在点击还有一个button.然后在等待 ...
- Ajax学习(三)——XMLHttpRequest对象的五步使使用方法
Ajax的核心技术是XMLHttpRequest对象,它能够在不向server提交整个页面的情况下.实现局部更新网页.通过这个对象,Ajax能够像桌面应用程序那样仅仅与server进行数据层的 ...
- find、findIndex、indexOf、lastIndex、includes 数组五种查询条件方法介绍
find() 方法返回数组中满足提供的测试函数的第一个元素的值. 语法: arr.find(callback[, thisArg]) findIndex()方法返回数组中满足提供的测试函数的第一个元素 ...
- 使用EXCEL绘制三维地图(超简单的五分钟绘制地图方法,妈妈再也不用担心我不会画地图啦~)
博主为从区域规划转行地图学的小学渣一枚,最近处理数据希望对结果进行三维可视化,意外发现从小用到大的EXCEL可以绘制地图且功能非常强大,在这里做一下简单介绍,希望可以给看官提供些许帮助.那下面就开始吧 ...
- (五)js数组方法二
一:数组方法 var arr = []; 1.arr.push()//给数组末尾<添加>元素 2.arr.unshift()//给数组头部<添加>元素 3.arr.shift( ...
随机推荐
- 30.3 Collections 集合体系的工具类
/* * Collections: * 面试题:Collection和Collections有什么区别? * Collection是集合体系的最顶层,包含了集合体系的共性 * Collections是 ...
- Python Requests-学习笔记(4)-定制请求头和POST
定制请求头 如果你想为请求添加HTTP头部,只要简单地传递一个 dict 给 headers 参数就可以了. import jsonurl = 'https://api.github.com/some ...
- 《深入理解 Java 虚拟机》读书笔记:晚期(运行期)优化
正文 在部分商用虚拟机(Sun HotSpot.IBM J9)中,Java 程序最初是通过解释器进行解释执行的,当虚拟机发现某个方法或代码块的运行特别频繁时,就会把这些代码认定为"热点代码& ...
- css文本阴影
文本阴影-text-shadow text-shadow 属性向文本添加一个或多个阴影.该属性是逗号分隔的阴影列表,每个阴影有两个或三个长度值和一个可选的颜色值进行规定,省略的长度是 0. h-sha ...
- Docker-Bridge Network 01 容器间通信
本小节介绍bridge network模式下,单机上的容器网络拓扑及通信. 1.前言 对于单机上的容器,Docker提供了bridge.host.none三种网络.我们首先介绍经典的bridge模式. ...
- Redis之ziplist源码分析
一.ziplist简介 从上一篇分析我们知道quicklist的底层存储使用了ziplist(压缩列表),由于压缩列表本身也有不少内容,所以重新开了一篇,在正式源码之前,还是先看下ziplist的特点 ...
- Geber文件,装配图,BOM表的输出
一.Geber文件的输出步骤: 注:选择需要导出的层 注:所指箭头的地方都多加个零,让输出有更大的空间来容纳 总结:这就是最终的Geber文件了 二.NC Drill file的输出: 三.IPC ...
- Python 分析后告诉你闲鱼上哪些商品抢手?
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:[Airpython] PS:如有需要Python学习资料的小伙伴可以 ...
- 如何用python爬虫从爬取一章小说到爬取全站小说
前言 文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取http ...
- C - Sigma Function LightOJ - 1336 (数论)
一个让人脑洞大开的题. 题目大意比较简单,询问[1,n]有多少个数其因子和为偶数. 因子分解定理中求因子和的公式是 f(n)=(1+p1+p1^2+p1^3+...+p1^a1)(1+p2+p2^2+ ...