30年从Hello, World看计算机语言发展

2013 年 7 月 18 日4250

   

最近,我花了一个假期的同一个星期,7月4日,有大量的时间来反映在我的职业生涯至今。要知道,我已经写代码,现在,近30年来,这是一个有点令人震惊!我决定充分利用一些额外的时间来创作这种怀旧的职位,并探讨在过去的30年,我曾与所有语言。所以这是我30年的“你好,世界开始学习新的语言致敬。”

我学到的第一个编程语言是一种特殊的香味TI BASIC,基本由微软专门为TI 99/4A微电脑。BASIC,这为初学者通用符号指令代码,为7年到老学到老,而被困在家里,没有游戏是完美的语言。组织语言的代码行的行号,并显示在屏幕上“印”像这样的东西:

1981 - TI BASIC

ti994abasic

我花了几个月的书面“选择自己的冒险”的游戏使用BASIC风味,甚至更多的时间听的口哨声,爆裂声,嘶嘶的黑色盒式磁带录音机,用于保存和恢复数据。也许我年轻的生命中最令人兴奋和最关键的时刻是几年后,当我的父母带回家的Commodore 64。本机提供的Commodore BASIC,或PET BASIC,开箱。这也由Microsoft编写专门服务苹果机的时候也发生了该行的芯片编写的6502微软BASIC的基础上。

1984年 - 的Commodore BASIC

c64basic

问号是速记打印命令,怪异的字符之后的简写方式键入RUN命令(R SHIFT + U - 的Commodore 64键盘上的SHIFT字符提供了凉爽的小图形片段,你可以用简陋的图片)。

我很快发现,基本没有做所有的事情,我想它。“现场演示“,在当时蓬勃发展和船员作出惊人的计划,将违抗限制的机器。绝招之类的东西他们会做视频芯片,绘图或滚动内容不应该,甚至将数据移动到“禁地”的屏幕边框部分。实现这些功勋需要的确切时间,是唯一可能通过直接使用机器语言代码。所以,我解雇了我的机监视器(该软件的名称,这将允许你直接输入机器代码到内存),并写了这个小程序:

1985 - 6502机器码

c64machine

这个小的应用程序加载的“Y-累加器”与索引,然后纺$ C100开始通过内存,每次发送一个字符一个ROM子程序,将打印出来的显示。这相当于一个for循环(Y = 0,Y <= 0x0d的Y + +)的机器代码。垃圾转运站从子程序返回。为了执行该程序,你必须使用内置的SYS命令,会召唤出的内存地址(不幸的是,你有49152 $ C000从十六进制到十进制的转换,但在其他方面,它的工作就像一个魅力)。,我有PETSCII字符为“你好,世界”存储在内存地址$ C100(是的,64代有它自己的特殊字符页)。下面是结果:

c64machinecall

当然生活变得轻松一点,当我提出从原机器代码到汇编的。随着组装,我可以预先计划我的软件,并使用标签来标记的内存区域,而不必记住内存地址。上面显示的确切相同的程序,可以这样写:

1986 – 6502 Assembly





* = $C000 ;set the initial memory address



CHROUT = $FFD2 ;set the address for the character out subroutine



LDY #$00



LOOP LDA HELLO, Y



CMP #$00



BEQ END



JSR CHROUT



INY



BNE LOOP



END RTS



HELLO ASC 'HELLO, WORLD.' ; PETSCII



HELLOEND DFB 0 ; zero byte to mark the end of the string

大约在那个时候,我才意识到我真的很喜欢写作软件。我花了一些高中课程,但他们教的是一个愚蠢的小Pascal语言的设计,使“易”,学习如何编程。真的吗?容易吗?经过手工编写复杂的程序,使用一台机器监视器,帕斯卡尔像很多矫枉过正的感觉。我不得不承认,“​​你好,世界”是简单的语法。

1989 – Pascal





program HelloWorld;



begin



writeln('Hello, World.');



end

我想凉快的孩子当时的工作,这是一个相当灵活的语言,感觉更像是一个全新的语言功能的宏在组装了一套比。我自学了C上侧,但用的只是很短的一段。

