设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 IT综合资讯 查看内容

30年的Hello world

2013-7-15 11:22| 发布者: joejoe0332| 查看: 2345| 评论: 0|原作者: fbm,姜鹏飞,徐继开翻译|来自: oschina

摘要:   最近我在7月4日这一天所在的那周休假了。休假期间,我利用大把的时间对我时至今日的职业生涯进行了反思。意识到我现在写代码都写了快30年了,不免让我有些 许震惊。因此我决定,要利用这段美好的休闲时光,写篇 ...

  1996 – QuakeC


bprint("Hello World\n");


  此时我意识到了Internet真地要发展起来了。1993年我还在上大学时发现了这一点,但我非常沮丧,因为根本没有人真正明白我在说什么,但仅仅在几 年之后,每个人都在为了抢着进入Internet领域而乱作一团(有些公司,比如AOL和微软的MSN,都想打造属于每个公司自己的互联网。。。但最终都 无功而返,接入了我们现在所说的这个大的Internet)。我发现我在大型机上的工作马上就会过时,或者最好的情况下我只能成为一个藏在后面的某个角落 中,鼓捣“那些个老系统”的开发人员。我想接触这些新东西。


  后来我转到了一个在工作中使用这些新东西的部门 —— 用VB6(COM+)和ASP编写一个应用,把几个不同的系统连接起来,从而可以让所有供应商都能看到其中的数据。


  1998 – VB6 (COM)和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格式的。这样一来,我们的组件就能够和接收来自网站的消息一样,轻松地接收来自第三方系统发来的数据。这就是真正的 “web service”,我在真正的理解这个词是什么意思之前就干了这有的事。客户端的表单由JavaScript来解析并打包成XML,然后发回服务器, 因此从页面发回的数据同其它服务发过来的数据并无二致。服务也会将XML作为返回数据的格式。这样就能够把这些返回数据同一个UI模版(该模版名为 PXML,是Presentation XML的缩写)结合,然后用一个XSLT模版将其转换为可供显示用的格式。这样我们就能够在不改变底层代码的情况下对UI进行微调,有点象是个效率不太高 的XAML引擎。这还是在.NET出来之前我们干的活呢。


  JavaScript可是个折磨我们的东西,因为那时我们还要找出如何处理不同的浏览器的办法。是啊,一说到JavaScript和跨浏览器的兼容性,就 不得不说,这个相同的问题15年前就出现了,直到现在还依然存在。幸运的是,所有的浏览器在向用户弹出对话框时采用的方法还是一致的。


  1998 – JavaScript

alert('Hello, World.');


  很多时间都被我被花在了Microsoft XML DLLs上面 (如果你以前编写过那就会记得注册MSXML解析器)。MSXML3.DLL很快就成了我的朋友,下面是一个将XML通过XSLT转换为HTML的例子。、


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://www.w3.org/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磅,腰围从44英尺减少到32英尺,由于健康我充满了激情。我兼职开了一家自己的公司,甚至从当时的公司辞职,我在这家专为医院提供翻译服务和拥有一个在线的西班牙语节食程序小 公司担任IT理事。我能再次够提高我的西班牙语能力,因为翻译是从英语到西班牙语,反之亦然。我甚至将整个用ASP和内嵌了西班牙语硬编码的SQL语句的 程序重写。使其成为了完全数据驱动的、标白的(为了品牌)和本地化的(公司想把他弄成其他像法语之类的分支)。在微软公司的技术栈的那段时间,我还是相当 令人兴奋的。但由于工具和服务器的花费,让我在开自己公司的时候接触了开源社区。那时,为了开发我学了所有像LAMP栈..Linux系统,Apache 的Http服务器,MySQL数据库和PHP之类的技术。讽刺的是,由于这些经历,当微软试图为了让开源社区拥抱Sliverlight的时候,我成为了 其短期质询...但那又是另外一个故事了。


  2002 – PHP


<?php
 $hello = 'Hello, World.';
 echo "$hello";
?>


  在特定的平台工作了许多年后,我终于有机会进入到新公司的另一个软件开发岗位。我是一个当时还不出名的创业公司的第三个职员。如果你曾在Panera或 Chick-fil-A吃饭或在Caribou喝过咖啡,那你可能就使用过我参与过编写的,或为了无线热点体验而最近升级过的软件。当我加入这家公司的时 候,初始平台是用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。注意Java的"Hello,World"和C#是多么的接近


  2005 – C#


public class Hello
{
   public static void Main()
   {
      System.Console.WriteLine("Hello, World!");
   }
}


  我们的公司那时之所以非常成功,部分原因在于我们的“控制面板”能够让我们集中在一个地方就可以管理所有的热点和访问点。我们可以在远程对这些热点和访问 点进行重启、固件更新并用一心跳信号来对他们进行监控,同时还为诊断问题保存了历史信息。这个软件很快就发展成了一个移动设备管理(MDM,也即 Mobile Device Management的缩写)平台,并成为公司现在的旗舰产品。他们在发布产品时重新起了一个新的品牌名,但是由于我们的挑战而得到了一个能够跨平台的 HTML的交互性非常强的用户体验(先前的解决方案采用的是微软定制的Java Applet)。我们用AJAX以及HTML成功的构建了一个能够打动人的系统,但我们的团队不得不在如此多的浏览器和平台上进行测试,而我们的系统又是 个负责富UI系统,这对我们的是个很大的挑战。虽然为了提高热点登录用户体验我们还需要维护这个系统,但它在管理方面更加灵活了,所以我又对一些其它的提 到方案进行研究。


  当我发现Silverlight时,就对它着迷了,但我还是觉得先让我自己对它进行探索为好。我可以在我们监控面板的概念性产品前面站几个礼拜,发现每个 人都很喜欢它,所以决定大家全力投入对它进行开发。我最乐观的估计是,采用Silverlight之后,从产品的概念到发布我们团队所需要花的时间要比采 用JavaScript和HTML相关技术少4倍。那时,HTML5还是个空中楼阁。在我离开之前,我们的团队已经用Silverlight实现了很多的 功能。直到离开时我们一直都在同Apple在MDM方面进行合作,Apple当然不想让他们的软件同Silverlight有任何瓜葛,但是我还是享受了 多年用一种可以通过XAML得到跨浏览器和平台的声明式UI的强大功能的语言编写业务程序,只要我们允许使用插件就没问题了。(我听说这些技术现在再也不 流行了)。



酷毙
1

雷人

鲜花

鸡蛋

漂亮

刚表态过的朋友 (1 人)

  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部