计算化学公社

 找回密码 Forget password
 注册 Register
楼主 Author: scf
打印 Print 上一主题 Last thread 下一主题 Next thread

[综合交流] 各种编程语言的优劣

 关闭 [复制链接 Copy URL]

729

帖子

21

威望

5233

eV
积分
6382

Level 6 (一方通行)

31#
发表于 Post on 2020-5-30 17:41:13 | 只看该作者 Only view this author
英国国家超算中心ARCHER上可以查到计算资源的近期统计,其中绝大部分来自fortran程序
http://archer.ac.uk/status/codes/

001.png (65.65 KB, 下载次数 Times of downloads: 157)

fortran

fortran

评分 Rate

参与人数
Participants 1
eV +5 收起 理由
Reason
chrinide + 5 我很赞同

查看全部评分 View all ratings

339

帖子

0

威望

5049

eV
积分
5388

Level 6 (一方通行)

32#
发表于 Post on 2020-5-30 20:38:09 | 只看该作者 Only view this author
beefly 发表于 2020-5-30 17:41
英国国家超算中心ARCHER上可以查到计算资源的近期统计,其中绝大部分来自fortran程序
http://archer.ac.uk ...

VASP贡献了1/3的用量,Fortran写的

39

帖子

0

威望

192

eV
积分
231

Level 3 能力者

33#
发表于 Post on 2025-4-28 20:50:03 | 只看该作者 Only view this author
Shannon 发表于 2015-5-21 04:54
没用过Fortran, 只用过c++,指针什么的特烦人还不用不行,简直丧病。 面向对象的设计C++确实非常不错,查 ...

用C++完全可以不用指针只用引用来传参,而且指针的概念其实很好理解,理解指针对于理解程序运行的过程其实很重要。python比3M功能要强大很多还是免费的,胶水语言学一个python就完全够用了。

39

帖子

0

威望

192

eV
积分
231

Level 3 能力者

34#
发表于 Post on 2025-4-28 21:09:30 | 只看该作者 Only view this author
sobereva 发表于 2015-5-21 06:08
不同语言各有所长,没有前提放一起比也不公平,这里只针对科学计算进行讨论。

搞科学计算,Fortran和C必 ...

1.我也很喜欢隐式声明,不理解为什么那么多人不喜欢用。
2.cpp要写花括号但fortran要写end呀,写end比写花括号麻烦多了吧,我特别讨厌用end的语言。至于cpp要写分号是为了方便多行代码,cpp的多行代码是最方便的。
3.cpp也可以不用指针的,而且指针理解起来也不难呀。
4.cpp20已经引入模块的特性了,可以不用传统的include
5.变量不区分大小写在我看来是非常落后的特性,区分大小写之后命名明显方便了很多,最早的计算机上面字母全都是大写的,所以早期编程语言都是不区分大小写的。很难理解为什么现在还保留这种远古特性。
6.cpp也有动态数组呀,而且还有Eigen库的数据结构本身支持线性代数计算。
7.cpp的Eigen库的线性代数计算比fortran更加方便。
8.按照给定标准写的cpp程序是很好读的,没有标准的代码才难读。实际上我看过一套由不同人编写的fortran代码,由于不同人习惯不同,整套代码风格各异,可读性不是很好。提高可读性的关键在于要为不同人规定相同的代码规范。
而且cpp比fortran还有很多优点,比如生态更加丰富,有更多的第三方库,程序员群体更加庞大等,所以我认为cpp要比fortran更有前景。

6万

帖子

99

威望

5万

eV
积分
120073

管理员

公社社长

35#
发表于 Post on 2025-4-28 21:23:30 | 只看该作者 Only view this author
ShiyuWang781 发表于 2025-4-28 21:09
1.我也很喜欢隐式声明,不理解为什么那么多人不喜欢用。
2.cpp要写花括号但fortran要写end呀,写end比写 ...

2 写end并不比写花括号“麻烦多了”。写}还得按着shift。而且Fortran想不分行照样可以和C一样写;(或许不太懂Fortran的人还普遍不知道这点),而C则即便分行也必须写;,明显C的规则麻烦得多。

3 显然用不用指针完全是开发者自己决定。而C的指针普遍的大量的使用容易造成混乱、给读代码和调试造成困难。指针部分一直是C/C++学习的难点。这方面Fortran的学习门槛低多了,读起来也普遍更为容易。

5 不区分大小写至少给我带来了很大方便,省得我还去记忆、区分大小写。

6 Fortran的动态数组用起来方便、直观得多。

7 或许可以说方便,但比Fortran还能“更方便”不可能。Fortran不仅自带的线性代数操作极为方便,结合MKL等主流的数学库做线性代数操作也十分方便。

8 写的人的习惯、水平是影响可读性的一方面,这是独立于语言的;而极为重要的另一方面,若一种语言的特性过于丰富、过于灵活,则容易由于某些开发者的自我风格过于鲜明、过度乃至滥用利用此语言提供的灵活性,导致写出来的代码比其它语言的更难读。

C++和Fortran的主要应用范畴明显不同,没有前提的情况下比较前景没有意义。C++的库的总量虽然远比Fortran更多,但对于Fortran最擅长、使用最广泛的科学计算领域,Fortran的库应有尽有。在量子化学、第一性原理领域,Fortran更是远比C++主流得多得多、使用者多得多,2/3以上这方面的程序都是Fortran开发的(绝非被一些人误以为的历史原因),包括较新的诸如xtb。

PS:不要连续挖老坟。最近挖得太多了。老挖我就删帖了。
北京科音自然科学研究中心http://www.keinsci.com)致力于计算化学的发展和传播,长期开办极高质量的各种计算化学类培训:初级量子化学培训班中级量子化学培训班高级量子化学培训班量子化学波函数分析与Multiwfn程序培训班分子动力学与GROMACS培训班CP2K第一性原理计算培训班,内容介绍以及往届资料购买请点击相应链接查看。这些培训是计算化学从零快速入门以及进一步全面系统性提升研究水平的高速路!培训各种常见问题见《北京科音办的培训班FAQ》
欢迎加入北京科音微信公众号获取北京科音培训的最新消息,并避免错过网上有价值的计算化学文章!
欢迎加入人气极高、专业性特别强的理论与计算化学综合交流群思想家公社QQ群(群号见此链接),合计达一万多人。北京科音培训班的学员在群中可申请VIP头衔,提问将得到群主Sobereva的最优先解答。
思想家公社的门口Blog:http://sobereva.com(发布大量原创计算化学相关博文)
Multiwfn主页:http://sobereva.com/multiwfn(十分强大、极为流行的量子化学波函数分析程序)
Google Scholar:https://scholar.google.com/citations?user=tiKE0qkAAAAJ
ResearchGate:https://www.researchgate.net/profile/Tian_Lu

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2025-8-13 00:14 , Processed in 0.168943 second(s), 24 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list