Basic : 一个老兵的自述

 

亲身经历过三大战役的老兵都有哪些故事?...



我是在咖啡厅里见到老兵Basic的, 他坐在靠近窗户的一个沙发上, 冬日午后的阳光透过玻璃洒在他的身上,让他显的温暖而又沧桑。

面对着这样一位身经百战,亲身参与了计算机三大战役的老兵, 我拿着录音笔,几乎不知道该怎么问起。

1. 大机时代

"你知道我的全名是什么吗? " 老兵反而挑起了话题。

"Beginners' All-purpose Symbolic Instruction Code  , 初学者通用符号指令代码“  , 我约老兵采访之前还是做了不少功课的。

"是啊, 我的出现本身就是为了抢占初学者市场, 尤其是校园学生, 让他们能更容易的使用计算机  , 我是60年代出生的,那个时候我们的战场主要是大型机和小型机, PC(个人电脑) 根本没有出现。”

老兵一打开话匣子就开始滔滔不绝了:

“说战场其实并不合适,因为那个时候刚刚开始高级语言时代, 还有人用机器语言和汇编来编程序, 能够进入这个战场的计算机语言非常少, 最著名可能就是Fortran 了, 我和它打交道不多,只知道IBM发明了他。但是他主要想占领数值, 科学和工程领域 , 非常强大, 据说矩阵就是他内置的数据类型, 能直接进行矩阵运算, 这太专业了, 不适合初学者。 ”

“奥对了, 还有LISP, 大概是1960年出生, 和我的年龄差不多, 它主要忙于占领人工智能领域, 和我没什么来往, 更重要的是, 他是基于函数式而不是像我和Fortran 是基于命令式的, 很多人第一次接触函数式编程都觉得痛苦不堪,痛不欲生, 陡峭的学习曲线直接导致能掌握它的人不多, 虽然很多超级黑客都推荐LISP, 说他无比灵活, 无比强大,  Paul甚至说LISP是百年之后能幸存的编程语言, 但我一直不看好他, 你看计算机的三大战役他几乎没参与, 一直是旁观者, 不过也好, 守住自己的一亩三分地,过着老婆孩子热炕头的生活也不错。 ”

“再说了, 在大型机/小型机时代的战场, 能召唤我们这些计算机语言出来战斗的程序员凤毛麟角,比大熊猫还稀罕,所以就打不起来,别说战争了, 连斗殴都很少。   IBM甚至宣称, 全世界只需要5台大型机就够了, 当然后来被啪啪打脸了”

2. 桌面之战

“那什么时候战争开始的呢” 我问老兵Basic。

“应该是微机时代, 对我来说,就是比尔盖茨来找我的那一刻” 老兵陷入了回忆  “当时《大众电子》杂志介绍了一个非常简陋的计算机牛郎星(Altair),第一版本用的Intel 8088处理器, 只有4k内存, 没有键盘,没有显示器, 靠拨动面板上的开关来输入, 靠面板上的几个小灯泡忽明忽暗的来显示结果, 后来才可以通过打印机来输出。   但是就是这么个东西, 激发了无数电脑粉丝的热情 ,其中就包括比尔盖茨和乔布斯  。”

"比尔盖茨来找我说:‘哥们,个人电脑时代要开始了, 我们来建立一个帝国吧, 我要让每个家庭都有一个电脑, 每个电脑都运行着我们的软件, 那就是你  Basic ’   ,  我被说的热血沸腾, 毫不犹豫的答应了他, 钻进了这憋屈的,这有4K内存的所谓计算机, 等待着程序员的召唤。"

“事实证明盖茨确实是微机时代最伟大的统帅, 他不但通过Altair 上的Basic解释器赚了第一桶金, 还搞掂了IBM, 把买来了操作系统MS-DOS 装到了当时极为轰动的IBM 兼容机上,  当然我是不会缺席的, 我被内置到了这个系统的ROM中(可见我当时的地位有多么高贵)走进了千家万户, 通过这种办法, 我在计算机的第一场战役也就是‘桌面之战’中占据了先机。”

