Rust官方推荐的三个资料,分别是The Rust programming language,Rust by examples以及ruslings,已经相当充足了.包括相对全面的书,代码例子以及方便的互动式exercises.个人觉得,the book相当于字典,虽然其实还有内容更多的reference,而examples更加易懂上手,rustlings相当于刷题,把关键东西了解一遍.

所以从这三个东西入手开始Rust学习之旅,一些地方会跟c++对比.

阅读全文 »

当项目比较大涉及到多门编程语言时会有这种需求.通常是要求调用C/C++等.
某些语言之间相对来说调用就比较简单,比如Go和C,Rust和C等.但是其他语言相对来说就麻烦了.本文主要涉及Python,JS,Java和C/C+的互相调用,以备不时之需.

TL;DR:Python使用pybind11,JS使用emcc,Java使用JNI.

阅读全文 »

之前在看其他人交流帖子的时候提到学习函数式编程提升思维(虽然感觉有点大肆宣传的感觉),但看了一些函数式编程的例子,感觉在数据处理和多线程上有独特的效果,如果使用面向对象,那就会变得比较麻烦,所以这里仅作简单介绍.

阅读全文 »

Pytorch是很好的深度学习框架,但在使用时你可能仍然不清楚其中一些概念.这里我只以官方文档为依据尝试解释其中一些概念和方法. 我这里可以称作Effective Pytorch.

阅读全文 »

从C语言诞生已经五十多年了,现在已经有了许多高级语言,其中很多背靠大厂,比如Java,Go,C#,Dart,Swift等等(甲骨文,谷歌微软和苹果,这类语言通过公司更新).也有很多社区的语言,比如Python,Rust,PHP,Ruby等(这类语言往往通过早期创建者和一些核心成员更新和维护,这里面也有很多开源的语言,允许其他人修改).
相较于公司旗下的语言,社区类型的语言往往更加简洁,在使用或者生产下效率高,但也存在生态相对较差、工具链不够、更新发力不够持久、文档不够丰富的问题.

而 A better C的意思就是在后面的语言中找到性能较强,使用友好并且生态持续发展的语言.TLDR:在大型项目上还是使用C++,在一些工具链或者代码重构上可以考虑Rust.

阅读全文 »