1990 – C





#include <stdio.h>



main()



{



printf("Hello World");



}

小程序,包括处理标准输入/输出和一个库,然后在它的途中发送文字。图书馆是如何使我们能够开发跨平台的 - 函数被调用同样的事情,无论你是在Windows或Linux,但实现了所有需要,使其工作在目标机器上的低级例程库本身。上面的代码是我鼓捣了几年后,我的Linux机器上。很难形容,如果你是在这段时间内不进电脑,但感觉就像你是不是一个真正的程序员,除非你建立自己的自定义安装Linux。通过“建自己的”我的意思是字面上走过源和定制,以匹配特定的硬件,你拥有。最好玩的是处理视频卡和学习有关“点时钟”和所有的细微差别与图形芯片的主板很好地发挥。无论如何,我岔开。

C是我学习确实是一个挑战,但我很快就想通了,凉爽的孩子们做不同的东西,并遵循这种模式被称为“面向对象编程”机器代码和汇编可能是最远的,你可以从面向对象的,这样的转变,从面向对象程序是一个挑战,我已经准备好对付。的时候,你不能简单地在网上搜索的内容(你也可以,但它使用不同的机制,点击少得多),所以我走了出去,给自己买了一摞的C + +书籍。原来,C + +支持的想法“对象”,甚至用对象来表示流和管道操纵它们。这种面向对象的东西,还推出了命名空间的想法,以便更好地管理分区代码。所有说,“你好,世界”变成了:

1992 – C++





#include <iostream>



using namespace std;



int main()



{



cout << "Hello World";



return 0;



}

我率领大学,感到失望的是,我去的地方没有,涵盖了“现代”我很感兴趣,像C和C语言的课程+ +。相反,我不得不蒙混过关的课程在大型机上我们称为“徽”一个有趣的Fortran语言,实际上关心什么样的列,你把你的代码进行功课!这是正确的,在当时的语言风味的指定列1征求意见,列第1 - 5语句标签,6列标记的延续,只有在第7栏,你可以开始编写实际的代码。我学到了足够的Fortran知道,我从来没有想用它。

1993 – Fortran





PROGRAM HELLOWORLD



PRINT *, 'Hello, World!'



END

因为我是没有太多进入主课程的大部分时间我晚上在计算机实验室,学院有大量的Unix机器上的记录。在那里,我发现互联网和安装软件的“老派”的方式了解:你拉下来的来源,建立它,检查错误,调整它,解决它,并得到一个工作的客户端。老实说,我不知道怎么,你可以使用Unix的情况下学习如何编写基于事物的方式跑回来,所以我不断的劈砍,探索和学习我的绕制方式。一个相当普遍的事情,将执行命令将转储出巨大的沃兹信息,你不得不使用“方便的”命令行工具来解析。其中最酷的语言,我在这段时间里学到的PERL。它不会做语言公正对待它用这样一个简单的例子,但这里有云:

1993 – PERL





$welcome = "Hello World";



print "$welcome\n";;

同时,我很快发现了大规模的世界宽的Web(是的,那是什么,我们叫做它当时...互联网是什么所有这些有趣的节目像Gopher和阿奇跑到上,和万维网是只是一组文档坐在上面的)。HTML是我又一次飞跃,因为这是我第一次遇到创建一个声明UI。而不是加载变量或文字,关键字或子程序调用一些,我可以从字面上只是组织页面上的内容。你会惊奇地发现,20年后,一个HTML页面的基本语法,没有真正改变。

1993 – HTML





<html>



<head><title>Hello, World</title></head>



<body><h1>Hello, World</h1></body>



</html>

这对我来说是一个有趣的时刻。我已经从我的个人电脑(TI-99/4A 64和Commodore的Amiga上度过一个短暂的时期)移动到大型机,突然我的电脑真的对我来说只是一个终端连接到UNIX主机。我也跑Linux操作系统,因为这是最快的方式连接到互联网和网络的TCP / IP协议栈的时候-我的电脑上内置的操作系统,而不是坐在上面,就像它在做了旧的Windows版本(记得网通的人吗?)。我的大部分工作是在大型机上。