“后来盖茨还搞出了Quick Basic,  这时候我已经不仅仅是一门语言了, 而是一个集编辑,调试,运行于一体的IDE(集成开发环境), Quick Basic 一经推出就获得了巨大成功, 几乎是横扫千军如卷席。 ”

“那你们没有遇到对手吗?” 我问他

“有啊, 比如C 语言, C++,  但是我们专注的领域不一样, 他们是系统开发, 我是应用开发,和平相处,  更何况我们后来在微软还成了好兄弟。”

“真正的对手在1971年就出现了, 只不过一直在积蓄力量,等待爆发的一刻, 他的名字叫Pascal, 出生世家, 根红苗正, 他刚开始的时候也是用于教学, 但是人家提出了一个重要的概念:结构化编程,在程序设计中引起了一场革命,成为程序开发的标准方法,尤其是在后来的软件工程中获得了广泛的应用。”

“80年代末,命令行开始没落, 图形界面(GUI)程序开始兴起, 可是对程序员来说, 这和DOS时代非常不同, 尤其是需要花费巨大的精力在界面编程上, 为了解决这个问题,盖茨又一次想到了我, 他请了一个牛人阿兰·库珀设计了一个叫Visual Basic 的东西, 设计界面变的异常简单, 拖拖拽拽,把各种控件放到一个表单上即可,  对于业务逻辑的编程当然是用我Basic ,简单易学。  Visual Basic 是个革命性的产品, 开启了一个时代:可视化编程的时代  ”

“当然我也进化了, 添加了不少面向对象的特性, 我和我的兄弟们像Visual Foxpro , Visual C++ 组成了Visual  Studio家族, 坚决把可视化编程进行到底。  那真是个美好的时代, 我们在个人电脑上攻城拔寨, 罕遇敌手, 微软帝国达到了顶峰。 ”

“那Pascal 在干嘛?” 我想起了这个结构化编程的发起者

“Pascal当然没闲着, 他们也有个牛人叫Anders (参见《聊一聊哪些神一样的程序员》), 搞了一个Turbo Pascal ,  编译速度飞快, 在80年代可是卖了100多万份Copy啊。  他们看到Visual Basic 以后, 也决定搞一套,先是把Pascal 升级为Object Pascal , 然后搞了一个类似Visual Basic 的东西, 叫Delphi。 ”

“和VC相比,Delphi更简单、更易于掌握,而在功能上却丝毫不逊色;和VB相比,Delphi则功能更强大、更实用。可以说Delphi同时兼备了VC功能强大和VB简单易学的特点。  外界戏称Delphi为 VB杀手, 获得了很多程序员的喜爱, 很多著名的程序都是用Delphi开发的, 像skype, foxmail,  对了foxmail 的作者张小龙不是去做微信了嘛 ”

"Delphi和Visual Basic 的战役持续了数年, 大家各有胜负, 最后可以说打了一个平手, 最后我们共同统治了桌面开发的领域, 战争很快就结束了。 "

“为什么没有继续打下去啊?” 我有些好奇的问

“历史的车轮你是无法阻挡的, 我在和Delphi在桌面战场上打的昏天黑地, 死去活来的时候,  我们都没有料到, 互联网时代来临了 ! 一个叫Java 的人横空出世,四处出击, 也想建立一个帝国!”

参见《Java : 一个帝国的诞生》

3.Web之战

“Java 虽然火爆, 但在桌面战场上完全没有战斗力, 我和Delphi没费什么劲就把它彻底了赶下了台, 现在他只能在银行, 还有一些ERP领域苟延残喘。 召唤Java来做桌面开发的程序员极少“

“ 可是他在Web领域确实不可小觑,发展极为迅速, 他们不仅占领了服务器端, 还在浏览器中搞了一个Javascript(参见《Javascript : 一个屌丝的逆袭》) , 试图把浏览器端也搞定, 盖茨这下着急了, 赶紧让我出马, 可是我一直在桌面开发, 对Web 非常不熟啊, 没办法, 只好临时抱佛脚把我改造成了VBscript ”

