跳转到主要内容
Chinese, Simplified

对所有的Rust家族的人来说,

注意:在我的第一篇文章之后,我开始关注这篇文章的第二部分。我的主要兴趣在第一部分。第二部分涉及某些个人偏好,我很乐意真诚地与大家分享和讨论。如果您想回复或评论,请选择其中一个或两个要点。但请优先考虑第一部分。谢谢。特别感谢第一反应人员

第一部分:

你好,这里是Rust人!

这不是个好主意,但我得先道歉并声明:

  • 道歉:这可能是一个很长的音符,所以振作起来,深呼吸;
  • 免责声明:在本说明中,我没有任何相反的意图或批评。我五十多岁了,年龄给了我们更多的自由来表达我们的观点和想法。把这些和成熟结合起来,这些想法和观点都是被驱动的,都是为了改善我们自己、环境(从充分的意义上说)和希望他人。我有一些朋友可能因为我倾向于发表自己的观点而恨我,但在内心深处,他们说他们喜欢我的观点,因为我提出了不同的观点。这既不是对的也不是错的,只是不同而已。吃一粒或一公斤盐,自己做决定。好了,够了。我相信你们都明白。

要点:我是一个数据科学家,我正在探索Rust,所以我想问一些关于匹配Rust和数据科学的建议和意见。要点中的更多上下文和背景:

  • 我是一个数据科学家,所以我不是一个开发人员。
    • 对我来说,开发人员是通过日复一日地生产代码来谋生的人,这些代码使计算机工作以改善我们的生活。
    • 数据科学家是一个利用数据来改善我们生活的人,在一定程度上以不同的时间和质量开发代码。
  • 数据科学不是一门IT学科,尽管它严重依赖IT资源。
  • 我曾经在大学里用过穿孔卡片,这些年来我学习和使用了大约30种不同的编程语言,现在我仍然这样做。我已经学会了数据结构和算法(Niklaus Wirth的“算法+数据结构=程序”或Donald Knuth的“计算机编程的艺术”有什么影响吗?),但根据我上面的定义,我不是开发人员。
  • 这与编码无关,但数据科学与R、Python和Java等语言在大多数情况下都与几十年前用C或Fortran编写的实际数学代码相关联。
  • Python只是一种解释性的脚本编程语言,与数据科学无关,但它确实提供了大量与统计和机器学习相关的库和框架,对于偶尔需要编写代码的数据科学家来说,它感觉“更轻松”或者也许不那么吓人。我有没有提到解释意味着互动,但也意味着缓慢?
  • Python和R适合于发现阶段的简单性和交互性,但不适合在生产环境中快速实现数据科学。可能是Rust的机会?

你可能会问,这有没有意义,有没有问题,或者这会很快有什么进展?

因此,作为一个局外人,我的中心问题是:考虑到Rust本身作为一种系统编程语言,它是否可以在部分或整个数据科学工作流程的最前沿(而不是在幕后进行数学运算)使用,并根据需要供分析人员和数据科学家使用?

我希望有很多答案可能和这张纸条一样长,并预测它们会分为三到四类,但我不想影响更多。

你可以休息一下,考虑把它写回去。我希望你能。

 

第二部分:

这一部分几乎与前一部分无关,但我决定把它放在一起,因为它涉及到语言在美学层面上的“轻松”、“轻巧”或“外观”,我相信这会影响一个人在学习/使用一门新语言时可能感受到的心理吸引力或废除。在C语言中,我从来没有感觉到它像JVM一样被吸引。我知道这是一个彻底的简化,但第一印象呢?

作为一个局外人,YouTube上的Rust演示只有10到15个小时,Rust book的一半都是在非业务时间,我想请你理解,所以让我开始:

这不是一个玩笑,但我希望我得到一些微笑:一个很好的关键字在Rust是3个字母缩写(mut,mod)。从我在网上看到的演讲来看,我不敢相信Rust 人不想玩得开心。他们更喜欢用fn代替(From the presentations I have seen on the Internet, I can’t believe Rustaceans don’t want to have fun. They prefer to have fn instead)。

我要说的是,我不喜欢编程语言中的缩写词仅仅是在审美水平和个人品味上,其他人喜欢。

我在某个地方看到,Rust想要到处运行,所以它将有助于明确和“清晰”。我可以采取句法糖只要原来的语法和意义也是有效的。也许到处跑并不意味着每个人都有密码。

以下是简短版本的优势的争论:

  • 如果你是一名全职程序员,你可以在一年内节省一些时间。
    • 假设一年节省10分钟=0.000019(0.0019%);肯定会浪费更多的编译或调试时间。
    • 尽管开发人员是懒惰的(据说/一般来说),但是ide和代码编辑器有办法扩展代码,这样键盘组合就可以产生fn或函数,而且速度一样快。
  • 这是为了使C/C++程序员熟悉
    • 在C中有一个类似struct的结构,然后又有fn的连贯性是什么。C中有fn吗?
    • 开发人员很聪明(据说/一般来说)。Web开发人员在相同的源代码中处理HTML、CSS、JS/PHP/等!不用用熟悉的语法填鸭式地喂。
    • 使C/C++开发者感觉更自在,那么开发人员在Ruby/Python/PHP/Simultal/Bastran/Fortran/SQL/AWK/I中的代码可以继续使用更多的行。
  • 让我们开发一种新的语言,它拥有所有现代技术的钟声和口哨声,但是出于一些不正当的原因,让我们让它看起来完全像以前所有其他语言(勾选方框):
    • []尊重我们面前的巨人
    • []因为我们不够革命性/创造性
    • []这并不重要;忘掉并专注于工作
    • []其他:_____________
  • 表达式和语句之间的区别是在行尾有一个分号。说真的?这种区别听起来像是人类语言依赖于语音学,如果你犯了错误,人们会嘲笑你。作为母语很好,但对说第二语言的人来说很糟糕。以此类推,这和偶尔的程序员一样可怕。尽管来自编译器的错误消息可以很好,但这可能会导致数小时的调试,而源代码会在您的脸上发出笑声。
  • 对于那些认为使用“低级”和“接近金属”的代码就是使用简短语法的开发人员来说,这是一种心理上的误解,是资源有限、存储成本高昂时的历史遗留。二进制代码必须很短,这是编译器的问题。让我这样说:机器必须做得快,开发者必须做得对。
  • 充分利用已知的知识并加以改进。听起来不错,但如果不小心做,可能会导致一个弗兰肯斯坦一样的生物。所有的锯切可能很难创造出连贯而优雅的杰作。
  • 让我们一起去吧?我的建议是让变异或更好的变量(但不是var)。

我也许能想出更多的案例和例子,但我能感觉到房间里的紧张气氛越来越浓。我的大脑在某种程度上是硬连线的,我甚至不读课文就可以看到课文中的双空格,我忍不住不指出它。其他一些人可能理解或与之相关。

不幸的是,我没有足够的口才或表达能力,所以我可能会觉得我的论点不足。我希望这足以传达这个信息。我希望在社区或核心团队中有足够的临界质量来考虑这些和其他相关的问题,如果是这样的话,我们就可以有一个Rust2.0,并进行一些语法或语法的修改。

如果你读到这一点,我非常感激。你有什么想法和意见?

 

原文:https://users.rust-lang.org/t/rust-and-data-science-first-impressions-from-an-outsider/18405

本文:http://jiagoushi.pro/node/1453

讨论:请加入知识星球【全栈和低代码开发】

Tags
 
Article
知识星球
 
微信公众号
 
视频号