最新调研:Flash彻底宣告死亡,下一个会是谁呢?
Stack Overflow最近分析了平台内一些技术的增加或减少情况(主要根据技术标签和搜索频率决定),Angular占据首位或许不是令人惊讶的,有趣的是,JavaScript生态系统中的三员大将同时进入“持续增长”榜单的前五名,难道程序员就爱这一口吗?
JavaScript生态系统三位一体:Angular,TypeScript和Meteor
在最近的一篇博客文章中,Stack Overflow的数据科学家Julia Silge公布了从2010年开始研究的Stack Overflow问题中最引人注目的上升和下降。她查看标签问题并得出结论:Angular增长最突出。并且,不仅仅是爆发式增长这么简单,Angular处于持续增长的趋势中。
根据上图的完整排名可以看出,Angular是持续增长最快的技术,其次是两个JavaScript生态系统成员:TypeScript和Meteor。Xamarin占据了第三的位置,但Angular,TypeScript和Meteor均排名前五。
Pandas和dataframe的出现证明这是自由职业者发展最快的技能之一,如果你对数据科学和机器学习感兴趣,你可以考虑一下这两种技术。
在这个分析中有两个标签有很大的增长——Swift和Angular,并且二者有一些共同之处。Swift是Apple开发iOS应用程序的首选语言,是Objective-C的后继版本,而Angular是Angular.js标签的更新版本。这两种技术的增长速度非常快,产生了巨大的影响,因为对于现有开发人员社区来说,这是自然而然的下一步。(请注意,AngularJS的增长速度也非常快,而且在Stack Overflow方面的增长率也是同比第十高)
注意:此分析包含至少有10,000个问题的Stack Overflow标记,并排除以ios8等数字结尾的标记。
Flash彻底宣告死亡,下一个是谁?
曾经,Adobe停止Flash的事情闹得沸沸扬扬,众多程序员请求在Github上开源。如今,Stack OverFlow的数据似乎在宣告着Flash已经彻底死亡了。
传统观点认为,苹果公司在2010年通过在iPad上不支持Flash促进了Flash的死亡。
如果能够预见到Flash的下滑,那么还有哪些其他技术的下降可能导致死亡呢?
在过去十年,Flash已经拥有了自己的捍卫者,尽管2011年左右开发者活动下滑显而易见。是否还有其他看起来健康但已经濒临死亡的技术呢?
为了回答这个问题,我们查看了过去五年的趋势(包括一度成长,达到高峰,然后开始萎缩的标签),并估算每种技术随时间的下降速度,公开数据如下:
其中最为危险的是flex和Microsoft silverlight,Flex是基于Flash的Web应用程序框架,下降速度一度超过了Flash。随着Flash的死亡,出现这样的结果也在意料之中。毕竟,在这个圈子里,随时可能出现更强大的替代品。
TypeScript——增长快速还深受程序员欢迎?
TypeScript不仅位列持续增长技术榜单的第二名,同时也是不喜欢人数最少的技术之一。根据Stack OverFlow成员David Robinson说法,其他受欢迎的还有R和Kotlin。
自2008年以来,使用TypeScript的人数逐年攀升,在2012年底达到顶峰,开发商的兴趣保持稳定。2015年又一次实现了爆发式增长。但是请记住,即使你认为TypeScript在两年前似乎不是非常流行,那是因为当时社区还有很多问题不太完善。
50 种不同编程语言的“Hello World”,你知多少?
历经 70 年,不断出现的编程语言为开发者解决了哪些难题?其存在又有怎样的特性?本文将以「Hello World」为例,花样呈现 50 种编程语言。
作者 | Sylvain Saurel
译者 | 风车云马,责编 | 屠敏
以下为译文:
当我们学习一门编程语言时,都是从“Hello, World!”开始。所有程序员在其职业生涯中,都至少接触过一个经典的“Hello, World!” 程序。通常程序员会使用多种编程语言,多的甚至实现了十几种。
还有一种称为TTHW(Time to “Hello, World!”)的方法,来衡量程序员创建一个新的“Hello, World!”程序的时间。
你可以用多少种不同的语言编写一个“Hello, World!”程序,你的答案是什么?
让我们在计算机编程的世界里回顾一翻。我会向你展示50种不同编程语言编写的“Hello, World!”程序。同时让你看到计算机编程语言随时间的演变。
1. 汇编语言- 1949
汇编语言创建于1949年。下面我介绍一种经典的汇编语言,适用于Intel 8080 8位处理器,该处理器后来在1974年4月正式推出。
bdos equ 0005H ; BDOS entry pointstart: mvi c,9 ; BDOS function: output stringlxi d,msg$ ; address of msgcall bdosret ; return to CCPmsg$: db 'Hello, world!end start
2. Fortran - 1957
Fortran编程语言是Formula Translation的派生。它是一种汇编命令式程序设计语言,特别适合于数值计算和科学计算。Fortran语言创建于1957年,用这种语言写的“Hello, World!”:
PROGRAM HelloWRITE (*,*) 'Hello, World!'STOPEND
在Fortran 90或95版本中,程序“Hello, World!”可以这样写:
PROGRAM HelloWRITE (*,*) 'Hello, World!'END PROGRAM Hello
3.Lisp - 1958
Lisp是最古老的命令式和函数式编程语言。它最初创建于1958年,在20世纪70年代和80年代,Lisp最终成为人工智能世界中非常流行的语言。
(write-line "Hello, World!")
4. Cobol - 1959
Cobol编程语言于1959年正式创建,2019年刚刚60周年。Cobol是COmmon Business Oriented Language的缩写,它原本是一种用于编写业务应用程序的公共语言。到2019年,Cobol仍然广泛应用于银行和保险领域。
IDENTIFICATION DIVISION.PROGRAM-ID. HELLO-WORLD.PROCEDURE DIVISION.DISPLAY "Hello, World!"STOP RUN.
5. BASIC - 1964
BASIC是Beginner’s All-purpose Symbolic Instruction Code的首字母缩写,它是一种高级编程语言,其主要特点是易用性。
PRINT "Hello, World!"END
6. Logo - 1968
Logo是为了更容易使用Lisp语言,经常被称为“Lisp without brackets”。具体来说,Logo是一种面向对象的编程语言。
print [Hello World !]
7. B - 1969
创建于1969年的B语言现在已经过时了,但它仍然扮演着重要的角色,因为它激发了C语言的灵感,而C语言至今仍被广泛使用。
main{putstr("Hello world!*n");return(0);}
8. Pascal - 1970
Pascal是创建于1970年的命令式编程语言。它是为教学目的而设计的,其特点是语法清晰、严谨,有助于良好的程序结构。
beginwriteln('Hello, World!')end.
Turbo Pascal创建于1983年,是Pascal编程语言的集成开发环境。它在20世纪80年代和90年代取得了巨大的成功。
program HelloWorld(output);beginwriteln('Hello, World!');readln;end.
9. Forth - 1970
Forth是一种基于命令式的计算机编程语言,由Charles H. Moore于20世纪60年代发明,其第一个版本于1970年发布。它在1994年被ANSI标准化,并在1997年被ISO采用。
: HELLO ( -- ) ." Hello, World!" CR ;HELLO
10. C - 1972
C语言是1972年在贝尔实验室发明的,当时丹尼斯·里奇(Dennis Ritchie)和肯·汤普森(Ken Thompson)正在开发UNIX。Ken Thompson之前开发了B语言。Dennis Ritchie决定从B语言中获得灵感,通过添加类型来创建C语言。
#include <stdio.h>intmain (void) {printf("Hello, World!\n");return 0;}
11. Smalltalk - 1972
特别是受到Lisp语言的启发,Smalltalk是一种面向对象、自反性和动态类型的编程语言,发明于1972年。Smalltalk是最早拥有集成开发环境的编程语言之一。
Transcript show: 'Hello, world!'; cr.
12. Prolog - 1972
Prolog是一种与人工智能和计算语言学相关的逻辑编程语言。Prolog创建于1972年。
:- write('Hello, World!'),nl.
13. ML - 1973
ML是一种基于Lisp的函数式编程语言。
print "Hello, World!\n";
14. Scheme - 1975
Scheme创建于1975年,是一种支持函数式和命令式编程的多范式编程语言。这是基于Lisp的三大语言之一,另两种是Common Lisp和最近创建的Clojure。
(display "Hello, World!") (newline)
15. SQL - 1978
SQL(Structured Query Language)结构化查询语言,是一种用于操作关系数据库的标准化计算机语言。它也可以设计“Hello, World!”。
CREATE TABLE message (text char(15));INSERT INTO message (text) VALUES ('Hello, World!');SELECT text FROM message;DROP TABLE message;
16. C++ - 1980
最初在1980年由Bjarne Stroustrup以C和类的名义创建,后来在1983年以c++语言命名。c++编程语言现在已被ISO标准化,并广泛应用于工业和其他领域。
#include <iostream>using namespace std;intmain {cout << "Hello, World!" << endl;return 0;}
17. Ada - 1983
Ada是一种面向对象的编程语言,于1980年初开发,1983年正式发布。“Ada”这个名字是为了纪念Ada Lovelace,她是有史以来第一位女计算机科学家。
Ada通常用于高可靠性和安全性的实时和嵌入式系统。
with Ada.Text_IO;procedure Hello isbeginAda.Text_IO.Put_Line ("Hello, World!");end Hello;
18. Common Lisp - 1984
Common Lisp,通常缩写为CL,是由ANSI标准化的Lisp语言规范。
(princ "Hello, World!")
19. MATLAB - 1984
MATLAB,用于“矩阵实验室”,是一种用于数值计算的脚本语言。MATLAB的开发环境也叫这个名字。
disp('Hello, World!')
20. Eiffel - 1985
Eiffel是一种面向对象的编程语言。Eiffel基于当今非常流行的概念,如契约编程或重用。
classHELLO_WORLDcreatemakefeaturemakedoprint ("Hello, world!%N")endend
21. Objective-C - 1986
Objective-C是一种自反的面向对象编程语言。它是C编程语言的扩展,与c++类似,但在动态消息分发或动态加载方面与c++有很大的不同。
如今,它主要用于苹果的操作系统:macOS及其iOS衍生产品。
#import <Foundation/Foundation.h>int main {@autoreleasepool {NSLog(@"Hello, World!");}}
22. Erlang - 1986
Erlang编程语言支持几种范例:并发、实时、分布式。它基于actor模型,具有容错和热更新功能,能够开发高可用性应用程序。
io:format("Hello world!~n").
23. Perl - 1987
Perl是Larry Wall在1987年创建的一种编程语言,用于轻松地处理基于文本的信息。Perl是一种解释语言,它受到C语言的控制和打印结构的启发,也受到shell脚本语言的启发。
print "Hello, World!\n";
24. Caml - 1987
Caml是Categorical Abstract Machine Language的缩写,是一种面向程序安全性和可靠性的通用编程语言。Caml支持函数式、命令式和面向对象的编程风格。它也是一种非常独特的语言。
print_string "Hello, World!\n";;
25. Tcl - 1988
Tcl是工具命令语言,是John Ousterhout在1988年开发的一种脚本语言。这种动态类型语言是跨平台的、可扩展的、易于学习的,并且基于12条语法规则。Tcl很容易与C编程语言进行交互。
1990年,John Ousterhout为Tcl开发了一个名为Tk的扩展,这是一个用于创建可移植图形界面的库。因此,今天提到Tcl时,更多的是指Tcl/Tk的组合。
puts "Hello, World!"
26. Haskell - 1990
Haskell是一种基于lambda计算和组合逻辑的函数式编程语言。
main = putStrLn "Hello, World!"
27. Python - 1991
Python是一种解释性编程语言,具有多范式、多平台的特点。Python支持结构化、函数式和面向对象的命令式编程。这些年来,Python变得非常流行,甚至在2019年成为最受欢迎的语言之一。
Python 3.0或更高版本中的“Hello, World!”:
print("Hello, World!")
28. Visual Basic - 1991
Visual Basic,简称VB,是第三代事件编程语言,是微软为其COM编程模型创建的集成开发环境。
Public Sub MainDebug.Print "Hello, World!"End Sub
29. Lua - 1993
Lua创建于1993年,是一种自反的命令式脚本语言,用于嵌入其他应用程序以扩展功能。
print("Hello, World!")
30. Ruby - 1995
Matsumoto Yukihiro由于对自己的Smalltalk和Lisp开发经历感到失望,于1993年开始在Emacs下设计Ruby语言。他在1995年发布了第一版。Ruby是解释型的、面向对象的、多范式的编程语言。
puts 'Hello, World!'
31. Java - 1995
Java是James Gosling在1995年创建的一种面向对象的编程语言,至今仍是业界最流行和使用最多的语言。Java允许完成客户机到web应用程序的所有工作,而谷歌将其作为Android移动操作系统上开发应用程序的语言,进一步扩展了它的功能。
class HelloWorld {public static void main(String[] args) {System.out.println("Hello, World!");}}
32. JavaScript - 1995
JavaScript是一种脚本编程语言,主要用于Web,但现在可以在服务器端使用Node.js等。JavaScript是一种面向原型的编程语言。
document.write('Hello, World!');
33. PHP - 1995
就编程语言而言,1995年无疑是极其重要的一年,因为在Java和JavaScript之后,PHP也在这一年诞生。PHP主要用于Web,是一种面向对象的命令式语言,可以像其他解释语言一样在本地工作。
<? echo "Hello, World!" ?>
34. Rebol - 1997
Rebol是一种高级脚本编程语言,它建立在denotational语义的基础上,自称为“消息传递语言”。这是一个“Hello, World!”:
print "Hello, World!"
35. ActionScript — 1998
ActionScript是一种用于客户端应用程序(如Adobe Flash和Adobe Flex)和服务器(Flash media server、JRun、Macromedia Generator)的编程语言。ActionScript在Unity graphics中用作脚本语言。
package {public class HelloWorld {public functionHelloWorld {trace("Hello World !");}}}
36. D - 1999
D是一种命令式的面向对象和多范式的编程语言。D的灵感来自许多语言,包括c++、Java和Eiffel。尽管D有很多优点,但它还未取得创造者所期望的那样成功。
import std.stdio;void main {writefln("Hello, World!");}
37. C# - 2000
c#是微软在2000年与Sun就Java语言发生争执后创建的。c#是一种面向对象的编程语言,用于在Microsoft上开发。该语言派生于c++和Java,使用它们的一般语法和一些概念。c#也可以用于开发ASP上的web应用程序。
using System;internal static class HelloWorld {private static void Main {Console.WriteLine("Hello, World!");}}
38. Groovy - 2003
Groovy是一种运行在Java平台上的面向对象编程语言。Groovy是Java语言的替代品,它的灵感来自Python、Ruby或Smalltalk。
println "Hello, World!"
39. Scala - 2003
Scala是一种多范式编程语言,旨在以简洁优雅的形式表达常见的编程模型。Scala通过静态类型集成了面向对象和函数式编程的范例。
object HelloWorld extends App {println("Hello, World!")}
40. F# - 2005
f#是一种函数式、命令式和面向对象的编程语言,由Microsoft开发。f#源自与之高度兼容的OCaml编程语言。这两种编程语言与ML语言属于同一语系。
printfn "Hello, World!"
41. Windows PowerShell - 2006
Windows PowerShell是微软开发的一套软件,包括一个命令行界面、一种称为PowerShell的脚本语言和一个开发工具包。从Windows 7开始PowerShell作为标准语言。
echo "Hello, World!"
42. Clojure - 2007
Clojure是一种经过编译的跨平台函数式编程语言,旨在创建安全且易于分发的程序。Clojure是基于Lisp的三大语言之一。Clojure可以转换为Java代码、JavaScript代码和. net代码。因此,Clojure可以在JVM、CLR、浏览器和Node.js上使用。
(println "Hello, World!")
43. Go - 2009
Go是一种经过编译的并发式编程语言,灵感来自C和Pascal。这种语言是由谷歌从Robert Griesemer、Rob Pike和Ken Thompson(他在1969年创造了B语言)最初提出的概念发展而来的。
package mainimport "fmt"funcmain {fmt.Println("Hello, World!")}
44. Rust - 2010
Rust是由Mozilla设计和开发的多范型编译的编程语言。Rust是“一种安全、并发、实用的语言”,同时支持纯函数式编程风格、actor模型、过程式编程以及面向对象编程。Rust常被称为c++的潜在继承者之一。
fn main {println("Hello, World!");}
45. Dart - 2011
Dart是一种由谷歌开发的web编程语言。它最初的目的是取代JavaScript。目前,Dart还没有达到它的目标,开发人员的首要任务是将Dart转换成与所有现代浏览器兼容的JavaScript代码。Dart也可以用于服务器端编程。
Dart是Flutter用于开发移动应用程序的语言。
main {print('Hello, World!');}
46. Kotlin — 2011
Kotlin是一种面向对象的函数式编程语言,具有静态类型,允许在Java虚拟机、JavaScript和本地的多种平台进行编译。2017年,谷歌使Kotlin成为继Java之后Android官方支持的第二种编程语言。
fun main (args: Array<String>) {println("Hello, World!")}
47. Ceylon - 2011
Ceylon由Red Hat创建,是一种高级开放源码编程语言,具有强类型和静态类型。它的语法与Java相似。它可以编译为Java或JavaScript。
void hello {print("Hello, World!");}
48. TypeScript - 2012
TypeScript是一种免费的开源编程语言,由微软开发,旨在提高JavaScript代码的安全性。TypeScript语言是JavaScript的一个超集,它被转换成JavaScript,这样任何web浏览器或JavaScript引擎都可以应用。
console.log("Hello, World!");
49. Julia - 2012
Julia是一种用于科学计算的高级、强大和动态编程语言,其语法为其他类似开发环境(如MATLAB、R或Python)的用户所熟悉。
println("Hello, World!")
50. Swift - 2014
Swift是一种经过编译的、多范式的对象编程语言,其设计目标是简单、高性能和安全。它是由苹果公司开发的开源软件,从而与Objective-C一起成为开发移动iOS应用程序的解决方案。
print("Hello, World!")
结论
通过这次时间旅行,用50种不同语言编写了“Hello, World!”程序,向人们展示了70年来计算机编程语言的变迁。
原文:https://medium.com/javarevisited/70-years-of-hello-world-with-50-programming-languages-2400de893a97
本文为 CSDN 翻译,转载请注明来源出处。
【End】
相关问答
flex 3.0入门指南?Flex3.0是一个基于AdobeFlash技术的应用开发框架,可以用于创建富互联网应用程序(RIA)。下面是一个Flex3.0的入门指南:1.安装Flex开发环境:首先,需要下...
flash 怎么添加链接?1.将Flash作品还原为FLA文件。用《硕思闪客精灵》软件打开Flash作品→按“导出为FLA/FLEX”按钮→在弹出的对话框中,选择导出路径、导出版本→按“确定”,稍等...
as支持的语言?AS语言是脚本语言,主要是flash、flex动画用的脚本语言,跟C是不同的,跟javascript比较接近跟C比学习难度有点不好比较,非要比较的话:1、如果是flex开发的话...
adobe是什么?有什么用?[回答]ADOBE是一家公司名字,主要产品是AI/PHOTOSHOP系列、FLASH系列,日常上网看视频必须的FLASHPLAYER就是这家公司的。ADOBE是一家公司名字,主要产品是A...
那些特别逼真的动画都是用什么软件做的?UleadGIFAnimator5.10汉化版友立公司出版的动画GIF制作软件,内建的Plugin有许多现成的特效可以立即套用,可将AVI文件转成动画GIF文件,而且还能将动画GIF...
AIR用途与特点?2.极其细腻,不是其他品牌金属磨砂质感可以比拟的。机身左侧设计有电源接口、一个USB3.0接口、和一个音频输入和输出接口,另外在音频接口右侧的是一个外置小MIC...
如何将SWF文件里的声音去掉? - 夹心姐姐? 的回答 - 懂得下载个解码编码器;3、将wma文件格式解码,再编码;4、编码的时候将声音部分去...会用fireworks吗?就是制作flish的软件用Flash软件可以清除.swf文...
前端视觉设计学什么?前端设计师这一职业开发技术包括三个要素:HTML、CSS和JavaScript,但随着RIA的流行和普及,Flash/Flex、Silverlight、XML和服务器端语言也是前端开发设计师应该...
adobe air对手机有危害吗?手机无法打开该文件。AdobeAIR简介Adobe®AIR™是一个跨平台的运行时,可以使用现有的Web开发技能(Flash,Flex,HTML,JavaScript,Ajax)创建桌...
AIR是什么意思?AIR是AdobeIntegratedRuntime的缩写,是一个跨平台的运行时环境,由AdobeSystems开发。它允许开发人员使用HTML、AJAX、AdobeFlash和AdobeF...