有人使用一种名为Interactive Data Language,IDL的语言吗?它很受科学家欢迎.我认为这是一种糟糕的语言,因为它是专有的(运行它的每个终端必须购买昂贵的许可证)并且它具有最小的支持(尝试搜索IDL,语言,现在在堆栈上).我试图说服我的同事停止使用它并学习C/C++/Python/Fortran/Java/Ruby.有没有人知道甚至关心IDL足以对它有意见?你怎么看呢?我应该告诉我的同事现在不要浪费时间吗?我怎么能说服他们?
编辑:人们会得到我不知道或使用IDL的印象.另外,我说IDL的支持很少,这在某种意义上是正确的,所以我必须澄清科学图书馆确实很大.我一直使用IDL,但这正是问题:我只使用IDL,因为同事使用它.IDL使用的文件格式为.sav,只能在IDL中打开.所以我必须使用IDL来处理这些数据并将数据传回给同事,但我知道我会用另一种语言更有效率.这就像有人在电子邮件附件中向您发送微软word文件,如果您不明白它有多么错,那么您可能会写太多单词而没有足够的代码并且您购买了Microsoft Word.
编辑:作为IDL的替代品,Python很受欢迎.以下是AstroBetter 的IDL优缺点列表(以及缺点):
IDL的优点
成熟的许多数字和天文库可用
广泛的天文用户群
数字方面与语言本身很好地融合
许多本地用户都有丰富的经验
小阵列的速度更快
安装更简单
好的,统一的文档
标准GUI运行/调试工具(IDLDE)
单一小部件系统(无需担心选择或学习)
保存/恢复功能
使用关键字参数作为标志更方便
IDL的缺点
适用范围狭窄,不适合一般编程
大型阵列较慢
阵列功能不那么强大
表支持差
使用C或Fortran扩展的能力有限,这种扩展难以分发和支持
昂贵的,有时与没有或无法负担许可证的其他人合作的问题.
封闭源(只有RSI可以修复bug)
与IRAF任务集成非常尴尬
内存管理更加尴尬
单个小部件系统(如果在另一个框架内工作则无用)
绘图:
对符号和数学文本的尴尬支持
许多字体系统,可移植性问题(v5.1有所缓解)
不是灵活的或可扩展的
绘图窗口本质上不是交互式的(例如,平移和缩放)
Python的优点
非常通用和强大的编程语言,但易于学习.强大但可选的面向对象编程支持
非常大的用户和开发人员社区,非常广泛和广泛的库基础
可以使用C,C++或Fortran进行扩展,提供可移植的分发机制
自由; 非限制性许可; 开源
成为天文学的标准脚本语言
易于使用IRAF任务
STScI应用程序的基础
更一般的阵列功能
更快适用于大型阵列,更好地支持内存映射
提供许多书籍和在线文档资源(针对语言及其库)
更好地支持表结构
绘制
框架(matplotlib)更具可扩展性和通用性
更好的字体支持和可移植性(只有一种方法可以做到)
可用于许多窗口框架(GTK,Tk,WX,Qt ......)
标准绘图功能独立于所使用的框架
图可嵌入其他GUI中
更强大的图像处理(多个同时LUTS,可选的重采样/重新缩放,alpha混合等)
支持许多小部件系统
对于为Python开发的功能具有强大的本地影响力
Python的缺点
更多要单独安装的项目
在天文学界并不被广泛接受(但支持明显增长)
科学图书馆不够成熟:
文档不完整,不统一
在天文图书馆和公用事业方面并不那么深刻
并非所有IDL数值库函数都在Python中具有相应的功能
一些数字结构与语言不完全一致(或者比IDL稍微不方便)
数组索引约定"向后"
小阵列性能较慢
没有标准的GUI运行/调试工具
支持许多小部件系统(关于选择的焦虑)
当前缺乏与IDL中的SAVE/RESTORE相当的功能
matplotlib还没有所有IDL 2-D绘图功能的等价物(例如,表面图)
使用关键字参数作为标记不太方便
绘图:
相对不成熟,仍在继续发展
缺少一些情节类型(例如,表面)
3-d功能需要VTK(虽然matplotlib具有一些基本的3-d功能)
Rex.. 10
这里有很多IDL粉丝!我也是一名天文学家,我广泛使用过IDL和Python.我只能说IDL幸存至今,因为天文学家的懒惰,他们不能或不想学习新的更好的编程语言.除了Fortran或IDL之外,我的大多数同事都没有使用过任何其他东西.对他们来说,整个世界只有IDL.顺便说一句,许多年轻的天文学学生也都是关于IDL的,甚至不想检查Fortran,或者上帝禁止使用Python或C/C++.这些是程序员和数学家的语言,而不是天文学家的语言.
关于许可费用.已经有多少个IDL版本以及你们大学购买了多少个?我想很多......
是的,继续购买新的IDL 8.x版本.我听说它的新绘图包允许你在生成后修改部分绘图.WOOOW!这太酷了!
ps IDL中没有任何内容无法以更好,更清晰的方式在Python中完成.其中的大多数科学工具都是广泛且非常稳定的.我在matplotlib中绘制各种图表没有任何问题.它的GUI工具非常棒且直观,与蹩脚的IDL"小部件"不同.
这与我的旧大学的情况非常相似,老教授在时间上有点难过,因为他们拒绝学习编程中的任何新东西.他们变得没有竞争力,停止做任何重要的工作.
这里有很多IDL粉丝!我也是一名天文学家,我广泛使用过IDL和Python.我只能说IDL幸存至今,因为天文学家的懒惰,他们不能或不想学习新的更好的编程语言.除了Fortran或IDL之外,我的大多数同事都没有使用过任何其他东西.对他们来说,整个世界只有IDL.顺便说一句,许多年轻的天文学学生也都是关于IDL的,甚至不想检查Fortran,或者上帝禁止使用Python或C/C++.这些是程序员和数学家的语言,而不是天文学家的语言.
关于许可费用.已经有多少个IDL版本以及你们大学购买了多少个?我想很多......
是的,继续购买新的IDL 8.x版本.我听说它的新绘图包允许你在生成后修改部分绘图.WOOOW!这太酷了!
ps IDL中没有任何内容无法以更好,更清晰的方式在Python中完成.其中的大多数科学工具都是广泛且非常稳定的.我在matplotlib中绘制各种图表没有任何问题.它的GUI工具非常棒且直观,与蹩脚的IDL"小部件"不同.
这与我的旧大学的情况非常相似,老教授在时间上有点难过,因为他们拒绝学习编程中的任何新东西.他们变得没有竞争力,停止做任何重要的工作.
我是辛辛那提儿童医院的fMRI研究员,多年来,放射学研究人员一直使用IDL开发图像处理软件包(称为CCHIPS).这是一个非常发达的一揽子计划,多年来已经有不少人在扩大其效用.虽然我几乎是一个硬核MATLAB用户,因此倾向于倾向于使用SPM等软件包来进行fMRI图像处理,但我仍然经常使用CCHIPS并编写/编辑一些IDL脚本.它对我来说并不像MATLAB那样"舒服"(毕竟我们都有最喜欢的"空白"),但它相当容易学习.
我想我的观点是......如果一个编程资源运行良好,已经很好地建立,很多人都很好用,并且(最重要的是!)你组织中仍然有人愿意维护/调试/修改/扩展资源那么就没有必要采取危言耸听的立场,即必须立即改变新事物.如果您所在的机构中根本没有人愿意再保留资源,那么这可能会引起紧急关注.否则,我建议你更熟悉你不喜欢的东西,然后施加温和的压力来介绍你认为更好的选择,并以明确的改变理由予以支持.