我也意识到,我是与PC世界失去了联系。当时,这是相当明显的,野生天的个人电脑和两台机器周围尘埃落定:PC,运行Windows,对于大多数人来说,和Mac的设计师。这是真的,我相信什么。我有一个室友,一切都结束了在Mac和当时他设计的优惠券。他把所有这些整齐的图形设计方案,往往会拉出夸克和问我,“你有什么PC上,能做到这一点吗?”我耸肩,并提醒他,我什至不能画一个圆或方所以,我会做什么地球上与图形软件?我喜欢,因为我明白我的电脑,软件和我的理解数学,即使我不能得出我当然可以用数学来建立分形图形或粒子风暴。当然,这样做需要有图形卡,是不是真的实用TELNET会话到Unix框,于是我开始学习如何在PC上的代码。在当时,它是Win32和C + +做的伎俩。仍然可以创建样板的堆栈Visual Studio 2012中。我不会烦你原来的“HELLO.C”长达150行代码的Win32的细节。

1994 – Win32 / C++ (Example is a bit more recent)

win32的

下降到命令行执行,这给了我们:

win32output

然而,我的粒子流和曼德勃罗集就业没有做任何事情,所以我不得不采取一种不同的方法。具有讽刺意味的是,我的专业开始用电脑做没有什么。我开始在一家保险公司工作要求通过电话西班牙语。这是正确的。一个低工资的工作,我是“解决”支付账单,而我熬夜晚,我的电脑上砍死在采访中,我碰巧何况我讲西班牙语。他们带来了他们的双语代表来采访我,我通过了考试,并在一个星期内,我是在一个收入较高的位置,在短短的电话比我有所有我多年在高中学习更多的西班牙。

我年轻的和有竞争力的,我们名列多少声称,我们成功地收在一天。我是不是落后,只是因为我正在使用的软件往往在一段时间每一次崩溃。这是一个全新的系统,我-AS/400(现在称为在iSeries) -但我想通了,不管怎样,学会了如何至少软件崩溃后重新启动的索赔。IT部门很快流行起来,把我拉到一边。我怕我遇到了麻烦,而是他们延长了我的报价进入。我开始做第三移位操作,这意味着基本上维持了大量的打印机,将打印出政策形式和索赔的AS/400系统和交换墨盒。

当我去操作了打印墨盒交换的过程中移位。这是因为某些形式仅黑色墨水,但其他形式的绿色或红色的亮点。打印机只能处理一个油墨配置文件,所以每当遇到不同类型的形式,我们会得到一个警告,去交换一切。我决定,这是荒谬的,所以我花时间来教自己的RPG。让全黑的走到了一起,所有的绿色,等成约2小时1把8小时工作,给了我很多的时间来研究,我写了一个程序,将匹配的打印作业的墨水颜色,然后打印队列排序RPG游戏。原来的版本 - RPG II和RPG III - 原油最初设计的语言,简单模仿打卡系统,并生成报告(名代表报告生成)。如Fortran,角色扮演是一个位置的语言。

1995 – RPG





I 'HELLO, WORLD' C HELO



C HELO DSPLY



C SETON LR

注意不同类型的线表示的第一个字符(实际上它已经几列,但我故意省略一些的保证金代码)。这定义了一个常数,它显示一个指标,然后设置,导致程序完成。

在业务工作后,我降落第二次演出。月末会计需要相当多的时间和精力。原来的系统是霍尼韦尔大型机读打孔卡。COBOL程序写入,读取模拟打卡和输出的另一个文件,然后泵到AS/400和处理的文件。在此之后,各种会计数字相匹配。由于舍入误差,不支持的交易,以及任何其他问题的数字几乎从来不匹配,所以任务是调查的过程,并找出它打破了,然后更新的代码修复它。我们也有一个“应急开关”的11个小时,在输出数据读取和生成会计调整平衡的书,如果我们无法找到问题。虽然我没有做很多的COBOL编码,我必须了解它不够好,读霍尼韦尔在AS/400上侧来解决问题。

1995 – COBOL