"VBScript 可以在浏览器(其实只是微软的IE)中运行, 试图打败Javascript ,   微软那帮人昏了头, 竟然还搞了个JS Script , 注意不是javascript啊,  让程序员都摸不着头脑。"

“这还不够, 他们还让我在服务器端运行, 搞了ASP出来, 和Java的jsp/servlet 竞争,  用ASP写出的代码混乱不堪, 和PHP差不多, 怎么能和Java 的框架相比?”

“更可怕的是Java这个对手和之前的都不一样,他不是一个人在战斗 !  围绕着他构成了一个庞大的财团,兵马粮草源源不断的供给, 尤其在IBM, HP, Oracle这些巨头和开源社区的支持下, 产生了无数的产品,框架,工具, 确实够我们喝一壶的! “

“ 溃败是预料之中的,盖茨气急败坏, 发誓要搞定Java,  他把Delphi的 天才Anders也挖了过来,发明了C#   搞了个.NET出来, 我也光荣的升级为Visual Basic.NET 了。   但这已经不是盖茨的时代, 不是微机时代了 , 现在.NET虽然占据了一些Web市场, 但和Java 相比还是远远不够, 尤其是在企业级市场。”

“那Web之战就这么结束了? 你们就这么甘心失败吗?”  我问老兵。

“这场战争还一直在进行中, Java 占有优势, .NET 不温不火,   努力反扑,还有Ruby on rails, Python,   PHP 他们很受一些程序员的欢迎。 只是世事难料, 现在战场又要转移了。”

4. 移动互联网之战

“是手机端吗? ”  我小心翼翼的问, 我知道微软的手机做的很差, 市场占有率是个位数。

“对,就是移动互联网, 我和C#这个战场上表现简直惨不忍睹, 被Object-c和Java 打丢盔弃甲。 其实这也不能怪我们,主要是Window Phone太差劲。”

“为什么Object-C 和Java 会这么火爆呢?”

“这其实就是大势啊,  乔布斯当你被苹果赶出去,创办了公司NeXT ,用的就是Object-c 这门很小众的语言, 后来重回苹果, 重新发明了手机, 很自然还是要用Object-C啊,  就像当年盖茨选择了我, 把我带到微机上;   而google呢,考虑到java 的流行,程序员多,门槛低, 所以在性能和门槛之间做了个平衡, 用了Java , 现在iOS和Android 占据了绝大多数手机, 我们的Windows Phone 用户少的可怜, 召唤我做开发的程序员更是少的可怜, 我自己都想放弃了。”

“没关系的,  IT技术发展这么快,没有人是常胜将军, 毕竟你还占据着桌面开发领域,   对了,你在.NET中生活的怎么样?” 我有点担心这位老兵

“别提了,我和Visual C++都进行了改造, 运行在一个叫做 Common Language Runtime(公共语言运行时)里边, 这里边还有J#,F#, 甚至Python和Ruby 等动态语言都要进来了 ,当然C#是亲儿子, 是这个CLR的一等公民, 我已经退居二线了 ,估计很快要退休了。”

“为什么要退休, 在CLR里生活不也很好吗?”

“唉,你想想, 也就是老程序员会继续召唤我来写程序, 对于那些新手, 都跑去学C#了, 谁还管我Visual Basic 啊, 我确实已经老了。”

我看着这位身经百战的老兵, 不禁有些可怜, 我想起来那句著名的话:  “老兵不死,只是凋零” ,形容这位老兵Basic 太合适了。

相关阅读:

Java :一个帝国的诞生

Javascript :  一个屌丝的逆袭

聊一聊哪些神一样的程序员

热门文章:

我是一个线程

我是一个Java class

Javascript: 一个屌丝的逆袭

CPU阿甘

小王的架构师之路

程序员在工作中必备的能力

TCP/IP 之 大明王朝的邮差

IE为什么把Chrome和火狐打伤了

假如我是计算机系老师

假如时光倒流,我会这么学Java

学会编程,而不是学会Java

15年编程生涯,资深架构师总结的7条经验

公共号:码农翻身

“码农翻身”公众号由工作15年的前IBM架构师创建,分享编程和职场的经验教训。


    关注 码农翻身


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册