Julia 是怎么火起来的?( 二 )


  • León Alday , 分子建模 。
这就是 Julia 在解决这些问题如此强大的原因之一……这种集成使 Julia 比其他语言更具优势……我们能够在很短的时间内开发出这些解决方案……
  • George Datseris , 沃森博士 , 科学助理 。
Julia 确实是允许这样的项目存在的编程语言 。
  • Mauro Werder, 冰川厚度 。
使用 Julia 编程是一件乐事 。
  • Valeri Vasquez , 媒介传染病动力学 。
Julia 编程语言……是一个特别灵活的工具……
  • Rafael Schouten , 空间模拟 。
Julia 编程语言是显而易见的选择 。
  • Meghan Ferrall-Fairbanks , 肿瘤动力学 。
通过Julia 编程语言 , 我可以利用来自不同学科的工具来推进癌症研究 。
  • Vilim ?tih , 成年斑马鱼脑动态监视 。
这项工作非常适合用 Julia 编程语言来完成 , 因为它有很好的抽象特性 , 可以编写非常通用的代码 。
  • Petr Krysl , 偏微分方程 。
有一种可以用来写任何东西的快速编程语言真是太好了 。 ……但是 , 这些天来 , 真正令我印象深刻的是 , Julia 编程语言在某种程度上提高了我的工作效率 。 Julia 使我们可以轻松地在适当的抽象层次进行思考 。
  • George Datseris , 音乐演奏分析 。
为什么用 Julia 编程语言进行科学研究这么棒!
这些科学家都发现 , Julia 增加了合作的机会 , 也比以往任何时候都更容易整合他人的工作 , 使他们能够编写可以被他人以不可预见的方式使用的代码 。 这些能力的关键在于 Julia 编程语言解决了一个不同的古老难题 , 这一次是计算机科学的难题 , 即表达式问题 。
通过比喻解释表达式问题“表达式问题”的概念是研究计算机语言设计时提出的 。 这是计算机科学领域的一部分 , 所以关于它的意义、含义以及围绕这一问题的各种不同方法的现有解释都是抽象的 , 并且依赖于专业术语 。 但我们可以做得更好 。 所有的设计问题都可以用烹饪的比喻来描述 。
我们想要通过比喻的方式来描述的计算机科学术语是函数 / 程序、数据类型和库 / 模块 / 包 。 简而言之 , 函数或程序就是获取某些输入、对其进行操作 , 并产生某些输出的过程 。 数据类型是数字或其他信息的集合 , 这些数字或信息可能具有各种各样的结构 , 由函数对其进行操作 。 而库是函数的集合 , 以及它们所使用的数据类型的描述 , 这些组合起来执行一组相关任务 。 库的一个例子是一组用于绘制图形的函数 。 库中的各个函数可以用来绘制不同类型的图形 , 如饼图和直方图 。 例如 , 饼图的数据类型是元素对的列表 , 第一个元素是单词或短语 , 第二个元素是百分比 。
对于那些花时间在厨房里按照菜谱做菜的人来说 , 这种比喻是相当直接和自然的 。 库或包变成了菜谱;例如 , 想象一本关于制作甜点或汤的书 。 这些函数或者程序既可以被认为是制作菜肴的完整菜谱 , 也可以被认为是技术或程序 , 比如如何炒菜 。 我们可以把它们想象成齿轮 , 因为它们是用来加工原材料的机器 。 数据类型就是本练习中的原始内容 。
想象一下 , 我们的菜谱书是这样组织的:菜谱只能用特定的配料 。 例如 , 你可以查“如何炒”并找到炒洋葱或炒大虾的程序和步骤 。 由于所用的原料不同 , 这些程序都是不同的 。 如果菜谱像计算机语言那样工作的话 , 那么配料表就是菜谱书的一部分 , 实际上是包含在菜谱书中的 。
如果我们想要修改菜谱书 , 添加一个新的菜谱 , 或者描述一种新的技术(例如 , 可以用搅拌机做的事情) , 那么添加新的菜谱很简单 。 只需写一个新食谱 , 列出你感兴趣的原料 , 包括可能属于其他现有菜谱的原料 。
现有的食谱都无需修改 。 事实上 , 我们正在增加新的食谱并没有让旧的食谱变得过时 。
但是如果我们想加入一种新的原料 , 怎么办?我们当然可以用它来创造出全新的菜谱 。 但是 , 如果菜谱书中以前的菜谱都没有提到鱼 , 那么如果我想把鱼加入到那些菜肴中 , 我们就必须回过头来修改它们 。 我们将不得不改变我们已经完成的工作 。
但组织一本菜谱书的方法可不止一种 。 如果它是围绕原料而不是围绕烹饪方法来组织的呢?对于每一种原料 , 都会有一套与之相配套的技术或方法 。 让我们接着想象一下 , 可以用下面的图片来表示:
Julia 是怎么火起来的?文章插图