IDENTIFICATION DIVISION.



PROGRAM-ID. HELLO.



ENVIRONMENT DIVISION.



DATA DIVISION.



WORKING-STORAGE SECTION.



01 WELCOME-MESSAGE PIC X(12).



PROCEDURE DIVISION.



PROGRAM-BEGIN.



MOVE "Hello World" TO WELCOME-MESSAGE.



DISPLAY WELCOME-MESSAGE.



PROGRAM-DONE.



STOP RUN.

这只是一个很短的时间后,顶级RPG大师来到我们公司,给我们三天的类,因为最酷的事情发生在AS/400世界。不仅AS/400机器迁移到64位(双位两次一样好,大家都知道吧?),但旧貌换新颜的RPG语言版本四会拥抱更多的程序和几乎面向对象原则比以往任何时候都。如何的酷是什么?我们跳进训练,我也笑了,因为所有的老RPG开发商挠头试图蒙混过关,而这个“新的编程风格”我松了一口气,我终于可以回到更熟悉的程序风格,我习惯了用C一直和C + +而不是紧张,收缩,指标和基于列的语言RPG。

有些开发者可能得到一个任意球“的”功能“,真的被撞脱袜子了大家一个。语言要求的指示,开始在某列,和投入的说明会在他们前面。这是一个非常有限的空间,所以你真的可以只加载几个字符常量,否则你不得不将它们指定为常量或数据结构和阅读他们进来新的语言提出的关键字列的右侧,以便有更多的空间“的因素之一”的位置。这意味着我们现在可以做“你好,世界”在短短的几行。语言也是“程序”,所以你可以结束一个程序,而不是返回设定的指标(虽然如果我没有记错的话,返回主程序真的只是设置该指标在幕后)。

1996 – RPG/ILE





C 'HELLO, WORLD' DSPLY



C RETURN

的AS/400的特点是内置到操作系统称为DB2数据库。时间最长的数据库只支持直接的互动,通过角色扮演或其他软件不支持的SQL语法。作为一个特殊的包称为SQL/400铺开,但有底层支持。我写了一个我第一次发表文章(打印)在1998年创建的Interactive SQL实用的AS/400进军SQL。大概有一百万的方式做“你好,世界”在SQL中,但也许是最简单的是这样的:

1998 – SQL





SELECT 'HELLO, WORLD' AS HELLO

我道歉,按时间顺序走出,但SQL似乎是有道理的,作为我的“主”或“有偿”的工作的一部分。在同一时间,我已经做了很多沉重的游戏,DOOM(第一场比赛让我印象深刻的开始,其实我打发钱购买完整版本),继续DOOM II HEXEN,最终在地震。如果你不熟悉的历史上的第一人称射击游戏,雷神之锤的游戏,改变游戏的历史。它提供了一个支持TCP / IP,并使用先进的代码,让更多的游戏玩家在第一个“真正的”3D世界(前辈模拟3D与2D地图,允许不同的地板和天花板的高度)和革命性的死亡比赛地图比以往任何时候都相同。

它也是极其定制。虽然我审美的挑战,从来没有被创建自己的模型或地图 ​​,我跳下编程。地震提供了一个基于C语言的QuakeC字面上,你会进入一个特殊的跨平台的字节代码,可以运行在所有的目标平台,地震并编译。我赶紧写了一些修改,做这样的事情让玩家起火或导致尖峰实事求是地从墙壁弹。在聊天室里有人问我编程的想法,我成了被称为“MidnightCTF”,基本上采取任何现有的地图,并关闭所有的灯,但装备的玩家用自己的手电筒。地震是一个支持真正的3D音效的第一场比赛,所以这增加了一个有趣的游戏维度。

有人甚至包括我的修改在“说文解字”下QuakeC项编程语言的代码片段。Nikodemos是我打得地震时我用的绰号。“你好,世界”为QuakeC是真的只是一个被发送的广播消息,目前在游戏中的所有玩家。

1996 – QuakeC





bprint("Hello World\n");

