Borland有一个梦,程序员的梦

 

Borland有一个梦,程序员的梦

本文以个人身份发表,不代表任何公司观点

天狼星

作为一个程序员,我在软件行业已经整整十个年头了。现在,我有幸在北京Borland工作,每天面对的是程序员赖以生存的工具软件,个中滋味,自然难以述说。

Borland其实是一家小公司,在当前IT领域遍地富翁的情形下,在微软、oraclesun等软件巨头身旁,Borland银行里那一亿美元的储备金,真的算不了什么。

但是我知道Borland有一个梦,一个程序员的梦。为了这个梦能变成现实,Borland的那些天才的程序员终结者们,总在夜以继日地耕耘着键盘,是的,总有一天,梦会成真,程序员们会为之狂悦。

每个公司都有自己的文化,就像每个国家都有自己的信念一样,Borland也有自己的底蕴。福勒先生(现任代总裁)说过,要把Borland建设成一个像瑞士一样的国家。哦,瑞士,这是个不大的国家,是的,Borland只是一个小公司;它以精致的钟表和工具而闻名遐迩,Borland曾用一个Delphi维持了公司八年;它拥有勤劳聪慧的民众,Borland拥有全球最有天分的一群程序员;它在各种艰巨的地形下建造了数不清的人工奇迹,Borland打造了一个又一个的极品软件;在瑞士旅游,你不用担心便利性的问题,用Borland软件,你无须关心繁琐的细节。最重要的是,瑞士完全中立,Borland没有平台。

是的,Borland的产品没有平台。这是西蒙先生(Borland高级副总裁)给程序员的承诺。这是Borland梦想的一部分,可以说已经基本实现。CORBA中间件产品VisiBroker屏蔽并连接了不同的平台。软件对象框架产品AppServer、软件对象管理产品AppCenterJava开发工具JBuilder都运行在JVM之上因而只要Java能到的地方,这些产品就能到。数据库产品Interbase已经做到了WindowsLinuxSolaris三类平台之上。年底前Delphi for Linux、明年上半年C++Builder for Linux将出炉(参照Kylix计划)。有什么理由不相信Borland能实现自己的承诺呢?

其实Borland所指的平台不只是操作系统平台,还包括语言平台,无论是PascalC++Java,你看到的IDE环境都会是同一个面孔,你使用的组件都是类似的架构。除开语言平台,还包括不同的软件对象体系标准。你会发现无论是使用CORBA,或是Java、或是DCOM、或是MIDAS,你的对象总能互相通信,你在IDE环境中时常会看不到具体标准的痕迹。对了,这就是程序员的梦。在程序员们逻辑的世界里,如何能容忍所有这些平台的束缚呢?我做不到,我一直试图打破一个又一个类似的壁垒,我一直就像在做恶梦,直到我发现Borland可能做到。Borland有同样的梦想。

想一想,为什么一个独立的软件,不能成为一个对象?自从我们发明了对象这个名词以来,似乎已经有太多的人在用这个招牌来吆喝自己的产品了。事实上他们都是对的,因为每一个独立的软件都是一个货真价实的对象。因为它们独立,所以它们满足对象的最基本条件:封装。至于继承,在新软件中使用旧的代码,是不是继承?还有多形,写一个类似的程序,把它和现在的软件放在一起组成一个组,分别实现不同的功能,是不是多形?对了,只有独立封装才是对象是与不是的标准。有自己的名字,有自己的数据,有自己的方法,为什么不是一个对象?是的,这都是对象。

在程序员们逻辑的世界里,这些对象,那都是活生生的生命啊。那都是他们的将士,时刻听从他们的指挥。可是那些讨厌的操作系统,那些数以万计的语言,那些为某些公司专用的标准,这些所谓的平台,他们扼杀了这些生灵。平台让对象们离开出生的家乡就不能生存,还让他们互相不能认识对方,不能用长勺喂饱别人。

还好软件世界里还有那么多真正的程序员存在,还好在关心对象命运的公司也不止一家。这些公司(至少有800多个吧),他们组成了一个组织叫对象管理组织(OMG),他们出了一个标准叫CORBACORBA认识所有这些对象,这些独立的软件。CORBA还让他们互相认识,请求对方为自己完成自己力不能及的事情。

是的,我们不再需要要求所有的对象都必须符合DCOM的二进制代码规范,在除Windows以外的世界,我们找不到任何合手的软件来生成这些代码块。我们也不需要所有的程序员来学习Java语言,我们可以用自己习惯的语言。任何旧的代码都是程序员自己带出来的兵,我们今天不需要去遗弃他们。

如果现在有人对我说他用UNIX上的Java程序和他的Windows下的C++程序一起集成了一个新的系统,我不会感到奇怪,因为BorlandVisiBrokerJBuilderC++Builder让你可以做到。如果有人对我说,他的EJB可以和CORBA对象互相认识并能友好交流,我不会感到奇怪,因为如果你在AppServer框架下开发EJB,那么它本身就能是一个CORBA对象。Java对象必须存活在某个小一点但完善一点的框架环境之下,但这并不意味着它们不能通过类似于Borland AppServer这样的框架环境来融入CORBA的大家庭之中。如果明年有人对我说他拿Windows下的Delphi代码(包括界面描述)到Linux下编译了一个Linux下的可执行程序,跑起来样子还跟Windows下的一模一样,我也不会奇怪,因为用Delphi for Linux,你可以做到。

