早年在CSDN写的博客备份

——谨以怀念写Delphi,MFC及浏览器编程的青春岁月

Posted by eagleboost on June 15, 2019

CathyEagle

2004年初,彼时研究生尚未毕业,精力充沛,时间也有闲暇,就在csdn用CathyEagle的用户名开了个博客,写一些Delphi和MFC编程的心得。

从2004年4月到2006年底,前后一共写了57篇,除去非技术的11篇外,技术博客共计46篇,分为四类,有交叉,分别是:

分类 文章数 说明 新地址
Internet Explorer 有问有答 11 回答一些来自网友关于IE编程的提问 点这里
Internet Explorer 编程简述 16 原创系列文章分享IE编程心得 点这里
Internet Explorer 编程 31 包含所有与IE编程相关的文章 点这里
Windows 编程 10 分享不常见的Windows编程心得 点这里
杂谈 11 杂类。适时男篮世锦赛也写了几句  

所有文章我会一一重新排版转移到新博客,内容原则上不做修改。

接下来闲聊几句,以作小结。

大富翁

大学那会Object Pascal是我最喜欢的编程语言,Delphi顺理成章也就成为我主要的编程工具。本科刚毕业的时候一个人茕茕孑立无所事事,工作之余便混迹于一个叫大富翁的Delphi技术论坛。大富翁以网友提问给出分数,回答问题赚取积分为激励机制,大家还能顺便看看自己的积分全国排名。Borland靠Delphi 5.0虽然正值如日中天,却也离衰落不远了,而李维的《Borland传奇》还要等几年后才面世。

自从能访问互联网开始我便热衷于搜集和阅读别人的代码及编程资料,在大富翁更是没日没夜地回答各种问题,时间花的多,排名自然涨得很快,最高的时候排到过第28位。虽然什么也不是,不过在论坛上小有名气这样的虚名倒也让我暗自得意了一番。

研究谈不上,学习得最多的,是基于Internet Explorer的编程。自从IE进入4.0成熟期大获全胜后,其基于组件的开发模式就颇受开发者青睐(比现在火爆的Chrome Extensions早多了)。一方面浏览器核心作为COM组件方便开发者嵌入到自己的桌面应用中用来显示网页,另一方面Internet Explorer本身支持插件,开发者可以直接把代码嵌入进去执行,曾经臭名昭著的流氓软件3721“网络实名”就是个例子。然而三十年河东三十年河西,由于拥抱互联网和开源太晚,微软在浏览器上被Chrome打得丢盔弃甲一败涂地,曾经90%以上的市场占有率输得连底裤都不剩,咸鱼翻身的Edge最终也不得不放弃。类似的例子还有Windows Mobile,出现得太早,在移动网络还慢得像老牛的年代,什么也做不了,积累的有限经验大概都为后来的Android做了嫁衣。

浏览器

言归正传,当时在论坛上大家研究得最多的就是如何挖掘WebBrowser Control的核心功能,比如怎么把添加到收藏夹窗口打开啊等等,因为不开源嘛。勤能补拙,我捣鼓来捣鼓去,写出了一篇文章《TWebBrowser编程简述》,当时myrice.com开了给托管网站阿甘的家,就发表在上面。这篇文章解决了初学者在使用Delphi封装的浏览器控件编程时最常遇到的几个痛点,没想到流传甚广,在大富翁论坛俨然成了入门经典,被人转载不计其数,且言必称“你去阿甘的家看看就知道了”……

myrice.com早已不可考,《TWebBrowser编程简述》也已经搬到新博客上。

在Delphi的年代对基于IE浏览器的编程我起步并不晚——是的,我写第一个多窗口浏览器大概比MyIE,即后来著名的傲游浏览器Maxthon的前身,还要早——然而,套用现在的流行语,并没有什么卵用。受限于性格及诸多程序员与生俱来的宿命,注定一无所成。一来太过年轻,看不到市场也不懂得先下手为强。二来不懂得与人合作,跟论坛上的人讨论少竞争多,各自在暗地里较劲看谁先挖到别人不知道的宝贝。所以没能出什么产品,只把时间大量浪费在应该以后再做的事情上。看到别人写出的浏览器功能贫乏界面粗糙,心里想的却是等我研究好了做出来的东西要好得多。不妄自菲薄,我做出来的东西比平均水平高不少,然而一个人的力量太小,时间太少,还因为工作学习一拖再拖,结局可想而知。几年后有一次不知道怎么被陈明杰Maxthon创始人)找到,在MSN Messenger上表示希望我加入他的团队。现在回想起来如果走出那一步人生也许会不同,然而那时骄傲的我不置可否,这件事就再也没有提起过。