到了这个时候,我意识到互联网是真正起飞。沮丧,我已经在1993年时,我发现在大学,没有人真正知道我在谈论什么,但短短几年后,大家都在争先恐后地获得(实际上AOL和微软MSN等少数公司认为他们可以建立他们自己的版本......都结束了给插入互联网)。我意识到,我的工作在大型机将成为过时的或最好的,我是,隐藏在后面的角落黑客“老系统的开发。”我想进入新的东西。

我调到一个部门工作的新的东西 - 一个应用程序,用VB6(COM +)和ASP编写的应用程序通过连接几个不同的系统旨在提供跨供应商的知名度。

1998 – VB6 (COM) w/ ASP





Public Class HelloWorld



Shared Public Function GetText() As String



return "Hello World"



End Function



End Class




<%@ Page Language="VB" %>



<OBJECT RUNAT=SERVER SCOPE=Session ID=MyGreeting PROGID="MyLibrary.HelloWorld">



</OBJECT>



<HTML>



<HEAD><TITLE><%= MyGreeting.GetText() %></TITLE></HEAD>



<BODY><H1><%= MyGreeting.GetText() %></H1></BODY>



</HTML>

当时我有工作机会,一个天才的建筑师设计了一个系统,在当时是相当惊人的。所有接受我们的COM +组件接口,因为单个字符串参数传入的信息传递XML。这使我们的组件可以很容易地从网站的消息,因为他们可以从第三方系统的传入数据。这是一个真正的“网络服务”,我才真正理解的术语意味着什么。在客户端,通过JavaScript解析形式,并打包成XML,并张贴了,所以“后”从网页没有什么不同后,直接从服务。该服务将返回XML作为数据。这将结合模板的用户界面(称为PXML演示XML),,然后XSLT模板将改变它的显示。这使我们能够调整的UI不改变底层代码,几乎就像是一个低效的XAML引擎。这是净天前。

JavaScript的当然是我们的克星,因为我们必须解决如何处理当时的各种浏览器。是的,存在着同样的问题,15年前的今天存在,当它涉及到JavaScript和跨浏览器兼容性。幸运的是,所有的浏览器都同意的方式发送给最终用户一个对话框。





alert('Hello, World.');

很多的时间都花在工作,与Microsoft XML的DLL(是的,如果你编程,那么你还记得注册MSXML解析器)。MSXML3.DLL很快就成了我最好的朋友。下面是一个示例XML转换成HTML使用XSLT。

1998 – XML/XSLT to HTML





<?xml version="1.0"?>



<hello>Hello, World!</hello>




<?xml version='1.0'?>



<xsl:stylesheet version="1.0"



xmlns:xsl="http://http://www.zjjv.com///1999/XSL/Transform">



<xsl:template match="hello">



<html>



<head><title><xsl:value-of select="."/></title></head>



<body><h1><xsl:value-of select="."/></h1></body>



</html>



</xsl:template>



</xsl:stylesheet>




<%



Const MSXMLClass = "MSXML2.DOMDocument"



Set XSLT = Server.CreateObject(MSXMLClass)



Set XDoc = Server.CreateObject(MSXMLClass)



XDoc.load(Server.MapPath("hello.xml"))



XSLT.load(Server.MapPath("hello.xsl"))



Response.Clear



Response.Charset = "utf-8"



Response.Write XDoc.transformNode(XSLT)



%>

我花了几年的工作与范式。大约在那个时候,我经历了个人的转变,并跌近70斤下降到32下降至44“腰”,成为非常热爱健身。我开始了我自己的公司“就在身边”,并最终离开了公司,我是在为规模较小的公司提供翻译服务医院成为IT总监,并有西班牙语言的网上饮食计划。我再次能够打入我讲西班牙语的能力,因为翻译是从英语到西班牙语,反之亦然。我学到了很多关于各种方言之间的差别和有针对性的翻译的重要性。我也重写整个应用程序使用ASP与嵌入式SQL调用是硬编码的西班牙是一个完全由数据库驱动的,白标(品牌)的本地化应用程序(该公司正在,分支成其他语言,比如法语)。这是一个激动人心的时刻,在我的工作,而我用了微软堆栈,工具和服务器的成本,导致我对我自己的公司向开源社区。这时候,我学会了所有有关的LAMP堆栈的Linux操作系统,Apache HTTP服务器,MySQL数据库和PHP的发展。具有讽刺意味的​​是,这方面的经验后惹了我的第一次咨询活动,为微软工作,因为他们试图接触到开源社区,为他们拥抱的Silverlight之一......但是这是一个不同的故事。

