Programmiersprache Rust

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Antworten
Benutzeravatar
fliegermichl
Lazarusforum e. V.
Beiträge: 1859
Registriert: Do 9. Jun 2011, 09:42
OS, Lazarus, FPC: Lazarus Fixes FPC Stable
CPU-Target: 32/64Bit
Wohnort: Echzell

Programmiersprache Rust

Beitrag von fliegermichl »

Ich bin eher zufällig über das 3D CAD Programm SolidCraft gestolpert, welches angeblich innerhalb von 11 Tagen mit Hilfe von KI in der Programmiersprache Rust programmiert worden sein soll.

Der Funktionsumfang und auch die Bedienung sind stark an Autodesk Fusion angelehnt.
Es kann Standalone auf Windows, Linux und Mac sowie direkt im Browser verwendet werden.

Dann habe ich mir mal ein Tutorial von Rust angeschaut, in dem eine Abfrage an openweathermap.org durchgeführt wird und es die Temperatur in einer einzugebenden Stadt anzeigt.
Das gleiche habe ich dann auch mal mit Lazarus umgesetzt.
Die verwendete Unit env.pas exportiert lediglich die Konstante API_KEY, welche man kostenlos bei openweathermap.org bekommt.

Beim Anblick des Rust Codes drehen sich mir die Fußnägel hoch.

Code: Alles auswählen

mod env;
use reqwest::blocking::{Response, get};
use serde_json::{Value, from_str};
use std::io;

fn main() {
    let api_key=env::API_KEY;
    let mut city:String = String::new();
    println!("Bitte gib eine Stadt ein:");
    
    io::stdin()
        .read_line(&mut city)
        .expect("Fehler beim Lesen der Eingabe");    
    
    let url = format!("http://api.openweathermap.org/data/2.5/weather?q={}&appid={}", city, api_key);
    let response:Response = get(url).unwrap();
    let response_text: String = response.text().unwrap();
    let json: serde_json::Value = serde_json::from_str(&response_text).expect("Fehler bei Json parsen");
    let temp_celsius: f64 = json["main"]["temp"].as_f64().unwrap()-273.15;
    println!("Hier ist das Wetter von {}", city);
    println!("Aktuelle Temperatur: {}° Celsius", temp_celsius.round());
}
Hier das gleiche Programm für den FPC

Code: Alles auswählen

program fpc_hello;
uses fphttpclient,
     fpjson,
     jsonparser,
     env,
     sysutils;
var api_key : string = env.API_KEY;
    url : string = 'http://api.openweathermap.org/data/2.5/weather?q=%s&appid=%s';
    city : string;
    http : TFPHTTPClient;
    json : TJSonData;
    jp : TJSonParser;
    Result : string;
    temp : Double;
begin
  Write('Gib bitte eine Stadt ein:');
  ReadLn(city);
  http := TFPHTTPClient.Create(nil);
  Result := http.Get(Format(url, [city, api_key]));
  jp := TJSonParser.Create(Result);
  json := jp.Parse;
  temp := json.FindPath('main').FindPath('temp').asFloat - 273.15;
  writeln(Format('Hier ist das Wetter in %s', [city]));
  writeln(Format('Die Temperatur beträgt %g° Celsius', [temp]));
  ReadLn;
  http.free;
  jp.Free;
end.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 7464
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Programmiersprache Rust

Beitrag von af0815 »

fliegermichl hat geschrieben: Di 27. Okt 2026, 14:41 Beim Anblick des Rust Codes drehen sich mir die Fußnägel hoch.
Was passiert dann bei Kontakt mit C und C++? SCNR

Für den ESP32 gibts bei mir aktuell nichts besseres.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
Jorg3000
Lazarusforum e. V.
Beiträge: 476
Registriert: So 10. Okt 2021, 10:24
OS, Lazarus, FPC: Win64
Wohnort: NRW

Re: Programmiersprache Rust

Beitrag von Jorg3000 »

fliegermichl hat geschrieben: Di 27. Okt 2026, 14:41 Beim Anblick des Rust Codes drehen sich mir die Fußnägel hoch.
Schau dir mal in Rust Funktionsaufrufe mit mehreren Parametern an. Es wird einem schwindelig und dann dreht man sich auf links.

Vor ein paar Monaten hatte ich Programmiersprachen-Wechselphantasien - und war bei Rust gelandet.
Da dachte ich: Och, mit Hilfe von KI-Erklärungen komme ich da schon rein. Ein neuer Lebensabschnitt beginnt. Ich bin jung, mir steht die ganze Welt offen.

Nach zwei Wochen war ich wieder bei Lazarus. Alte Liebe rostet nicht. Ich programmiere jetzt wieder Pascal von Hand - und bin zufrieden.
Grüße, Jörg

Antworten