Rust and Eclipse | EclipseCon Europe 2018
EclipseCon Europe 2018
Ludwigsburg, Germany · October 23 - 25, 2018
https://www.eclipsecon.org/europe2018
Speaker(s):
Max Bureck (Fraunhofer FOKUS)
https://www.eclipsecon.org/europe2018/sessions/rust-and-eclipse
This talk will give a brief introduction into the Rust programming language and provide a user's perspective on the current state of the official Eclipse based tooling (Corrosion) for the language. Most of the time will be spent on explaining the Rust language.
The talk only requires basic programming knowledge, no systems programming background is required.
What is Rust?
Rust is a "systems programming languge" which usually means it provides tight control over memory management and produces highly performant executable code. It was started at Mozilla and is slowly gaining popularity (https://insights.stackoverflow.com/survey/2018/#technology-most-loved-dreaded-and-wanted-languages)
The language ensures memory- and thread safety (no use-after-free, no double-free, no data-races) at compile time. It also prevents buffer over- and underflows (partly at compiletime, partly at runtime).
This makes the language attractive for developers dreading manual memory management and concurrent code in C and C++. In contrast to Golang, Rust does not use a garbage collector, which makes it a great fit for embedding Rust code in other runtime systems.
The language is influenced by concepts from C++ (such as zero-cost abstractions and RAII) as well as concepts from Haskell (such as algebraic data types, pattern matching, and type classes). This makes Rust a unique systems language in which high level constructs can be used.
Some of the current use cases for Rust that have been successful are:
Generally high performant, memory efficient applications (“systems / infrastructure”)
Small command line applications
WebAssembly libraries
Integration into existing C/C++ applications for safety critical parts
Integration into other language runtimes (e.g. Ruby, Python or Java) for performance sensitive parts
With the high pace of the language development, Rust will likely gain a few more strong suits soon. This will likely include asynchronous web services and embedded development.
Rust provides an early implementation of the Language Server Protocol called RLS, which allows generic integration into IDEs.
Corrosion is the official Eclipse project supporting the Rust programming language in the Eclipse IDE. The plug-in is based on the LSP4J and LSP4E projects in Eclipse to use the RLS in Eclipse.
What Rust Features Will be Presented?
We will try to cover the most important tools and language constructs of Rust.
The shown language features include
The most relevant data types (enums, structs, etc.),
Language constructs and provided data types for memory management (such as the infamous "borrow checker"),
Definition of behavior for data types (including traits),
As well as control flow features (match expressions, ?-Operator, etc.).
What Will be Shown Regarding the Eclipse-integration?
The main features of the language tooling in Eclipse will be highlighted in this talk.
We will also discuss the current state and limitations of the RLS and Eclipse Corrosion from a user's perspective.
Other Videos By Eclipse Foundation
Other Statistics
Eclipse --- Defending the motherland Statistics For Eclipse Foundation
Eclipse Foundation currently has 38,049 views spread across 31 videos for Eclipse --- Defending the motherland. About 17 hours worth of Eclipse --- Defending the motherland videos were uploaded to his channel, or 1.45% of the total watchable video on Eclipse Foundation's YouTube channel.