[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Rust



Mi avete incuriosito e, avendo oggi un pò di tempo, sono andato a vedere il portale del linguaggio rust.

In prima pagina c'è l'indicazione che il linguaggio previene "quasi tutti" gli error segfaults: ovvio quindi che prima o poi qualche errore segfaults continuerete a vederlo, o generato dal vostro codice e non intercettato dal compilatore o generato direttamente dal compilatore, anche se la loro frequenza andrà nel tempo a calare.

Vedo anche che è un linguaggio orientato a programmi soggetti a specifici vincoli di spazio (cioè occupazione di memoria, n.d.r.) e tempo (cioè di esecuzione entro determinati ambiti temporali predeterminati? n.d.r.), oltre che per la programmazione di driver e per la scrittura di codice a basso livello in genere (ma non saprei dire al momento quanto basso può essere questo livello).

Quello che non ho chiaro è:

- quali innovazioni strategiche apporta rust nel panorama dei linguaggi di programmazione?

Cobol e Fortran hanno permesso di programmare applicazioni commerciali e scientifiche usando linguaggi ad alto livello.

Il linguaggio C ha (quasi completamente) sollevato i programmatori dall'uso dell'Assembler per l'accesso diretto all'hardware e per scrivere sistemi operativi e applicazioni particolari (es. data-base, protocolli di telecomunicazione e chi più ne ha più ne metta).

Smalltalk a introdotto il paradigma a oggetti poi sfruttato da C++ e Java con i risultati che sono sotto gli occhi di tutti;

Java ha esteso i concetti di portabilità, sicurezza e riusabilità del codice tramite Jvm scritte per le varie architetture.

Anche Php, Python e Visual-Basic hanno una loro ragion d'essere negli ambiti in cui si propongono.

Una risposta al questa domanda è abbastanza importante perchè se si tratta semplicemente di "yet another compiled language" senza specifici obiettivi oltre quelli di avere un linguaggio un pò più semplice e con qualche errore di meno a runtime, non sono sicuro che l'investimento di tempo nel suo apprendimento sia superiore al valore che si può estrarre dalla sua conoscenza.

Personalmente, dopo aver programmato con molti linguaggi, non ho (per ora) molta voglia di addentrarmi in questo nuovo rust; però, se qualcuno si è fatto un'idea di come funziona e sulle innovazioni introdotte e non altrimenti perseguibili, o se conosce l'esistenza di una descrizione di rust ad alto livello (tipo quella su Smalltalk-80 pubblicata nell'agosto '81 su Byte), potrebbe essere di aiuto alla sua diffusione.

Luciano


Il 03/06/2015 17:12, onetmt ha scritto:
Il 03/06/2015 17:00, Gian Uberto Lauri ha scritto:
onetmt writes:
  > Il 03/06/2015 14:24, Gian Uberto Lauri ha scritto:
  > > onetmt writes:
  > >  > > 1) il compilatore tiene traccia della "vita" dei dati e in fase di
  > >  > > compilazione da errori se fai qualcosa di inconsistente (tipo usare
  > >  > > della memoria dopo averla liberata).
  > >  >
  > >  > E quindi niente piu' SIGSEV? E che gusto c'e' :D
  > >
  > > (mapcar
  > > 	(lambda (a)
  > > 	  (fai-qualcosa-su a))
  > > 	  lista))
  > >
  > > Sinceramente in C semplice e C++ non hai molte possibilità per farlo.
  >
  > Non e' difficile; basta dimenticare un malloc:

Non hai la programmazione funzionale e le "higher order functions" e
le closure (hai i puntatori a funzioni e le strutture, e come coi
linguaggi OO, puoi simulare le une e le altre, ma devi fare qualche
danza voodoo non alla portata di tutti).

Un divertimento più potente dell'aritmetica sui puntatori.

A cui chi scrive con C + gtk e' spesso costretto a cimentarsi.


  > > E comunque, mi spiace per te che non hai mai visto i SIGBUS...
  > >

A questo punto domandazza: cosa è necessario per avere un SIGBUS ? :)

Cosa e' necessario non lo so, so solo che per elimimarlo da un
piccolissimo modulo su 2.4.16 per un S3C2410 all'epoca ci ho perso il
sonno :P



Reply to: