梁实诚回复了这个人,并把自己的msn号发了过去,同时注意到这个人的头像是一张外国纸币,名字叫弗兰克,经过搜索这张纸币是苏联时代的。
翻开他的历史记录,全是在帮人答疑解惑。
很快对方就加了梁实诚为好友,没有过多寒暄,开门见山直逼主题。
【那段程序在哪搞到的?是你写的吗?或者说是你的朋友?】
见此人如此着急的提问,梁实诚随便编了一个理由。
【我从旧货市场捡到的,感觉很有意思,就都收集了下来,你对他们有了解吗?】
那人停顿了一下,像是在打字,
【事情是这样的,那段程序的风格很俄系,或者应该说是很苏系。
我以前见识过这种风格,不过在这个时代已经没有人会用了,还会写这种程序的人,应该都上了一些年纪了。而且他们要么是实验室的科研人员,要么是为军方服务的人。】
梁实诚明白可能找到一些线索了,于是立刻回复道:
【此话怎讲?】
过了一会儿,对方终于打完了字,并发送了过来,
【简单的说,苏联以前在电脑硬件层面始终和美国保持着巨大的差距,但是军用设备却要维持在和美国一样的水平上。
为了达到这一点,就只能在编程上下功夫了,于是他们另辟蹊径了一套编程逻辑,对于硬件的要求很低,但是对于编程者的智力要求极高。
你可以发现苏联的战斗机的火控系统的代码总是短小而精悍,这就是为了弥补硬件上的不足。
可是尽管硬件不如别人,最终的性能却没有完全落后。
这套体系唯一的缺点就是编程难度高,一般人很难学得会,最终因此被淘汰在历史的长河中。】
梁实诚刚看完这句,那人又继续补充道:
【在编程领域有这个一个规律,程度的功能,程序运行效率,编程难度。
这三个点只能保留两个。
若想程序功能强大,要么这个程序运行起来很慢,对电脑配置的要求很高,要么就编程就得用更难的方法。
现在的主流做法是,尽可能降低编程难度,又要保证程序的功能,于是只能靠电脑性能的飞升,来解决程序效率的问题。
而当年苏联的方法相反,在同样功能的情况下,靠更困难的编程方式降低对硬件性能的需求。】
对话进行到这里,两人之间似乎有了一丝信任感,flanke请求视频通话,梁实诚点下了同意,然后他看到画面中是一个穿着白大褂的白发老头,俨然一副学者模样。
随后他们继续交谈起一些专业问题。
这些道理梁实诚都懂,却很礼貌地装作一个新人的样子讨论起来,
他记得这个一个现象,同样的游戏画面,同样的电脑配置,可以因为程序员付出的优化,让帧数提升不少。
这就是现状,如今编程软件越来越容易学,无数人可以只学习一些模板后就上岗工作,所用的编程软件也越来越简单,库文件也越来越复杂,但对于电脑资源的性能要求也越来越高。
因为电脑的性能提升比人编程水平快多了,而高水平人才相对稀缺的资源,如何让普通人也能学会编程才是重点。
于是人们选择了用降低运行效率,换编程难度的降低。
尽管电脑的性能在以摩尔定律飞速提升,可是我们却没有感到电脑运行更快了,因为现在的软件更加消耗硬件。
结束了对这个话题的讨论后,梁实诚问出了他真正想要问的问题。
【我不知道我应该怎么称呼你,就叫你弗兰克教授吧。
教授,我现在找到了一堆历史文件全是关于这种特殊的编程代码的,但是我并没有他们的库文件,
我能否用什么办法,还原出他们的库文件,然后让这些代码可以重新被使用起来。】
画面中对方低下头打起了字,
【哦,很好,我支持你的想法,我当年就是学的这套体系,我会尽我所能帮助到你,如果能让世人再次看到苏联的一些研究成果,对我而言也是莫大的荣幸。
不过这需要一定的思维能力,以及一些劳动。
因为苏军的硬件水平也在缓慢提升,库文件在这个过程中不断发生了变化,我很了解这套模式,却也不知道是哪个时代的版本。】
打字的过程中,弗兰克教授竟时不时擦起了眼泪,并添加了一句,
【我当年有很多同伴选择了去邻国,也就是你的国家,这些或许就是他们带过去的吧,
我真后悔我当初的决定。】
梁实诚见状礼貌地安慰道:
【弗兰克教授,我姑姑情况也和你差不多,她从小学的外语是俄语,可是后来全民改学英语,她现在连操作计算机都是一个麻烦。】
接着老头努力保持快乐起来,
【呼呼,你竟然一直叫我教授,我已经有好几十年没有听到这样的称呼了。
我现在身在美国,并在某个着名的大学里扫厕所。
我的祖国解体前,我是一名科学家,后来生活所迫被特工带到了我现在居住的地方,一开始他们承诺给我在大学里提供工作,没想到和我的专业完全不相关。】
之后经过了一系列的打听,弗兰克教会了梁实诚很多知识,以及学习这些知识的途径,并最终还表示有问题随时可以找他。
从弗兰克那梁实诚还了解到了其他一些事情,其中有一个好消息,这种的编程手法,因为考虑到硬件性能的限制,所使用的库文件也比较简单,这也就意味着逆向工程反推库文件的工程量也会低一些。
实际难度低于梁实诚的预期,为了保密这个过程他打算一个人完成,而且这是一个非常需要费脑筋的过程,也不便于拆分出去,从一大堆信息中总结规律,十个人的效率未必会达到2倍。
接下来弗兰克给与了重要的帮助,同时梁实诚也在实践的过程中,发现了之前的200mb文件对于这个逆向工程而言并不够用,于是又拍摄提取了多得多的文件,一度达到了上百g。
弗兰克预测整个工程需要几年的时间,但他不知道一件事,梁实诚并非在地摊上捡到的这些程序文件。
因为万能编辑器是在拍摄某些固定动作后生成对于的程序文件,也就是说他之前就是知道这个程序会产生什么动作的。
这工作相当于破解一门古代语言,不仅要编一本字典还要搞清楚它的语法,首先获得大量用这种语言写成的资料是必要的,而梁实诚还能同时知道这些文字本身要表达的含义,这大大地加快了进程。
几个月的时间过去后,他初步完成了这份工作,并得到了一个在他自己看来能够满意运行这些程序的库文件,有了库文件,就可以在它的基础上得到想要的各种工具,就可以随便使用这些程序。
先找来一个玩具遥控汽车,然后用单片机重新改造了它的控制系统,并刷上固件,装上一个简易的摄像头。
设定好目的地,除了是否发动汽车以外,其他的控制全靠玩具汽车本身,在家里实验了一下效果不错,可以轻松绕开障碍物,验证工作完成,接下来这辆汽车就一直处于开动的状态,并成为了猫的好玩具。