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: 7465
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

Benutzeravatar
Zvoni
Beiträge: 777
Registriert: Fr 5. Jul 2024, 08:26
OS, Lazarus, FPC: Windoof 11 Pro (Laz4.3/FPC3.2.3)
CPU-Target: 64Bit
Wohnort: BW

Re: Programmiersprache Rust

Beitrag von Zvoni »

fliegermichl hat geschrieben: Di 27. Okt 2026, 14:41 Beim Anblick des Rust Codes drehen sich mir die Fußnägel hoch.
Ja, pfui deibel, wie wir in Südbaden sagen....
use reqwest::blocking::{Response, get};
NOT YOUR ERNST?????

und ich dachte, C/C++ hätte ne grässliche Syntax.....
Wenn ich nur das kleine Code-Schnipsel oben lese fang ich ja schon an zu schielen.....
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.

paweld
Beiträge: 132
Registriert: So 11. Jun 2023, 16:01
OS, Lazarus, FPC: Lazarus trunk, FPC fixes

Re: Programmiersprache Rust

Beitrag von paweld »

Vor einiger Zeit habe ich eine einfache Unit für die Anbindung an OpenWeatherAPI (einschließlich des Abrufs von Symbolen) erstellt: https://github.com/paweld/miscellaneous ... aether_api
Grüße / Pozdrawiam
paweld

hum4n0id3
Beiträge: 390
Registriert: So 5. Mai 2019, 15:23

Re: Programmiersprache Rust

Beitrag von hum4n0id3 »

Also ich mag die C-Syntax lieber, weil ich damit viel öfter in Berührung komme :P

Benutzeravatar
theo
Beiträge: 11416
Registriert: Mo 11. Sep 2006, 19:01

Re: Programmiersprache Rust

Beitrag von theo »

Zvoni hat geschrieben: Mi 28. Okt 2026, 14:18 use reqwest::blocking::{Response, get};
NOT YOUR ERNST?????
Doch, it heisst so.
https://medium.com/@chetanreddyk394/exp ... 1c548e69af

Benutzeravatar
Zvoni
Beiträge: 777
Registriert: Fr 5. Jul 2024, 08:26
OS, Lazarus, FPC: Windoof 11 Pro (Laz4.3/FPC3.2.3)
CPU-Target: 64Bit
Wohnort: BW

Re: Programmiersprache Rust

Beitrag von Zvoni »

theo hat geschrieben: Do 29. Okt 2026, 12:59
Zvoni hat geschrieben: Mi 28. Okt 2026, 14:18 use reqwest::blocking::{Response, get};
NOT YOUR ERNST?????
Doch, it heisst so.
https://medium.com/@chetanreddyk394/exp ... 1c548e69af
Tatsächlich.....

Alter Schwede..... happy Typo's sag ich nur........
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 7465
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 »

Zvoni hat geschrieben: Do 29. Okt 2026, 13:28 Tatsächlich.....

Alter Schwede..... happy Typo's sag ich nur........
Sieht eher nach Absicht aus. Der Begriff "request" war besetzt, also was Neues suchen.
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Warf
Beiträge: 2335
Registriert: Di 23. Sep 2014, 17:46
OS, Lazarus, FPC: Win10 | Linux
CPU-Target: x86_64

Re: Programmiersprache Rust

Beitrag von Warf »

Naja Rust ist keine schöne Sprache, ich hab auch noch nie einen rust Entwickler getroffen der das behauptet.

Aber am Ende des Tages gewöhnt man sich an alles, die frage ist nicht ob die Sprache schön anzusehen ist wenn man nichts versteht. Nach dieser Metrik wäre Französisch besser als deutsch weil für menschen die beide sprachen nicht verstehen sich französisch besser anhört...

Am ende ist syntax nur on top, die frage ist was die Sprache kann. Und Rust ist mit seinem borrow checker sehr einzigartig. Selbst darüber hinaus hat rust sehr viele Features auf die manche Entwickler schwören.
Mir persönlich ist die Sprache überladen, sie haben im grunde jedes feature was in anderen Sprache cool ist eingebaut ohne ein kohärentes design zu haben. Aber gleichzeitig macht es die Sprache auch unfassbar mächtig

Antworten