同道中人还有个远在德国的网友Stanley Xu,开始着手用Delphi认真写一个叫GoSurf的浏览器。他跟我聊得比较多,我好为人师也就有问必答,应该是帮了他一些忙。因为这个还把我列为GoSurf核心技术支持,却之不恭,受之倒也无愧。

平心而论GoSurf写得非常不错,不论界面还是交互逻辑都跟我的设计美学暗合。界面明快,简约不简单,强调用户体验,专业程度比MyIE高出不少,是先前说的等我研究好了做出来的东西要好得多的那种好,这也是我愿意无偿为他提供技术支持的原因之一。然而市场看重的并不是这些。处在当时环境,普通开发者靠体验争取一部分高冷用户可行,但是单靠体验要取胜只能是痴人说梦,毕竟宽带还在普及中,大部分用户刚刚解决温饱还没进化到追求体验的阶段。陈明杰有香港的资金支持迅速招兵买马,很快就在多窗口浏览器市场一枝独秀并打开了局面,其它的品牌比如搜狗浏览器都是后话不表。2006年微软开始在IE 7支持多窗口之后GoSurf也进入维护状态并逐渐淡出人们的视野。关于GoSurf网上能搜到的资料不多,只找到一篇对Stanley的采访,结束前他还提到我的名字。

C++

继续讲自己的故事。Delphi下的浏览器编程研究了不长不短的时间就回到学校为了研究生文凭继续打拼,再后来为了找工作用心把C++创始人Bjarne Stroustrup的大部头《The C++ Programming Language》(也称TCPL)中文版《C++程序设计语言》啃了一遍,转身走进了C++的世界。

时过境迁却痴心未改,既然Delphi已经没落,就用VC++重写浏览器吧,我对自己说。于是有了《Internet Explorer编程简述》系列原创文章,期间还在CodeProject.com发表了唯一一篇原创文章《Invoke Hidden Commands in Your WebBrowser》,后来不知怎的遗失了注册邮箱,没有验证码也就再也没法登录我的账号,尝试过一次联系技术支持没得到回应,就此作罢。唯一值得安慰的是还能看到留在账号里的照片,在学校正门荷花池边老婆给拍的,笑容灿烂,我那时还把自己归为Web Developer!

学习的过程中用MFC写过一次浏览器,部分实现了一些独特的想法,只是这个版本从未示人,那些点子也只落得个束之高阁的命运。

2006年因为IE 7多标签支持的推出CSDN采访过我,跟编辑在MSN上聊了挺久,采访发布的标题叫做《扎根IE开发拥有自己理想的程序员》,彼时雄心犹在,只是世事难料,终于还是放了自己和大家的鸽子,另找时间聊。

结束语

上研究生以后我上论坛的时间越来越少,2004到2005开始就不怎么上了。简单查了一下,大富翁大约在2010年左右关站,去年年中再次复活,我去把CathyEagle的账号注册了一下,还在审核中。一个叫Delphi论坛的站点似乎备份了部分老论坛的数据,搜索cathyeagle site:www.delphibbs.com的话Google啥也搜不到,搜索cathyeagle site:wedelphi.com倒是能出来几条结果,虽然排版全部丢失,看到自己以往的足迹也聊以自慰。好在有幸在Deiphi园地竟然找到昔年大富翁从1998到2010年CHM格式的全部离线资料,里面有我回答过的所有问题,离线资料加起来差不多1G,泪流满面的同时赶紧下载下来放到云端备份。

大概是不会再写Delphi还有浏览器了,CSDN的博客十多年没有更新,最近才把登录信息找了回来。既然在github安顿下来开了新博客,还是应该挤点时间把以前的过往整理归档一下。CSDN所有这些文章都在CathyEagle这个分类下,以便跟以后的文字一起成为一份完整的记录。

以上