首页/文章/ 详情

如果中国重新开发像MATLAB这样的软件大概需要多久?

1年前浏览1603

如果中国重新开发像MATLAB这样的软件大概需要多久?

作者:谢凌曦 | 清华大学 工学博士

来源:知乎 - 问题:如果中国重新开发像MATLAB、solidworks这样的软件大概需要多久?

链接:zhihu.com/question/400835896/answer/1528269456

著作权归作者所有,二次转载请联系作者获得授权

看到这个问题,不禁回想起当年开发maTHmU项目的热血岁月。

 

当时,我们几个大三的学生,想要搞出一个能比拟Mathematica的东西来。于是就从12月搞到4月,也总算是搞出了一个雏形来。不过,除了当时拿了几个奖以外,现在能够残留下的东西,也就是一些模糊的记忆了。

 

我当时负责前端开发,就是把复杂的数学公式展现在屏幕上,并且使得用户的输入交互尽可能简单。我们当时翻阅了无数资料,甚至包括Mathematica设计师早年的博士论文,东拼西凑地搞出了一个能用的系统。另外几个负责后端部分的同学就更加辛苦,要搞定符号计算(例如不定积分)、大规模数字计算(比如当时的一个目标就是计算1000000的阶乘能够超过Mathematica)等各种我们之前完全没接触过的东西,最后竟然还写了一本书。



搞了半年,写了无数文档,最后也参加了当年的挑战杯,有幸拿到校级、市级和国家级的三项特等奖,还被作为创新典型进行了宣传。然而我们自己心里清楚,我们完成的东西,用冰山一角来形容,都有点夸大其词了。

 

就拿数学后端来说,要支撑Mathematica的逆天计算功能,至少需要几千个相对独立的算法。每个算法,都随时可能有更新的版本出现,需要及时更新。没有一个超大团队,或者一个健康的生态,根本不可能做到这些。至于后端,Mathematica的优美设计更是让我们震撼,几乎每个元素都能用某种box表示,不仅可以显示数学公式,还可以进行复杂的绘图和交互。按照我理解的工程效率,没有上百人的团队是不可能开发出如此强大的功能。

 

回到问题。开发这种软件,需要的是长期的积累和持续性的投入。然而,由于市场已经被完全占领,这些投入在早期肯定是无法看到任何回报的。即使考虑到后发优势,在下决心投入的情况下,没有5年不可能达到一个能用的标准,没有10年不可能建立起健康的生态。

 

所以要先明确两个因素:决心、钱,然后才能讨论时间的问题。

 

我有时会看到网上对我们所做工作的评论。我比较喜欢一句“不切实际的幻想”,当然评论者都是带着温暖的心态说着这句话,并且默默支持着我们。当年几个大三的学生,现在也都走上工作岗位了,据我所知,并没有人的工作和这个项目有密切的关系。我们确实抱着不切实际的幻想,亲身体会了开发大型系统的艰辛。这段经历,对我而言,是人生中宝贵的财富。

 

我们之所以最后放弃了开发,当然是因为各种客观条件的影响。大家都要读博,而且各自的研究方向跟这个项目没有任何关系——坦率地说,如果当时有相关的方向,我应该会毫不犹豫地去选。同时,我也会乐观地看待这件事:我们不过是几个普通的怀揣梦想的大学生。下一次有人开发这样的系统,他们肯定会站在更高的平台上,走得比我们更远。




10月20日晚更新 

没想到这个回答会有这么多赞。看着大家的评论,我也回忆起不少十几年前的往事。我决定趁着还没忘记,把它们记录下来,也算是对这个问题的补充回答。

 

虽然是初代目的maTHmU成员之一,但我和其他几个主创(写书的几位大神)起初并不认识。当时我从数学系转到计算机系,但是计算机系没床位了,我就继续住在数学系的楼里。大约是2008年12月,他们几个已经完成了计算机代数系统的核心架构设计,并且实现了几个算法(包括符号微积分和超大整数阶乘),但一直没法实现图形界面。于是李超就在宿舍楼里贴了些A4纸黑白打印的启事,想找一个懂图形界面的同学,把项目往前推一步。我当时刚学过Java,算是对这差事比较感兴趣,就发邮件给李超(其实我们宿舍在同一层,只有30米远),表明要加入。

 

