最早是自学Matlab,后来闲着没事就做了一些研究,再后来就以这个作为当时的主语言,在人大论坛这边做了版主,也做了一些视频课程,现在Matlab基础课程就还在论坛网络上卖着。
后来学校毕业,参加工作了,时间特别忙,为了快速完成工作,不同的软件都不得不去快速地学习、运用。
综合这么几年的一些自己的经历,把自己的经验做了简单的感悟,希望对版面的朋友有点启发。
1. 结论:
哪种语言最好,看人也看任务,如果一定要用一个维度的指标来衡量,那就是时间,包括:学习语言和编写程序时间,程序运行时间,程序维护时间。
可以依据自己最常做的任务,选择一种语言作为主语言,然后再略微掌握几种可能用得到的语言,略懂就行,需要的时候临时可以学习。
2. 关于VBA
vba的确好用,我曾经想过用它做主语言,最后放弃了。最初的瓶颈是学习,vba入门简单,我曾经一边查资料一边写,3天时间做了一个现在都还在用的小工具。
但学习简单,与Excel结合方便,但计算速度、对于复杂应用的编程难度、维护难度,当然还有自动化的程度等,在很多比较复杂的应用上会遇到瓶颈
3. 关于Matlab
进入到第二步,程序运行时间成为我的major concern, 之前用模拟算一种含权品种收益率,要算完所有取样点,用matlab-cpu计算预计耗时超过1年,后来不得不学习opencl,用显卡算,预计一周差不多(最后没算完,还搁置着,因为技术不精,ocl代码里面可能有内存溢出,跑半小时就死机)。
Matlab相对容易学习,使用也方便,自动化程度中等。但它的很多问题是系统资源占用太多,效率虽然可以通过mex、opencl等弥补,但在IO方面由于大多数用JVM,会比较慢一些。自动化程度相对差一点。
当然,对于商业运用,还要考虑它有点贵。
4. 关于Python
第三步,最关注就是维护和持续开发的时间。例如现在有个程序,需要每天跑,一跑就一整天,如果用matlab,半天下来就是它没死,电脑也差不多了,至于持续开发,就更不要说了,每天在昨天的自己基础上进步一点点,人生苦短,要每天“从头再来”,肯定不行。所以,选择了Python,学习成本比Matlab高一些,但占用资源低,速度方面,虽然比不上C/C++,但比前面两个更好一些,最重要的是,它的外部支持部件特别多,等于一个机器人,能够给它装的机械臂特别多,能够减少非常多的要自己想办法寻找机械臂、甚至制作机械臂的时间。