Recently I've become enamored with a newish language called Rust. The reasons I like rust are as follows.
-
To describe its syntax, it's like typescript, JavaScript, and c had a baby who inherited almost solely the good attributes of its progenitors.
(it's a good thing, trust me)
-
It has a great project tool that is reminiscent of npm in node, but with extra features related to building your project (called cargo)
-
It is open source, released with a mixture of MIT and Apache 2 licenses ( industry friendly licenses )
-
The community is great, and active (they had their first Rust-Con this year)
-
It is backed by Mozilla, an industry leader
-
It is a systems language, meaning you could write an operating system in it
-
It is fast, on par with
Go-lang (edit:9/28/16) C++ in many ways (Presentation on rust by a Mozilla employee)
-
Rust doesn't have a garbage collector, but makes it easy to write memory safe code with it's concept of 'borrowing'
-
There is already good plugin support for Vim :)
-
Rust also has good support in visual studio code, and emerging plugins for visual studio and the intellij platform
The only things I don't like are related to it's age (It hit version 1.0 in May 2015).
-
It's executables are a little big for even something like a hello world (the compiler is being optimized with each release) (Edit:9/28/16)
The executables are actually pretty normal sized. I just realized that the executables are big (compared to c or c++) because rust is packaging the standard library with it, whereas the standard library for c or c++ usually already has a dll on the target system (like linux or windows) which has all of that code in it.
-
The tooling (which is a current objective - as of 2016 - in the rust community) is functional, and it works, but it needs some improvement
-
I can't use it at work (yet... I need to do some convincing and suggest it at an opportune moment) :(
I expect these things will improve a lot over time, and they are all actively being worked on.
Rust is going places. Mozilla (in collaboration with other tech company's such as Google) have been designing and will be implementing a new web standard for browsers called 'WebAssembly'. In the past (and currently) JavaScript is about the only language you can write browser code for. This changes with WebAssembly (WASM).
WASM allows you to write code from a compiled language and run it directly in the browser context. In some testing that has been done, the speed increase has been as high as 20x. Also compiled code is typically smaller than text. At openwest 2016, I heard from a developer for Mozilla that good candidates for WASM are compiled languages that do not use a garbage collector. So the languages I know that don't have a garbage collector are rust, c and c++.
Mozilla is using rust in firefox already.
With memory safety being a big feature of rust and WebAssembly on the horizon, Rust has a bright future. I can already imagine new video game streaming services running directly in your browser, with games written in rust.
With my infatuation with rust, it's probably going to be the only thing I talk about for the next year or so.