入坑邮件

 

话说当时这个招人的广告也贴到了计算机系的宿舍楼,可没什么人关注,估计大家是不太相信几个数学系的同学能搞定这么复杂的系统吧。倒是来了两个大一的小朋友,分别来自计算机系和电子系,战斗力爆棚。我猜李超大概等了一圈,没有更合适的人,就接受了我的申请。总之,阴差阳错地,我就成了图形界面的负责人。我们七个人(四个出书大神+我+两个大一小朋友)在李超宿舍的中厅,留下了一张珍贵的合影。


左起:周梦宇、我、崔恒纲、李超、张翔、阮威、张龙;我当时已经很久没剪过头发了,形象略差

 

开始的两个月,我这边的进展很慢。作为刚刚学会Java的同学,要实现精细的数学公式排版并且支持各种键盘操作,工作量远远超出了我的想象。记得当时反复翻看D.E. Knuth写的TeXbook,还找到了Mathematica图形界面设计师的博士论文,希望从中找一些灵感。寒假的时候,李超直接就没回家,一个人憋在集中住宿的宿舍里赶他们的著作和核心代码。我大概在寒假过半的时候,才摸索出些许门道,开学前两天总算实现了一个非常初步的版本(大概就是能用键盘打出上下标和分数线的水平)。到了学校,心想李超要骂我,没想到他看了我的demo以后觉得挺不错,我心里的石头才落了地。

 

随后就是完善各种功能,方便编辑操作,加上修正各种bug。大三下的前半个学期,我翘掉了除体育外的所有课,每天从早到晚都在搞这个东西,不熄灯的时候经常搞到两三点。当时程序的前端和后端通信是一个很大的问题,最后通过向一个动态链接库发送和接收指令解决了。不过解决过程并不顺利,我和负责后端的张翔进行了大量的协同调试。某天晚上熄灯以后,我把前端的代码同步给李超,他在自己快要没电的笔记本上打开程序,输入9!然后敲了回车,界面下方“神奇”地显示出362880这个正确答案,整个宿舍都沸腾了——这也成为我对maTHmU最深刻的记忆之一。

 

4月以后就比较顺利了。我们拿着第一个能用的版本参加了学校的挑战杯,拿到了特等奖第一名。我记得在答辩现场,评委老师几乎没问技术问题,只是反复确认:你们真的是数学系的学生吗?要知道,即使抛开图形界面,后台的代码量也是超乎想象的(准确地说,后端代码量比前端大得多)。校赛结束以后,我一边补课,一边重构前端的代码,系统的鲁棒性大大增强,我们终于可以让观众来操作这个系统了。6月,我们拿到了北京市挑战杯的特等奖。


校级获奖证书

 

到了大四上学期,李超忙着申请出国,参加全国挑战杯的任务就更多地由张翔和我来完成。全国赛的会场设在北航,我俩骑着车,不知道来回跑了多少次,才完成了展台的布置。当时张翔和我都确定在本校直博,还因为去实验室不够勤快,被各自的实验室警告了。好在最后拿下全国赛特等奖,算是给maTHmU画下了比较圆满的句号。

 

当年我们确实得到了不少荣誉。李超拿下了清华本科特奖,maTHmU应该是个很大的加分项。他还作为学生创新代表见到了来学校视察的温总理。张翔和我也捧着全国赛的奖杯,在学校2009-2010跨年晚会登台领奖。虽然学校的宣传不可避免地夸大了我们的工作(比如超越Mathematica),但就像我说的那样,我们的真实产出连Mathematica的冰山一角都比不上。项目能走到这一步已经非常不容易,如果不是李超出色的领导力和个人魅力,团队根本坚持不下来。要想让项目有质的飞跃,就必须商业化不可——如此浅显不过的道理,我当年就死活想不通,甚至经管学院的同学来找我们谈合作,我都一直持反对态度,生怕自己的孩子被人夺走似的。相比之下,张翔就比较开放,所以随后带着这个项目走完创业挑战杯的也是他。顺便说一下,其实maTHmU总共拿了6个特等奖,包括商业挑战杯的校级、市级和国家级奖项,不过后面就跟我没什么关系了。

 

