Home > Blog
Data: August 23, 2026 Categorie: Programming Tag: programming dogs rust cani

Albero genealogico per cani

Rust

Proseguono i miei esperimenti in Rust, questa volta con il rifacimento di una vecchia app che avevo realizzato anni fa in PHP, ovvero la creazione di un albero genealogico per cani, a partire da un file Json, come quello mostrato qui sotto:

{
  "name": "Arcticice Qimmiq Arjalinerk (Phoenix)",
  "breeder": "Beverley Arseneau",
  "sire": {
    "name": "High Lonesomes Qimmiq Grizzly (Grizzly)",
    "breeder": "Shane Langlois",
    "sire": {
      "name": "Untamed Grizzly (ES283440)",
      "breeder": "Jo Kelly",
      "sire": {
        "name": "Jaden's Shawnee (Navajo)",
        "breeder": "Jackie and Dennis Prudden",
        "sire": null,
        "dam": null
      },
      "dam": {
        "name": "Samowaska's Atalik (Atalik)",
        "breeder": "Jacques Larochelle",
        "sire": null,
        "dam": null
      }
    },
    "dam": {
      "name": "High Lonesomes Derringer (Deri)",
      "breeder": "Jo Kelly",
      "sire": {
        "name": "Hudson II Of Churchill (Hudson)",
        "breeder": "Brian Ladoon",
        "sire": null,
        "dam": null
      },
      "dam": {
        "name": "Anuvik's Lonesome Princess (Princess)",
        "breeder": "Denice Vick",
        "sire": null,
        "dam": null
      }
    }
  },
  "dam": {
    "name": "High Lonesomes Arcticice Torch (Torch)",
    "breeder": "Shane Langlois",
    "sire": {
      "name": "High Lonesomes Qimmiq Nutka (Nutka)",
      "breeder": "Shane Langlois",
      "sire": {
        "name": "Untaimed Grizzly (ES283440)",
        "breeder": "Jo Kelly",
        "sire": null,
        "dam": null
      },
      "dam": {
        "name": "High Lonesomes Snowy River (River)",
        "breeder": "Jo Kelly",
        "sire": null,
        "dam": null
      }
    },
    "dam": {
      "name": "High Lonesome's Qimmiq Tiriaq (Tiriaq)",
      "breeder": "Shane Langlois",
      "sire": {
        "name": "High Lonesome's Hudson Legacy (Hudson)",
        "breeder": "Jo Kelly",
        "sire": null,
        "dam": null
      },
      "dam": {
        "name": "Shale of Mr. Churchill (Shale)",
        "breeder": "Brian Ladoon",
        "sire": null,
        "dam": null
      }
    }
  }
}

a partire dal quale viene generata questa immagine SVG. La mia impressione generale, usando Rust, è che online si dicono un sacco di stupidaggini sulla sua presunta complessità. E’ un linguaggio che richiede di padroneggiare vari concetti, ma una volta imparati i suoi fondamenti è uno strumento potentissimo e quando si compila sei davvero sicuro che il programma funzioni.

Ovviamente se stai facendo una cosa minimamente complicata, come questa, non è che magicamente Rust ti risolve gli errori semantici o il cattivo algoritmo implementato, ma sicuramente ti impedisce un sacco di sviste che in altri linguaggi (vedi Python per esempio) sarebbero un’enorme fonte di errori.

Sei interessato ad una consulenza su Rust? Non esitare a contattarmi.

Commenti

comments powered by Disqus