只有DCOM对象现在还不能适应这个全世界大团结的美好环境。好在微软并不是那么万分的顽固。至少他们想把他们的新语言C#也弄一个IDL2C#规范出来,这样将来用C#也可以开发CORBA对象。甚至他们在DCOM之外,还能重视SOAP,因为SOAP容易融入CORBA之中,实际上他们已经在申请这么做。哦,SOAP是什么?其实不过是XML。用XML作什么?CORBA对象间传送的(一般来讲)是扁平的消息,结构化的消息最特殊情况下如一个对象则很难传送。用XML来包装一个对象,然后把XML文件整个传送出去,就可以传送对象了。其实用Java也可以传送对象,只不过双方必须都是Java程序罢了。鲍尔默先生(微软总裁)讲XML必将战胜Java,不是没有道理,而只是忽略了需要借助于CORBA之力的事实(当然凭借微软的实力,他可以不用现存的CORBA产品,但它必须有类似的产品,同时这个产品应该可以和CORBA互通,否则就失去了跨平台的意义)。

将来会有人跟我讲,他在服务器上实现了Java所写的MIDAS服务器程序,他用DataModule封装了所有的业务逻辑,用EJB的形式放在某个框架环境(EJB Server)之下,该DataModule可以在任何平台下用任何语言中的TClientDateSet之类的东西来访问。如果听到这些话,我不会感到奇怪,因为即便是从当前的技术基础来讲,Borland都有能力能做到这样。如果将来有人跟我讲,他的微软格式的软件对象可以跟CORBA对象互相认识并能紧密合作,那我可能有些高兴,但仍然不会奇怪,因为只要微软愿意,Borland可以做到。

程序员们逻辑的世界是一个没有国界的净土,这里不允许任何的霸权存在。如果你觉得这只是一个梦想,那么请允许Borland能和你一起做梦直到美梦成真。

 

作者简介:杨少雄,南京大学计算机系毕业,高级程序员,

北京Borland公司系统工程师

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

打赏
文章很值,打赏犒劳作者一下
相关推荐
<p> <span style="font-size:14px;color:#337FE5;">【为什么学爬虫?】</span> </p> <p> <span style="font-size:14px;">       1、爬虫入手容易,但是深入较难,如何写出高效率的爬虫,如何写出灵活性高可扩展的爬虫都是一项技术活。另外在爬虫过程中,经常容易遇到被反爬虫,比如字体反爬、IP识别、验证码等,如何层层攻克难点拿到想要的数据,这门课程,你都能学到!</span> </p> <p> <span style="font-size:14px;">       2、如果是作为一个其他行业的开发者,比如app开发,web开发,学习爬虫能让你加强对技术的认知,能够开发出更加安全的软件和网站</span> </p> <p> <br /> </p> <span style="font-size:14px;color:#337FE5;">【课程设计】</span> <p class="ql-long-10663260"> <span> </span> </p> <p class="ql-long-26664262" style="font-size:11pt;color:#494949;"> 一个完整的爬虫程序,无论大小,总体来说可以分成三个步骤,分别是: </p> <ol> <li class="" style="font-size:11pt;color:#494949;"> 网络请求:模拟浏览器的行为从网上抓取数据。 </li> <li class="" style="font-size:11pt;color:#494949;"> 数据解析:将请求下来的数据进行过滤,提取我们想要的数据。 </li> <li class="" style="font-size:11pt;color:#494949;"> 数据存储:将提取到的数据存储到硬盘或者内存中。比如用mysql数据库或者redis等。 </li> </ol> <p class="ql-long-26664262" style="font-size:11pt;color:#494949;"> 那么本课程也是按照这几个步骤循序渐进的进行讲解,带领学生完整的掌握每个步骤的技术。另外,因为爬虫的多样性,在爬取的过程中可能会发生被反爬、效率低下等。因此我们又增加了两个章节用来提高爬虫程序的灵活性,分别是: </p> <ol> <li class="" style="font-size:11pt;color:#494949;"> 爬虫进阶:包括IP代理,多线程爬虫,图形验证码识别、JS加密解密、动态网页爬虫、字体反爬识别等。 </li> <li class="" style="font-size:11pt;color:#494949;"> Scrapy和分布式爬虫:Scrapy框架、Scrapy-redis组件、分布式爬虫等。 </li> </ol> <p class="ql-long-26664262" style="font-size:11pt;color:#494949;"> 通过爬虫进阶的知识点我们能应付大量的反爬网站,而Scrapy框架作为一个专业的爬虫框架,使用他可以快速提高我们编写爬虫程序的效率和速度。另外如果一台机器不能满足你的需求,我们可以用分布式爬虫让多台机器帮助你快速爬取数据。 </p> <p style="font-size:11pt;color:#494949;">   </p> <p class="ql-long-26664262" style="font-size:11pt;color:#494949;"> 从基础爬虫到商业化应用爬虫,本套课程满足您的所有需求! </p> <p class="ql-long-26664262" style="font-size:11pt;color:#494949;"> <br /> </p> <p> <br /> </p> <p> <span style="font-size:14px;background-color:#FFFFFF;color:#337FE5;">【课程服务】</span> </p> <p> <span style="font-size:14px;">专属付费社群+定期答疑</span> </p> <p> <br /> </p> <p class="ql-long-24357476"> <span style="font-size:16px;"><br /> </span> </p> <p> <br /> </p> <p class="ql-long-24357476"> <span style="font-size:16px;"></span> </p>
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页

打赏

jiangtao

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值