研发方面,maTHmU作为一个学生创新研究课题,持续了挺长时间。我还招了一些感兴趣的学弟,煞有介事地教他们设计排版系统,还布置作业。也许缺乏了些热血,后面的进展似乎没有初代那么快了。

 

再后来,初代的主创们就各奔前程了


以下描述大多是网上能够查阅到的信息,侵删

  • 李超去了Harvard攻读纯数学的博士学位。临行前,他说他估计会消失5年,潜心搞学问。我读博四的时候,他回国跟我们见了一面,再往后就没怎么联系了。他现在在Columbia数学系任教。

  • 张翔在交叉研究院读博,做量子计算。由于还在一个学校(其实实验室就在一个楼),我也跟他时常能见面聊聊天。和性格沉稳的李超不同,张翔是个非常爱折腾的人,时常有些神奇的想法,有时甚至让人啼笑皆非。他现在在人大物理系任教。

  • 阮威和张龙,与我交集比较少。阮威在本校拿到博士学位后,去了Berkeley的物理系,搞的好像是超导相关的研究(反正我也看不懂)。张龙也在本校拿到了博士学位,现在在国科大任教,搞的也是一个我看不懂的物理方向(感谢 @xdra 在评论区的提醒)。

  • 恒纲和周梦宇,是低我们两级的小朋友。他们跟我一样,都进了机器学习的坑,拿到学位以后,现在分别在Uber和Microsoft搞研发。周梦宇还领导了后续maTHmU小组挺长时间,只不过后面的成员,我也不认识了。

 

回头看看,好像我们都走上了科研道路,不知道是巧合,还是maTHmU项目对我们产生了神奇的影响。虽然只做了些很不成熟的东西,但我们几乎可以断言,仅凭一腔热血来做大规模系统,或许我们的项目就算是最好的结果了。没有成熟的商业模式或者健康的生态,项目不可能长期走下去。

 

其实前前后后加入maTHmU的成员有很多,我认识的就不下30人。这里没法一一提起,但是他们都为这个项目做出了自己的贡献。

 

我要感谢这个问题,让我打开记忆的匣子,唤醒了许多尘封的往事。看着12年前的邮件记录,有种恍如隔世的感觉。我也模糊地想起团队成员间的争吵(李超和张翔真的很容易吵,他们性格差太多了,但又微妙地互补——少了他们中的任何一个,这个项目可能早就黄了),当然还有各种有趣的花絮。当然,穿梭过十载岁月,最能直击我心灵的回忆,还是我们算出9!=362880的那个瞬间。

 

我总觉得,那天晚上的李超,似乎比拿到本科特奖和Harvard的offer时,还要更高兴一些。




10月21日晚更新 

有些同学对我们的代码和demo感兴趣。其实我们很早就在GitHub上公开了当年的代码,请见:https://github.com/maTHmU


其中UI项目下,就是重构以后的前端代码。昨天考古,才发现我们的项目主页也存留至今:http://mathmu.github.io/


首页的视频demo,就是当年我们拿到全国赛去演示的视频,是我和张翔一起录制的。现在看这个视频有点幼稚,不过确实已经展示了我们的核心功能。

 

 

如果有人受益于我们的代码和书,能在我们的基础上更进一步,我想所有maTHmU的成员都会很欣慰的。




10月23日晚更新 

截止今晚,这个回答为我带来了1K+关注者和4K+赞同。两位主创李超和张翔也久违地联系我,说他们看到了回答,回忆起不少往事。再次感谢这个问题!

 

同时,我也希望借这次更新,探讨一些评论区看到的问题,也算是补充回答吧。

 

或许有人认为,只要我们核心团队坚持下去,这个项目就能成大气候;抑或,如果当时或者现在有个金主把我们团队聚集起来,这个项目就会长期进行下去。很遗憾,这些看法都是片面的。要想比肩大型商业软件,最重要的还是长期的投入和生态。我们必须看到,国内的软件环境对于开发者非常不友好——游戏行业同样饱受盗版之苦,大家宁可花钱购买网游里的道具,也不愿支持正版单机游戏。如果这种现象没有本质改善,那么大型商业软件的出现就只能仰仗于奇迹,成功概率不是没有,但是非常低。我不希望我的文字在这个方面产生误会——否则它就仅仅是一个精彩的故事,甚至不能被当成这个问题的回答了。

 

