高手们, 你们都在哪?----使用BCB编程遇到问题之后的感想

高手们, 你们都在哪?----使用BCB编程遇到问题之后的感想

这不是一篇非技术文章.

我不知道我算不算是cppblog上实力最差的家伙, 但是在cppblog或者cnblogs上看文章, 我确实经常产生这样的想法. 这里有人可以从脚本引擎到远程调用框架一路"发明"下来, 大有再造一个.NET的气势; 还有人能自己写出复杂的3D动画然后自己渲染出来, 做出来的效果我看跟我在网吧见过的网游也差不许多(如果不是这样, 那么抱歉, 我从来没学会过玩任何一种游戏, 包括扑克牌); 更有甚者以做算法题为乐, 可能他就是我高中的时候听说的那些搞电脑竞赛保送了的人吧......好吧, 我也搞竞赛来着, 不过不是电脑竞赛.

这些我都做不来.

我之所以能干写程序这行, 主要是因为一年半以前我被我的导师发配到现在公司帮忙, 在那里我花了大概两个月的时间看了<c++ primer>70%左右. 是的我没有读完, 在我读完之前负责带我的一个同事让我用C++ Builder 6写一个计算器, 别误会, 不是那种带parser的计算器, 就是一个窗口上有几个按钮的那种. 我写出来了, 但是写的并不轻松, 我得先学会怎么装IDE(是的你猜对了我在看<c++ primer>期间一行代码都没编译过), 装控件包, 装插件, 建工程, 配置等等. 然后我花了一些时间搞明白什么是C++ Builder, 怎么拖控件, 怎么设置控件属性. 然后还要在每个控件双击产生的函数体里写很多if/else/switch这些对我来说并不算熟悉的语句, 而在此之前, 我连注册表都没打开过. 说实话搞定这些没有给我一点成就感----我是个讨厌自学讨厌到深恶痛绝的人...但是我考试蛮厉害的:)

然后他们就开始让我跟他们一起写软件!!!

我当时并没有意识到这是个极其可怕的事实, 但是现在我经常会做恶梦梦到这个----这家公司真NB.

我啰嗦这么多就是为了让你能清楚的想象到----我的同事(我还在这家公司)今天来问我问题----这是一个什么情景.

OK, 我们来说点和程序有关的, 他来问我的是这么个问题: 我所在的公司同时维护着三四套cs模式的软件, 都是BCB写的, 日常的主要工作就是系统集成和定制开发. 现在我可爱的同事负责的项目中客户要求有把一个渲染视频的子窗体(TVideoPanel)全屏显示的功能, 就像暴风影音那样. 我这同事把TVideoPanel的Parent设成NULL, 然后调整尺寸. 结果发现视频不显示了, 调试了很多遍都是这样. 然后他叫了几个同事包括我过去帮他看看, 有人说是VCL的bug, 有人说是引用的动态库的bug, 还有人说DirectDraw的bug. 反正普遍反映早就发现过这个问题, 都没解决. 中午吃饭以后我对此有点好奇, 就拿出自己做得一个播放库来简单写了一个带全屏功能的demo, 发现确实不行, 全屏以后视频就不显示了. 到播放库里单步了一下发现问题所在了: 全屏以后, ::IsWindow(hWnd)返回错误, 也就是说句柄已经失效了. 这就很明显了----VCL把窗口关了. 在VCL的delphi源码里查找了一下, 确认是这个原因, 你每次改变控件Parent属性的时候VCL都会把相应的窗体关掉再在新的父窗体上家里一个. 于是乎DDraw的表面也好, VFW的HDC也好自然都不管用了.

到了下午我跟我同事说你用API操作吧别用VCL的属性了. 试了一下, OK. 然后大家又凑过来感慨了一番.

现在这是一幅名副其实的技术文章了.

这样的事情在我身边, 或者说在千千万万个我所在的这样的公司(所谓"这样"的公司是指没有对内部用编程工具了解的比较深刻的员工更妄论socket/DB/编译器/算法/行业知识...的公司)里每天都在发生着. 但是它不会在blog上发生, 这里只有高手和中手, 各自发布着自己的成果或者讨论着比较深刻的编程问题. 你们的文章我都会看, 也确实能学到不少东西(比如我所有关于设计模式的只是都是在blog上看到的, 后来我买了那本经典的<设计模式>但我看不懂, 我又借了一本C#版的<大话设计模式>, 仍然看不懂...), 但是看得多了我就觉得很疑惑: 高手们, 你们都在哪儿? 我怎么在现实中就没见过你们呢? 那些精通3D的人, 那些深谙算法的人, 那些读过STL/BOOST/ACE/Qt...源码的人, 他们都做着什么样的工作? 我虽然是个边缘的程序员, 但我的环境也算不上边缘, 我公司边上有一堆外包企业, 我还见过sisco的人, NI的人, TI的人, moto的人, simens的人, Philips的人, MileStone的人, Varint的人, 华为的人, 中兴的人, h3c的人, 南瑞的人...这些都是做软件的人. 但是我没见过网上那些英明神武的人, 从来没见过.

所以我不得不惭愧的承认, 网络上给了我一个虚幻的程序员世界. 是的, 尽管这里有一些妙趣横生的东西, 但还是要回到现实. VCL控件为什么不能随便设置Parent才是现实.

不过我还是要感谢网络, 至少它让我知道高手是个什么样子, 什么样的东西写出来是牛B的, 什么样的东西写出来是baby talk. 并且它给我一种冲动, 一种"发明轮子"的冲动, 它对我说: 看, 那里分明有乐趣在闪光.

你可能感兴趣的:(高手们, 你们都在哪?----使用BCB编程遇到问题之后的感想)