2002 - PHP





<?php



$hello = 'Hello, World.';



echo "$hello";



?>

几年过去了,这些特定的平台上工作的时候,我有机会移动到另一个位置,建立一家新公司的软件部门。我是第三雇员在一个小的开始,提供无线热点一词成为流行之前。如果你曾经吃过一个帕尼罗或小鸡fil-A或在驯鹿咖啡抓起一杯咖啡,然后你使用的软件,我写了,或更近的版本,以推动热点的经验。当我加入公司的初始平台是用Java写上。这是一个语言,所以它是不是一个巨大的飞跃,我的C + +和微软堆栈技能结合起来,迅速把它捡起来,我做了相当多的“修修补补”。

2004 – Java





public class Hello {



public static void main(String[] args) {



System.out.println("Hello, World");



}



}

我没有什么反对Java作为一门语言,但特别有味道,我们使用微软的JVM正要搁置,和一个自定义的服务器,只是不想规模。我的平台迁移到。NET,这是令人惊讶地看到一个单一的IIS服务器处理更多的请求比一些专用的Java服务器。我说,“迁移”,但它真的是建立一个新的平台。我们看着J + +代码迁移到C#,但它只是不实用。幸运的是,C#是非常接近所以大多数的球队是能够轻松地过渡到Java,我们只是使用现有的系统,新系统上运行的Windows机器和移动从MySQL到SQL Server 2005中的“规格”。注意:类似“你好,世界”是在C#与Java相比。

2005 – C#





public class Hello



{



public static void Main()



{



System.Console.WriteLine("Hello, World!");



}



}

当时是什么原因使我们的公司如此成功的部分是一个“控制面板”,使我们能够管理所有的热点和接入点从一个中央位置。我们可以重新启动远程应用固件更新,并监视它们与心脏的跳动和商店的历史来诊断问题。这个软件很快就演变成为一个移动设备管理(MDM)平台的旗舰产品,为公司今天。他们更名的名字,出来的产品,但我们面临的挑战是提供一个跨浏览器兼容的HTML中的互动体验(之前的解决方案使用微软自定义的Java Applet)。我们成功地建设一个相当令人印象深刻的系统使用AJAX和HTML的复杂,丰富的用户界面,但我们的团队奋斗的时候,他们不得不跨越这么多的浏览器和平台测试。虽然我们需要保持这种热点的登录体验,在管理方面更灵活,所以我研究了一些替代方案。

当我发现Silverlight中,我很好奇,但决定驾驶它首先。我能站起来,我们在几个星期的监视仪表盘的POC,和每个人都喜欢它,所以我们决定全力以赴。我最好的猜测,我们的团队能够从概念到交付的代码快约4倍相比,JavaScript和HTML堆栈使用Silverlight。这是,而HTML5仍然是一个白日梦。在我离开之前,我们建立了颇有几分Silverlight功能。到那时,我们正在与苹果在MDM,他们当然不希望Silverlight的地方他们的软件,HTML5的放缓势头很猛,所以我知道公司过渡,但我却能够享受数年建设丰富的线的业务应用程序的语言,带来了一个通过XAML声明UI的力量尽可能多的浏览器和平台都愿意允许插件(我听到这些都不流行了)。

