Fortran Coder

查看: 961|回复: 1

[其他行业算法] 用Fortran编程获得软件著作权的故事

[复制链接]

122

帖子

34

主题

1

精华

大师

F 币
1107 元
贡献
584 点
发表于 2023-9-5 22:10:31 | 显示全部楼层 |阅读模式
本帖最后由 weixing1531 于 2023-9-5 22:11 编辑

本人37岁,就职于某省级水电设计院。大学本科计算机语言课学的是Fortran77,也曾为了考级尝试学习C/C++,觉得指针太底层,*p,**p,&p,++i等语句用起来实在不舒服,于是都放弃了。
坚持主学Fortran和VBA,谭浩强、徐士良、彭国伦、何光渝、Chapman的书都认真研读过,同时关注新标准的发展F77->F90->F03->F08。
工作后,发现单位很多数值计算模型都是用Excel公式,复杂一点的涉及到数组公式、迭代。
搞懂原理后,我尝试用VBA编程复现单位的计算模型,成功后又发现VBA太依赖Excel、代码私密性太差、数组初始化功能欠缺、不支持数组切片等缺点。

于是,最终采用Fortran重写计算模型,Excel读写操作交给第三方库Libxl,程序界面交给SimplyFortran编译器自带的界面库AppGraphics。
共计1300余行Fortran源代码,半年业余时间不停地调试、加载功能、迭代优化,形成了带界面的计算软件。
前不久,该计算软件已经取得国家版权局计算机软件著作权登记证书,发明专利也处于实质性审查阶段。


告诫大家:
1.编程语言是一门工具,不同编程语言各有优缺点,你总会找到一门适合自己的编程语言。
2.不要觉得Fortran写出来是个黑框框就看不起Ta。
3.兴趣是最好的老师,贵在坚持。Just write your code!
4.从GitHub中汲取养分,多读别人的优秀代码。
5.非计算机专业人员也要搞懂一些基本原理,比如整数、浮点数如何用二进制表示,一些基本数据结构如链表、二叉树的原理。
6.英语千万不能丢。

评分

参与人数 1F 币 +10 贡献 +10 收起 理由
fcode + 10 + 10 很给力!

查看全部评分

1938

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1255 元
贡献
529 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

发表于 2023-9-6 19:26:36 | 显示全部楼层
哟,楼主和我同岁。

我也来讲讲我的故事。

本人也是37岁,目前就职于某私企,地球物理行业。公司主要以地球物理(地质勘探)的硬件和软件的研发、销售、技术服务为主。
1997年开始接触电脑,当时学了一些DOS命令,也喜欢玩一些单机游戏,尤其喜欢金庸群侠传和仙剑奇侠传这类武侠RPG游戏。
然后我接触到了修改器,FPE2000,金山游侠之类的。从修改游戏的内存里的十六进制开始,对编程有了一些兴趣,其后也开发过一些自己的游戏修改器。
后来一段时间,也喜欢用HTML+ASP做一些简单的网站,主要是满足与网友们分享自己的兴趣爱好。

大学的时候学了 C 语言和 Fortran,因为自己有一些基础,所以自以为学得还不错,再然后就开始编写一些行业内的小工具,比如格式转换啊、简单的数据预处理工具之类的。
受到了同学老师的些许赞赏,心里开始有一些小骄傲。毕业后去了一家勘探队,工作了8个月,感觉自己的虚荣心没法得到满足,就放弃了铁饭碗,进入一家民营企业。
开始了主要用 Fortran 和 C++/Qt 做地球物理软件的生涯,直到现在。

现在主要用 Fortran 做地球物理数据采集、预处理、管理、转换、模拟、反演代码。界面采用 C++/Qt,用混编来让C++和Fortran交互。
同时,也部分用到 golang 做了一些服务器端的调度。HTML+CSS+JS 做用户的 Web 前端。
截至目前,十五年间,应该写了超过 20 万行代码了。所涉及的软件产品累计销售400套以上。

和大家分享几点感想:
1. 编程语言是工具,没有绝对的好坏。我的工具箱里有多种不同的工具,在不同的时候搭配使用。而不是有了榔头,就不要螺丝刀了。
2. 单纯的编程没有什么门槛,人和人之间拉不开太大的差距。所以想要有更高的台阶,最好是扎根在你的专业内。
想学一门新的编程语言或框架,有基础的前提下,一两周就能做到入门开始写项目。
而但想补齐一门理工科(数学,物理等),没个一年半载那是几乎不可能的。
3. 如果你要做特别简单的图形用户界面,用 Fortran 也是可以的。但会事倍功半,做为尝鲜是可以的,不建议深入。
有一个 winteracter 的图形库,是 Fortran 的原生接口,能实现中等复杂度的用户界面需求,不过要花钱买。
高等复杂度的用户界面,最好是用其他语言或框架。比如 C++ Qt、C# WinForm、Delphi 之类的去做。
4. 永远不要停止学习,永远不要停止完善自己的代码。
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-2-27 18:50

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表