编程语言应用

注册

 

发新话题 回复该主题

Rust很难学但是令人兴奋的编程语言 [复制链接]

1#

Rust是一种令人兴奋的新语言。如果你有兴趣学习Rust,请继续阅读,以获得一个开发人员采取这种有趣的,虽然困难的语言。

我最近决定认真学习Rust编程语言。我看到它经常出现在有趣的项目中(例如ripgrep)并且一直听到有关它的好消息。自年发布1.0以来,我对于挑选Rust的犹豫不决来自两个方面。首先,由于InfluxDB,我完全投资了Go。其次,我听说这不是最容易学习的东西。虽然我通常不会回避困难的任务,但我还是犹豫不决,因为我相信很多开发工具都是这样做的,因为它们易于使用或者为开发人员带来显着的生产力提升。通常情况下,我希望将我的时间投入到我认为具有长寿性的工具中,这些工具将在市场上获得一些临界质量。

然而,有一些关于Rust的东西让我明白,即使它可能很难学习,它也可能在编程语言环境中找出一个非常重要(和需要)的利基。接下来是我对我认为这些优势是什么,我是如何接近学习语言以及为什么我对Rust感到非常兴奋的反思。但要注意,我还没有在生产中运行任何东西,我只编写了大约2,行Rust代码,我还没有做任何多线程或网络编程或基准测试。这完全取决于我早期的印象。

那么为什么Rust呢?是什么让我想更深入地研究这门语言?如果我没有说它的表现不是重要因素之一,我会撒谎。没有垃圾收集,但在语言/编译器中内置了原语,以确保您不会忘记释放mallocs或意外取消引用无效指针?注册我列表中还有两个对我感兴趣的重要功能。通过FFI创建可以链接到其他语言(如Python,Ruby,Go等)的库的能力是我一直在考虑的未来在Influx的工作。此外,与C和C++库的低成本(或零成本)集成是一个很大的动力。我想整合一些大的C++项目,Rust似乎是一个很好的方法。

至于Rust与Influx的相关性,我梦想创建一个基于Rust的Flux实现,这是一种新的脚本和查询语言,它使用C++ApacheArrow库,可以嵌入到其他系统中(如Spark,KafkaStreams,或者其他地方)。此外,我们的云平台的新版本是基于服务的设计,因此Rust可以通过特定服务进入我们的基础架构,这些服务可以从其性能和保证数据竞争中获益(另一个重要的Rust优势)。所以这些都是促使我最终实现这一目标的动力,但我很快发现,那些不会使Rust成为令人信服的语言的唯一因素。

通过实现Lexer,PrattParser和TreeWalkingInterpreter来学习Rust

我认为一个小项目是开始学习语言的最佳方式。我看到有人链接到ThorstenBall关于在Go中编写口译员的书并认为在Rust写这篇文章是一个很好的起点。读过这本书之后,我强烈推荐它,但我会回过头来看看。我以前写了一个翻译,我对Go非常熟悉,这个项目的好处在于它限制了我需要学习的范围。它仅使用标准库功能,不需要任何多线程或网络。Thorsten的书附带了所有代码和广泛的测试,所以很容易确保事情是正确的。我没有必要考虑算法如何构建我的内容,只考虑如何在Rust中专门做到这一点。但在我投入实施之前,我必须学习语言基础知识。

我应该给出一些关于我作为开发人员来自哪里的背景信息,因为我认为具有不同背景的人可能会发现学习Rust更容易(或更难)。自年中期以来,我一直是一名Go程序员。在此之前,我在一年中的大部分时间里都在单页JavaScript(Backbone)应用程序上工作,在此之前,我在Scala中构建了一个“时间序列数据库(API)”。回过头来,我正在编写Ruby和Rails应用程序,并将大量的JavaScript混合在一起,这是我在年到年期间所

分享 转发
TOP
发新话题 回复该主题