Rust

Project RUST

is een methode van programmering met bijzondere karakteristieken. Die ben ik aan het onderzoeken. Dus lees en lees en lees ik heel veel. Dat ga ik nu dus niet meer allemaal opschrijven. Hoewel dat wel goed zou zijn voor het handhaven van mijn visueel-motorisch geheugen. Zo heb ik altijd gestudeerd en examens met succes kunnen doorstaan. Of het intypen resp. de 'copy/paste' methode hetzelfde effect zullen hebben? In ieder geval is de plaats waar ik nu kan gaan zoeken eenduidiger vastgelegd: hier dus!

Om met RUST aan de slag te gaan moeten er in eerste instantie een paar eenvoudige keuzes worden gemaakt. O.a. op welke machine ik daarmee kan en wil experimenteren. De keuze is gevallen op een Raspberry Pi 3 Model B. Eenvoudig omdat ik die heb liggen en een nieuwer model nog niet heb aangeschaft. Die keuze komt niet helemaal uit de lucht vallen. RUST blijkt op het ARM-platform ondersteund te worden.

De diverse documenten worden allemaal gezocht en gevonden op internet; te beginnen met de basis Rust Programming Language Vervolgens heb ik de noodzakelijke onderdelen geïnstalleerd en geconstateerd dat de recente versie (2020-09-28) rustc 1.46.0 (04488afe3 2020-08-24) is. Dat kan belangrijk zijn, omdat de boeken en instructies vaak gebaseerd zijn op oudere versies. Dus als iets niet helemaal of helemaal niet werkt kan dat de oorzaak zijn.

Ook heb ik me aangemeld bij de RUST-Community; als G0erwt.

N.B. RUST is geen taal waarvoor een formele specificatie is opgesteld/aangenomen.

Een prettige bijkomstigheid: RUST heeft een 'speeltuin' resp. zandbak om in te spelen.

Getting started

is een gebruikelijke stap om ergens te beginnen. Dat kan op de Raspberry Pi prima via de CLI = Command Line Interface.

RUST is een compiler taal. Dus de procedure is als volgt:

    - definieer een project = directory waar alles komt te staan m.b.t. het project. Deze heet op dit moment {grrs} = gras 

    - daarbinnen is een sub-directory met de naam{src}. Daar komt dus de ongecompileerde code.
    - draai vervolgens de compiler met het commando [cargo run] 

De compiler selecteert automatisch welke onderdelen (uit bilbiotheken) meegeladen moeten worden.

N.B. [Cargo run] veronderstelt dat de de source in {src} de naam "main.rs" heeft.

Nog een speciale functie in RUST is hier te zien.

Op~ en aanmerkingen m.b.t. het bestuderen van RUST

Er is veel documentatie en er zijn talloze tutorials. Moeilijk om te bepalen wat nu recent is en wat al verouderd. Verder verschilt het nogal per auteur hoe duidelijk e.e.a. wordt uitgelegd en ondersteund met voorbeelden. De volgende link lijkt erg veel vanuit de praktijk te zijn opgezet. Hier een inzicht in de ontwikkelingen van RUST; als web-ontwikkelingstool.

RUST directory structure

Inmiddels ben ik stukje verder gekomen met het onderzoek naar Rust. O.a. heb ik nu de plaats gevonden waar de libraries te vinden zijn. Dat is heel noodzakelijk. Immers is ook deze taal afhankelijk van de ontwikkelingen door derden. Er zijn inmiddels meer dan 50.000 van dergelijke onderdelen beschikbaar.

Idee├źn opslag met Eureka

Heb je dat ook wel eens? Je bent ergens mee bezig en ineens krijg je een idee. Dat wil je dan natuurlijk snel ergens noteren. Zodanig dat je het ook later weer kan terugvinden. Zo'n programmaatje is er dat ook nog eens door Rust wordt ondersteund.

Ik heb nu een github-repository met alleen een README-file

GUI m.b.v. Rust

Had ik voor het maken van een GUI onder Python de beschikking over de Guizero-library, er zijn er ook voor Rust. Update 2020-12-19: er is een omvangrijk document over de status van GUI-in-Rust. De conclusie is duidelijk, in ieder geval als je onder Windows wilt werken: voorlopig nog niet aan beginnen. De vraag is natuurlijk hoe het staat in de Linux-omgeving. Nog niet tegengekomen.