2008 – Silverlight (C# and XAML)





<UserControl x:Class="SilverlightApplication1.MainPage">



<Grid x:Name="LayoutRoot" Background="White">



<TextBlock x:Name="Greeting"></TextBlock>



</Grid>



</UserControl>




public partial class MainPage : UserControl



{



public MainPage()



{



InitializeComponent();



Loaded += MainPage_Loaded;



}







void MainPage_Loaded(object sender, RoutedEventArgs e)



{



Greeting.Text = "Hello, World.";



}



}

Silverlight的当然去像一个坏股票。它仍然是一个非常有用的,可行的技术,但一旦人们意识到微软不把它很多股票在抵达时,它已经死了(原谅双关语) - 没什么好说的,与它是否是正确的工具的时候,一切都与它是过时的看法。HTML5还做了一个精细的工作“一次编写,运行无处不在”和数百家企业鸠头先在他们意识到自己的错误之前(它是真正的“写一次,到处吸,然后写它再次为每一个目标设备”营销本身) 。

有关Silverlight的部分,我们爱生活,然而,在Windows 8.1中的XAML和C#栈。踢和笑声,这里是“你好,世界”凉快的孩子做什么,并使用模型 - 视图模型(MVVM)模式的一个版本。

2011 – WinRT / C#





public class ViewModel



{



public string Greeting



{



get



{



return "Hello, World";



}



}



}







<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">



<Grid.DataContext>



<local:ViewModel/>



</Grid.DataContext>



<TextBlock Text="{Binding Greeting}"/>



</Grid>

虽然Windows 8.1已经让我通过我的写作和侧面项目占用,它仍然是大多数公司新的东西,他们希望有一个基于Web的解决方案。这意味着,HTML和JavaScript,所以这就是我,我的大部分时间花在工作。这是正确的,曾经我以为我听错了,他们把我拉回去。认真看看我讨厌使用HTML和JavaScript的Web开发后,我决定必须有一个更好的办法。我们的团队聚在一起,看着潜在的方式,发现一个很酷的解决方案。最近,一种新的语言,发布了名为打字稿是JavaScript的一个超集。这不尝试改变的语法和任何有效的JavaScript也是有效的打字稿。然而,语言,提供了一些开发时的功能,如帮助形状API调用的接口,并提供了丰富的发现(没有出现在生成的代码),同时也给我们构造像类继承,强类型变量和静态修饰符所有的编译完全有效的,跨浏览器的JavaScript。

使用打字稿是一个容易的决定。即使是处于测试阶段,它产生的100%生产准备的JavaScript,因此如果我们发现它不能很好地工作,我们知道我们可以猛拉插件,只是向前迈进的JavaScript。事实证明了它是非常有用的 - 甚至是一些怀疑论者对球队的JavaScript较真的和憎恨任何企图“修改语言”同意,打字稿为我们提供了一个更高级别的控制,重构能力,并支持并行开发,并有加速我们有能力提供高质量的基于Web的代码。

2012 – TypeScript





class Greeter {



public static greeting: string = "Hello, World";



public setGreeting(element: HTMLElement): void {



element.innerText = Greeter.greeting;



}



}







var greeter: Greeter = new Greeter();



var div: HTMLElement = document.createElement("div");



greeter.setGreeting(div);



document.body.appendChild(div);

打字稿我们不是唯一的改变。我们也想删除一些我们周围设置了数据绑定对象的礼仪和仪式。我们使用的淘汰赛,这是一个伟大的框架,但它也需要更多的工作比我们想要的。有人对我们的团队调查了几个备选方案,并结算AngularJS。我是一个怀疑论者,在第一,但很快就意识到这是真的很喜欢XAML网页。它给我们的方式来保持UI的声明,而我们的当务之急逻辑隔离和解决的又一问题。我们的团队一直愉快地使用堆栈与打字稿和AngularJS的几个月,现在绝对喜欢它。我的工作一个模块WintellectNOW,因为我相信这是一个很大的事情。但是,如果30年来教我什么,它是这样的:今天在这里,明天走了。我不是一个C#开发人员,或者JavaScript开发人员,或一个AngularJS向导。不。我是一个编码器。一个程序员。纯净,朴素和简单。语言只是一种工具和我碰巧说他们中的许多。所以,“你好,世界”,我希望你享受的旅程......这里是最新的。

2013 – AngularJS





<div ng-app>



<div ng-init="greeting = 'Hello, World'">



{{greeting}}



</div>



</div>

http://http://www.zjjv.com///blogs/jlikness/30-years-of-hello-world

0 0