项目初期,我曾经问过李超,为什么会想搞这个项目,难道真的只是为了挑战杯,为了给自己增加各种筹码?他说不是。这个项目,他从大一就开始筹划,纯粹出于个人兴趣坚持了两年,终于在大三的时候看到了做成初步版本的希望。他也向我展示了各种文档,都是他点滴积累的笔记,甚至连TeXbook都是他介绍给我的——在UI设计的初期,他在方向性问题上的视野也远比我要长远。这些知识,是不可能在短期内积累起来的。正是这种坚持打动了我,我决定和他们一起追梦。事后证明这个决定是正确的,至少我拥有了难忘的回忆和宝贵的精神财富。

 

最后,请各位读者在惊叹之余保持冷静。我们这个团队,不过是无数怀揣梦想的学生中的一小拨,想做一件小事,咬牙坚持了下来。我们成就了这个项目,这个项目也让我们成长,仅此而已。如果夸大了我们团队的模式,就是在夸大个人英雄主义。如果是从未有人做过的事,那么依靠个人英雄主义或许可行。然而在市场上已经有MATLAB、Mathematica等成熟软件的前提下,商业模式驱动下的团队作战才是唯一的活路。辩证地看,我们的项目之所以能进行下去,是因为我们一开始就没有冲着商业变现而去;因此,我们没有做成真正的大型项目,也就是天经地义的事了。

 

最后我想说,我们的经验是有正面意义的。它至少证明了:任何一个时代,都不缺少敢于追梦的年轻人。只要有合适的时机,辅以适当的引导,我们就能创造属于自己、属于这个时代的奇迹。

 

希望这个回答能给大家带来些许信心。如此,它就比其他高赞回答更深刻一些了吧。




10月31日晨更新 

评论区里有不少声音指出,我们原创团队中的不少同学现今正在美国或者美企工作,并且多多少少表达了惋惜之情。这让我略感意外,但仔细想想却又是情理之中。这个问题本身就是假设为中国研发出先进的软件或者系统,那么拥有这些能力的人才大量“外流”,明面上看确实不是好事。

 

然而我希望提醒各位:不要用狭隘的眼光看待此事;不要把在美国或者美企工作,等同于无法为中国做出贡献。可以预见的一段时间内,中国科技水平和美国的差距还很大,因此任何与美国的科技合作,都会从统计意义上对中国有利。近年来,中国在计算机领域取得的重大科技进展,与美国是密不可分的。

 

别人不提,只说我的经历:我在学术道路上的四位重要导师,无一不与美国相关。

 

我的博士生导师,张钹院士,是中国人工智能的先驱和泰斗。上世纪80年代,他曾在美国UIUC访学两年。直至今日,他依然会回忆起访学经历对他产生的重要影响。

 

我的博士生副导师,田奇教授,是计算机领域的知名学者。他在美国取得硕士、博士学位,并且担任教职达17年之久。然而,这并不妨碍他为中国各顶尖院校培养数十位研究生,而听过他讲课并且受到影响的学生更是不计其数。

 

我在微软亚研实习期间的导师,王井东博士,也是计算机领域的知名学者。他在微软亚研工作10余年,也为中国各顶尖院校培养了数十位研究生。微软亚研作也被称为中国AI的黄埔军校,对中国AI的贡献无法估量。

 

我在JHU做博后期间的导师,Alan L. Yuille教授,本身就是美籍英国人。他的实验室里,90%以上的成员都是中国学生——我认为他对中国的贡献,比大部分中国人要大得多。

 

所以,请各位认清事实,以平常心态去对待两国之间人才的流动。我们要相信时代,更要相信这些优秀的学子们:中国正在逐渐强大,或者无论中国是否强大,学子们报效祖国的决心都不会改变。如果我们抱着狭隘的民族主义思想去阻止正常的学术交流,才更会阻止中国做出更好的科技成果,开发出更强的系统和软件。


说明:本文来源网络;文中观点仅供分享交流,不代表本***立场,转载请注明出处,如涉及版权等问题,请您告知,我们将及时处理。

来源:电力电子技术与新能源
电源电路电磁兼容电力电子MATLAB新能源通信电机热设计Mathematica游戏控制人工智能
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2023-05-19
最近编辑:1年前
获赞 154粉丝 261文章 2060课程 0
点赞
收藏
未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