-
-
Re: [quack] A first-person engine in 265 linesScritto da: ::1
> http://www.playfuljs.com/a-first-person-engine-in-...
Altg&Calzedonya talmente al tappeto che potrebbero rifornire tutto il Marocco
`"la realta' non e' cosi' terrificante come vogliono farti credere" - Giambo ` - Wakko che cita Giambo-
Re: [quack] A first-person engine in 265 linesScritto daaltgutente che non utieneil 2014-06-04 12:37:22.0 alle 2014-06-04 12:37:22.0Trollate totali: 11540> > http://www.playfuljs.com/a-first-person-engine-in-...

>
> Altg&Calzedonya talmente al tappeto che potrebbero rifornire tutto il Marocco
Vedo, vedo, d'altronde per arrivare a Cydonia gli mancano solo:
- arbitrary-angled polygons,
- six degrees of freedom,
- pixel-perfect meshing,
- supersampling,
- per-pixel phong shading model,
- depth buffering,
- stencil buffering,
- shadow volumes,
- penumbra modulation,
e l'importazione di modelli direttamente da Blender e indirettamente da Sketchup, se non mi sono scordato qualche altra inezia.-
Re: [quack] A first-person engine in 265 linesScritto da: altg
> > > http://www.playfuljs.com/a-first-person-engine-in-...
> >
> > Altg&Calzedonya talmente al tappeto che potrebbero rifornire tutto il Marocco
>
> Vedo, vedo, d'altronde per arrivare a Cydonia gli mancano solo:
>
> - Migliaia di righe di codice in piu'-
> - Staticita'
> - ~1fps
Fix'd
`"la realta' non e' cosi' terrificante come vogliono farti credere" - Giambo ` - Wakko che cita Giambo-
Re: [quack] A first-person engine in 265 linesScritto daaltgutente che non utieneil 2014-06-04 14:00:04.0 alle 2014-06-04 14:00:04.0Trollate totali: 11540> > > > http://www.playfuljs.com/a-first-person-engine-in-...

> > >
> > > Altg&Calzedonya talmente al tappeto che potrebbero rifornire tutto il Marocco
> >
> > Vedo, vedo, d'altronde per arrivare a Cydonia gli mancano solo:
> >
> > - Migliaia di righe di codice in piu'-
> > - Staticita'
> > - ~1fps
>
> Fix'd
Il primo esperimento chiamato cydonia faceva rendering in tempo reale.
Ricordi, vero?http://anynowhere.com/personal/wirez/wirez.html

Poi ho provato three.js per vedere cosa sapeva fare WebGL e infine ho deciso che niente di tutto quello mi sembrava conveniente. Dietro alla scelta c'e` una fraccata di considerazioni, ma evidentemente vanno al di la` delle tue capacita` di comprensione.
-
Re: [quack] A first-person engine in 265 linesScritto da: altg
> > > > > http://www.playfuljs.com/a-first-person-engine-in-...
> > > >
> > > > Altg&Calzedonya talmente al tappeto che potrebbero rifornire tutto il Marocco
> > >
> > > Vedo, vedo, d'altronde per arrivare a Cydonia gli mancano solo:
> > >
> > > - Migliaia di righe di codice in piu'-
> > > - Staticita'
> > > - ~1fps
> >
> > Fix'd
>
> Il primo esperimento chiamato cydonia faceva rendering in tempo reale.
Certo, gli mancavano tutte le ficiur che hai elencato
!
> Dietro alla scelta c'e` una fraccata di considerazioni, ma evidentemente vanno al di la` delle tue capacita` di comprensione.
Non ci capisco un cazzo, lo faccio solo per il Dio Del Trolling
`"la realta' non e' cosi' terrificante come vogliono farti credere" - Giambo ` - Wakko che cita Giambo-
Re: [quack] A first-person engine in 265 linesScritto dail 2014-06-04 14:07:11.0 alle 2014-06-04 14:07:11.0Trollate totali: 9> Non ci capisco un cazzo, lo faccio solo per il Dio Del Trolling

Bravo!
-
Re: [quack] A first-person engine in 265 linesScritto daaltgutente che non utieneil 2014-06-04 14:14:45.0 alle 2014-06-04 14:14:45.0Trollate totali: 11540> > > > > > http://www.playfuljs.com/a-first-person-engine-in-...

> > > > >
> > > > > Altg&Calzedonya talmente al tappeto che potrebbero rifornire tutto il Marocco
> > > >
> > > > Vedo, vedo, d'altronde per arrivare a Cydonia gli mancano solo:
> > > >
> > > > - Migliaia di righe di codice in piu'-
> > > > - Staticita'
> > > > - ~1fps
> > >
> > > Fix'd
> >
> > Il primo esperimento chiamato cydonia faceva rendering in tempo reale.
>
> Certo, gli mancavano tutte le ficiur che hai elencato
!
Ni. Certe ficciurs non possono girare in tempo reale, ma volendo se ne potrebbe confezionare una versione semplificata e meno precisa che potrebbe girare in tempo reale mantenendo gran parte delle caratteristiche attuali e restando difficilmente distinguibile, a occhio, dalla versione "full". Il vero problema insuperabile e` la complessita` dei modelli. Con una scena molto molto semplificata, anche l'attuale cydonia potrebbe girare in tempo reale, ma per lo scopo che ho in mente non avrebbe senso.
> > Dietro alla scelta c'e` una fraccata di considerazioni, ma evidentemente vanno al di la` delle tue capacita` di comprensione.
>
> Non ci capisco un cazzo, lo faccio solo per il Dio Del Trolling
Credi che non lo sappia? io ti vengo dietro cosi` ho la scusa di parlare di me, in nome del Dio dell'Egocentrismo.
-
Re: [quack] A first-person engine in 265 linesScritto da: altg
> > > Dietro alla scelta c'e` una fraccata di considerazioni, ma evidentemente vanno al di la` delle tue capacita` di comprensione.
> >
> > Non ci capisco un cazzo, lo faccio solo per il Dio Del Trolling
>
> Credi che non lo sappia?
La risposta ampia e articolata che hai dato sopra mi fa sospettare che non lo sai
> io ti vengo dietro cosi` ho la scusa di parlare di me, in nome del Dio dell'Egocentrismo.
Balle&ROSIK™, ho trollato il Pisano
`"la realta' non e' cosi' terrificante come vogliono farti credere" - Giambo ` - Wakko che cita Giambo
-
-
-
-
-
-
-
Re: [quack] A first-person engine in 265 linesScritto daaltgutente che non utieneil 2014-06-04 12:27:26.0 alle 2014-06-04 12:27:26.0Trollate totali: 11540> http://www.playfuljs.com/a-first-person-engine-in-...

Visto che si poteva fare anche senza tutto l'accrocchio di quack? Il JS su un processore moderno e` infatti piu` veloce dell'assembly di un 486 DX dei primi anni '90, il che apre le possibilita` a una serie di giochini retro` a sviluppo indy. Bei tempi, bei bei tempi.
(semi-cit)
Io ultimamente faccio il tifo per questo sviluppo interamente HTML5 (lo so, all'inizio ero scettico, ma solo gl'imbecilli non cambiano opinione) anche perche` potrebbe col tempo fagocitare i vari developer kit incompatibili tra loro degli attuali dispositivi a base Apple, Android, Microsoft, quel-che-sara`. Non ho mica voglia d'impararli tutti, e in fondo non ho piu` voglia neanche di dedicarmi a Linoleum.-
Re: [quack] A first-person engine in 265 linesScritto da: altg
>
> Visto che si poteva fare anche senza tutto l'accrocchio di quack? Il JS su un processore moderno e` infatti piu` veloce dell'assembly di un 486 DX dei primi anni '90, il che apre le possibilita` a una serie di giochini retro` a sviluppo indy. Bei tempi, bei bei tempi.
(semi-cit)
>
> Io ultimamente faccio il tifo per questo sviluppo interamente HTML5 (lo so, all'inizio ero scettico, ma solo gl'imbecilli non cambiano opinione) anche perche` potrebbe col tempo fagocitare i vari developer kit incompatibili tra loro degli attuali dispositivi a base Apple, Android, Microsoft, quel-che-sara`. Non ho mica voglia d'impararli tutti, e in fondo non ho piu` voglia neanche di dedicarmi a Linoleum.
Quando ti ho chiesto cosa ne pensavi di mozilla rust non mi hai più risposto. Lo fai ora?Young professional woman and busy mom.-
Re: [quack] A first-person engine in 265 linesScritto daaltgutente che non utieneil 2014-06-04 12:43:45.0 alle 2014-06-04 12:43:45.0Trollate totali: 11540> >
> > Visto che si poteva fare anche senza tutto l'accrocchio di quack? Il JS su un processore moderno e` infatti piu` veloce dell'assembly di un 486 DX dei primi anni '90, il che apre le possibilita` a una serie di giochini retro` a sviluppo indy. Bei tempi, bei bei tempi.
(semi-cit)
> >
> > Io ultimamente faccio il tifo per questo sviluppo interamente HTML5 (lo so, all'inizio ero scettico, ma solo gl'imbecilli non cambiano opinione) anche perche` potrebbe col tempo fagocitare i vari developer kit incompatibili tra loro degli attuali dispositivi a base Apple, Android, Microsoft, quel-che-sara`. Non ho mica voglia d'impararli tutti, e in fondo non ho piu` voglia neanche di dedicarmi a Linoleum.
>
> Quando ti ho chiesto cosa ne pensavi di mozilla rust non mi hai più risposto. Lo fai ora?
Neanche mi ricordavo che me l'avessi chiesto.
Comunque...Appeared in 2012 Preview release 0.10[1] / 3 April 2014; 61 days ago
non ti sembra troppo acerbo?
E se poi te ne innamori ma non si afferma?
Io aspetterei a vedere che ne viene fuori, ecco.
A dirla tutta, io ormai aspetto che mezzo mondo usi qualcosa, poi lo uso anch'io.
-
Re: [quack] A first-person engine in 265 linesScritto daaltgutente che non utieneil 2014-06-04 12:50:29.0 alle 2014-06-04 12:50:29.0Trollate totali: 11540> > > Visto che si poteva fare anche senza tutto l'accrocchio di quack? Il JS su un processore moderno e` infatti piu` veloce dell'assembly di un 486 DX dei primi anni '90, il che apre le possibilita` a una serie di giochini retro` a sviluppo indy. Bei tempi, bei bei tempi.
(semi-cit)
> > >
> > > Io ultimamente faccio il tifo per questo sviluppo interamente HTML5 (lo so, all'inizio ero scettico, ma solo gl'imbecilli non cambiano opinione) anche perche` potrebbe col tempo fagocitare i vari developer kit incompatibili tra loro degli attuali dispositivi a base Apple, Android, Microsoft, quel-che-sara`. Non ho mica voglia d'impararli tutti, e in fondo non ho piu` voglia neanche di dedicarmi a Linoleum.
> >
> > Quando ti ho chiesto cosa ne pensavi di mozilla rust non mi hai più risposto. Lo fai ora?
>
> Neanche mi ricordavo che me l'avessi chiesto.
> Comunque...
>
>> Appeared in 2012 > Preview release 0.10[1] / 3 April 2014; 61 days ago >
>
> non ti sembra troppo acerbo?
> E se poi te ne innamori ma non si afferma?
> Io aspetterei a vedere che ne viene fuori, ecco.
> A dirla tutta, io ormai aspetto che mezzo mondo usi qualcosa, poi lo uso anch'io.
Vedi cosa intendo per "acerbo"?
Questo sta facendo il percorso a scossoni di Linoleum.
Classes were also removed, replaced by a combination of implementations and structured types.
Cioe`, ha cambiato interamente object model tra una versione e l'altra.
Che cavolo ci vorresti fare finche` la sua impostazione e` cosi` volatile?
-
Re: [quack] A first-person engine in 265 linesScritto da: altg
> > > Quando ti ho chiesto cosa ne pensavi di mozilla rust non mi hai più risposto. Lo fai ora?
> >
> > Neanche mi ricordavo che me l'avessi chiesto.
> > Comunque...
> >
> >> > Appeared in 2012 > > Preview release 0.10[1] / 3 April 2014; 61 days ago > >
> >
> > non ti sembra troppo acerbo?
> > E se poi te ne innamori ma non si afferma?
> > Io aspetterei a vedere che ne viene fuori, ecco.
> > A dirla tutta, io ormai aspetto che mezzo mondo usi qualcosa, poi lo uso anch'io.
>
> Vedi cosa intendo per "acerbo"?
> Questo sta facendo il percorso a scossoni di Linoleum.
>
> Classes were also removed, replaced by a combination of implementations and structured types.
>
> Cioe`, ha cambiato interamente object model tra una versione e l'altra.
> Che cavolo ci vorresti fare finche` la sua impostazione e` cosi` volatile?
Stai usando nodejs che è anche lui alla versione 0.10.x
Rust nasce come sostituto del c++, aggiungendo strati di verifiche statiche che intercettano a compile time un sacco di errori con messaggi significativi (hai mai visto un errore di compilazione c++ con i templates? io si
) e alcuni vantaggi come multithreading efficiente (threading m:n), type system forte (se non sbaglio è il modello di scala a sua volta ispirato a haskell), l'ownership dei puntatori (che ne determina il lifetime, e di conseguenza intercetta i memory leak a compile time), costrutti sintattici utili (pattern matching, return implicito dell'ultima espressione, oltre agli ormai immancabili closures, for-each, ...).
Lo sto osservando da almeno un annetto, (leggo spesso i This week in Rust che trovi qui
) ho seguito il tutorial sul sito per la versione 0.8 e mi sono promesso di riaffrontarlo di nuovo per vedere come sta cambiando; quello che stanno affrontando ora è l'ultimo set di modifiche alla sintassi prima di andare verso la stabilizzazione e il rilascio della versione 1.0 di linguaggio e runtime library prevista per l'inizio del prossimo anno.
I suoi principali concorrenti sono D della digital mars e Go di google, entrambi garbage collected; mi interessa capire se può diventare il linguaggio general purpouse che copre più use-case senza troppa fatica da aggiungere al mio bagaglio di conoscenze; mi sembra un linguaggio con buone performances, sintassi e compilatore amichevoli, un buon seguito di persone, nessuna pressione o interessi concorrenti alla realizzazione del linguaggio.Young professional woman and busy mom.-
Re: [quack] A first-person engine in 265 linesScritto daaltgutente che non utieneil 2014-06-04 14:43:59.0 alle 2014-06-04 14:43:59.0Trollate totali: 11540> > Vedi cosa intendo per "acerbo"?
> > Questo sta facendo il percorso a scossoni di Linoleum.
> >
> > Classes were also removed, replaced by a combination of implementations and structured types.
> >
> > Cioe`, ha cambiato interamente object model tra una versione e l'altra.
> > Che cavolo ci vorresti fare finche` la sua impostazione e` cosi` volatile?
>
> Stai usando nodejs che è anche lui alla versione 0.10.x
Colpa tua!
Comunque la tentazione era troppo forte.
> Rust nasce come sostituto del c++, aggiungendo strati di verifiche statiche che intercettano a compile time un sacco di errori con messaggi significativi (hai mai visto un errore di compilazione c++ con i templates? io si
) e alcuni vantaggi come multithreading efficiente (threading m:n), type system forte (se non sbaglio è il modello di scala a sua volta ispirato a haskell),
La wiki dice che e` anche "inferred"?
Mi sono chiesto en passand come faccia ad essere forte ed inferred insieme...
> l'ownership dei puntatori (che ne determina il lifetime, e di conseguenza intercetta i memory leak a compile time), costrutti sintattici utili (pattern matching, return implicito dell'ultima espressione, oltre agli ormai immancabili closures, for-each, ...).
In pratica un C antisdrucciolo. Mah, la roba troppo managed mi rende perplesso: piu` cose si lasciano fare al compilatore, piu` cose vengono fatte in maniera non ponderata perche` il compilatore non capisce qual'e` il ruolo, in pratica, di quel che sta compilando. Per come l'ho sempre vista io, piu` aspetti del run-time allontani dal controllo del programmatore, piu` colpisci la performance. Molti, oggi, forse non si rendono conto del problema perche` evitano il basso livello come la peste, confrontano performances di linguaggi diversi ma tutti piu` o meno molto al di sopra dell'assembly, e non vedono, in pratica, quel che perdono.
> Lo sto osservando da almeno un annetto, (leggo spesso i This week in Rust che trovi qui
) ho seguito il tutorial sul sito per la versione 0.8 e mi sono promesso di riaffrontarlo di nuovo per vedere come sta cambiando; quello che stanno affrontando ora è l'ultimo set di modifiche alla sintassi prima di andare verso la stabilizzazione e il rilascio della versione 1.0 di linguaggio e runtime library prevista per l'inizio del prossimo anno.
Hmmmmrrr... dicono tutti cosi`. Aspetterei che ci arrivino e poi lascerei comunque passare un po' di tempo affinche` dia prova di essersi davvero stabilizzato.
> I suoi principali concorrenti sono D della digital mars e Go di google, entrambi garbage collected; mi interessa capire se può diventare il linguaggio general purpouse che copre più use-case senza troppa fatica da aggiungere al mio bagaglio di conoscenze; mi sembra un linguaggio con buone performances, sintassi e compilatore amichevoli, un buon seguito di persone, nessuna pressione o interessi concorrenti alla realizzazione del linguaggio.
Per le buone performances, nella mia idea, bisogna quanto meno avere accesso diretto ai registri, tanto per dirne una.
e di certo costrutti come il ritorno implicito, che impacchettano l'operazione di ritorno di un valore e ne passano la gestione al compilatore, non aiutano. Fai conto che tra Lino 2 e Lino 3 l'istruzione di ritorno e` stata PERSA in favore della performance. Ti faccio un esempio:a = b; a + c; return [register] a;
Somma B e C e poi ritorna il registro A.
Il compilatore pero` la tradurrebbe in:mov eax, ebx add eax, ecx mov ebp, eax ret
Ma se in Lino 3 scrivi:% = b; % + c; leave;
ottieni:mov ebp, ebx add ebp, ecx ret
che sono tre istruzioni, non quattro. Questo perche` come programmatore SAI che ritornerai B + C e usi direttamente il registro dedicato al valore di ritorno come accumulatore. Ovviamente un caso del genere puo` essere considerato da un compilatore sofisticato, ma quando cominci a prendere in considerazione fattori un po' piu` complessi, il compilatore dovrebbe capire cosa sta facendo in relazione a tutto il resto del codice di una funzione da ottimizzare. Piu` roba implicita hai, piu` perdi occasioni (o le complichi a dismisura) per ottimizzare. Per questo penso che linguaggi come Rust possano diventare piu` comodi del C++, ma non significativamente piu` performanti. Pero` se valuti la comodita` e una velocita` decente senza cercare il massimo, fai bene a seguirlo, io non ti seguo e non lo seguo perche` sono un vecchio che vive nel passato e che e` fissato con gli estremi: o vado in javascript e me ne frego della performance ma favorisco qualcosa che esegue out of the box vista l'onnipresenza dei browser, oppure il mio ideale rimane qualcosa come Linoleum. Qualcosa che si mette in mezzo il meno possibile tra te e il bare metal.-
Re: [quack] A first-person engine in 265 linesScritto da: altg
> > > Vedi cosa intendo per "acerbo"?
> > > Questo sta facendo il percorso a scossoni di Linoleum.
> > >
> > > Classes were also removed, replaced by a combination of implementations and structured types.
> > >
> > > Cioe`, ha cambiato interamente object model tra una versione e l'altra.
> > > Che cavolo ci vorresti fare finche` la sua impostazione e` cosi` volatile?
> >
> > Stai usando nodejs che è anche lui alla versione 0.10.x
>
> Colpa tua!
> Comunque la tentazione era troppo forte.
>
> > Rust nasce come sostituto del c++, aggiungendo strati di verifiche statiche che intercettano a compile time un sacco di errori con messaggi significativi (hai mai visto un errore di compilazione c++ con i templates? io si
) e alcuni vantaggi come multithreading efficiente (threading m:n), type system forte (se non sbaglio è il modello di scala a sua volta ispirato a haskell),
>
> La wiki dice che e` anche "inferred"?
> Mi sono chiesto en passand come faccia ad essere forte ed inferred insieme...
Nel senso che il tipo delle variabili è sempre chiaro, esplicitamente o dedotto che sia; anche haskell ha un type system considerato tra i più forti (non puoi castare niente con niente, anche le conversioni di primitivi sono esplicite), ma ha la type inference. Quando una espressione è dubbia viene dedotto all'ultimo momento il suo tipo.
> > l'ownership dei puntatori (che ne determina il lifetime, e di conseguenza intercetta i memory leak a compile time), costrutti sintattici utili (pattern matching, return implicito dell'ultima espressione, oltre agli ormai immancabili closures, for-each, ...).
>
> In pratica un C antisdrucciolo. Mah, la roba troppo managed mi rende perplesso: piu` cose si lasciano fare al compilatore, piu` cose vengono fatte in maniera non ponderata perche` il compilatore non capisce qual'e` il ruolo, in pratica, di quel che sta compilando. Per come l'ho sempre vista io, piu` aspetti del run-time allontani dal controllo del programmatore, piu` colpisci la performance. Molti, oggi, forse non si rendono conto del problema perche` evitano il basso livello come la peste, confrontano performances di linguaggi diversi ma tutti piu` o meno molto al di sopra dell'assembly, e non vedono, in pratica, quel che perdono.
Il C è un compromesso già di suo, per buone performances intendo vicine a C/C++, in generale è quasi sempre sufficiente che produca codice nativo e non giri in una virtual machine per stare in quella fascia (ci sono eccezioni, ma generalmente è così).
Rust ha come target di compilazione llvm. Pensa che se lino fosse stato maturo avrebbe potuto essere là.
> > Lo sto osservando da almeno un annetto, (leggo spesso i This week in Rust che trovi qui
) ho seguito il tutorial sul sito per la versione 0.8 e mi sono promesso di riaffrontarlo di nuovo per vedere come sta cambiando; quello che stanno affrontando ora è l'ultimo set di modifiche alla sintassi prima di andare verso la stabilizzazione e il rilascio della versione 1.0 di linguaggio e runtime library prevista per l'inizio del prossimo anno.
>
> Hmmmmrrr... dicono tutti cosi`. Aspetterei che ci arrivino e poi lascerei comunque passare un po' di tempo affinche` dia prova di essersi davvero stabilizzato.
>
> > I suoi principali concorrenti sono D della digital mars e Go di google, entrambi garbage collected; mi interessa capire se può diventare il linguaggio general purpouse che copre più use-case senza troppa fatica da aggiungere al mio bagaglio di conoscenze; mi sembra un linguaggio con buone performances, sintassi e compilatore amichevoli, un buon seguito di persone, nessuna pressione o interessi concorrenti alla realizzazione del linguaggio.
>
> Per le buone performances, nella mia idea, bisogna quanto meno avere accesso diretto ai registri, tanto per dirne una.
>
> e di certo costrutti come il ritorno implicito, che impacchettano l'operazione di ritorno di un valore e ne passano la gestione al compilatore, non aiutano. Fai conto che tra Lino 2 e Lino 3 l'istruzione di ritorno e` stata PERSA in favore della performance. Ti faccio un esempio:
>
>> a = b; > a + c; > return [register] a; >
>
> Somma B e C e poi ritorna il registro A.
> Il compilatore pero` la tradurrebbe in:
>
>> mov eax, ebx > add eax, ecx > mov ebp, eax > ret >
>
> Ma se in Lino 3 scrivi:
>
>> % = b; > % + c; > leave; >
>
> ottieni:
>
>> mov ebp, ebx > add ebp, ecx > ret >
>
> che sono tre istruzioni, non quattro. Questo perche` come programmatore SAI che ritornerai B + C e usi direttamente il registro dedicato al valore di ritorno come accumulatore. Ovviamente un caso del genere puo` essere considerato da un compilatore sofisticato, ma quando cominci a prendere in considerazione fattori un po' piu` complessi, il compilatore dovrebbe capire cosa sta facendo in relazione a tutto il resto del codice di una funzione da ottimizzare. Piu` roba implicita hai, piu` perdi occasioni (o le complichi a dismisura) per ottimizzare. Per questo penso che linguaggi come Rust possano diventare piu` comodi del C++, ma non significativamente piu` performanti. Pero` se valuti la comodita` e una velocita` decente senza cercare il massimo, fai bene a seguirlo, io non ti seguo e non lo seguo perche` sono un vecchio che vive nel passato e che e` fissato con gli estremi: o vado in javascript e me ne frego della performance ma favorisco qualcosa che esegue out of the box vista l'onnipresenza dei browser, oppure il mio ideale rimane qualcosa come Linoleum. Qualcosa che si mette in mezzo il meno possibile tra te e il bare metal.
Non scrivere 3 istruzioni per fare 1 + 1 è il tipo di compromesso che sembra ragionevole prendere per molti.Young professional woman and busy mom.-
Re: [quack] A first-person engine in 265 linesScritto daaltgutente che non utieneil 2014-06-04 20:49:08.0 alle 2014-06-04 20:49:08.0Trollate totali: 11540> > > > Vedi cosa intendo per "acerbo"?
> > > > Questo sta facendo il percorso a scossoni di Linoleum.
> > > >
> > > > Classes were also removed, replaced by a combination of implementations and structured types.
> > > >
> > > > Cioe`, ha cambiato interamente object model tra una versione e l'altra.
> > > > Che cavolo ci vorresti fare finche` la sua impostazione e` cosi` volatile?
> > >
> > > Stai usando nodejs che è anche lui alla versione 0.10.x
> >
> > Colpa tua!
> > Comunque la tentazione era troppo forte.
> >
> > > Rust nasce come sostituto del c++, aggiungendo strati di verifiche statiche che intercettano a compile time un sacco di errori con messaggi significativi (hai mai visto un errore di compilazione c++ con i templates? io si
) e alcuni vantaggi come multithreading efficiente (threading m:n), type system forte (se non sbaglio è il modello di scala a sua volta ispirato a haskell),
> >
> > La wiki dice che e` anche "inferred"?
> > Mi sono chiesto en passand come faccia ad essere forte ed inferred insieme...
>
> Nel senso che il tipo delle variabili è sempre chiaro, esplicitamente o dedotto che sia; anche haskell ha un type system considerato tra i più forti (non puoi castare niente con niente, anche le conversioni di primitivi sono esplicite), ma ha la type inference. Quando una espressione è dubbia viene dedotto all'ultimo momento il suo tipo.
Ah, interessante.
Boh. Personalmente prediligo l'untyped o lo strong in tutti i casi.
Sono un tipo che pensa in bianco e nero.
> > > l'ownership dei puntatori (che ne determina il lifetime, e di conseguenza intercetta i memory leak a compile time), costrutti sintattici utili (pattern matching, return implicito dell'ultima espressione, oltre agli ormai immancabili closures, for-each, ...).
> >
> > In pratica un C antisdrucciolo. Mah, la roba troppo managed mi rende perplesso: piu` cose si lasciano fare al compilatore, piu` cose vengono fatte in maniera non ponderata perche` il compilatore non capisce qual'e` il ruolo, in pratica, di quel che sta compilando. Per come l'ho sempre vista io, piu` aspetti del run-time allontani dal controllo del programmatore, piu` colpisci la performance. Molti, oggi, forse non si rendono conto del problema perche` evitano il basso livello come la peste, confrontano performances di linguaggi diversi ma tutti piu` o meno molto al di sopra dell'assembly, e non vedono, in pratica, quel che perdono.
>
> Il C è un compromesso già di suo, per buone performances intendo vicine a C/C++, in generale è quasi sempre sufficiente che produca codice nativo e non giri in una virtual machine per stare in quella fascia (ci sono eccezioni, ma generalmente è così).
Se per "stare in quella fascia" vanno bene anche perdite di performances spesso tra il 200 e il 300 percento, allora basta.
> Rust ha come target di compilazione llvm. Pensa che se lino fosse stato maturo avrebbe potuto essere là.
Non so, non e` stato pensato per quello.
E` stato pensato per essere un intermediate language leggibile e gestibile.
ehm... vabbe', da me almeno.
> > > Lo sto osservando da almeno un annetto, (leggo spesso i This week in Rust che trovi qui
) ho seguito il tutorial sul sito per la versione 0.8 e mi sono promesso di riaffrontarlo di nuovo per vedere come sta cambiando; quello che stanno affrontando ora è l'ultimo set di modifiche alla sintassi prima di andare verso la stabilizzazione e il rilascio della versione 1.0 di linguaggio e runtime library prevista per l'inizio del prossimo anno.
> >
> > Hmmmmrrr... dicono tutti cosi`. Aspetterei che ci arrivino e poi lascerei comunque passare un po' di tempo affinche` dia prova di essersi davvero stabilizzato.
> >
> > > I suoi principali concorrenti sono D della digital mars e Go di google, entrambi garbage collected; mi interessa capire se può diventare il linguaggio general purpouse che copre più use-case senza troppa fatica da aggiungere al mio bagaglio di conoscenze; mi sembra un linguaggio con buone performances, sintassi e compilatore amichevoli, un buon seguito di persone, nessuna pressione o interessi concorrenti alla realizzazione del linguaggio.
> >
> > Per le buone performances, nella mia idea, bisogna quanto meno avere accesso diretto ai registri, tanto per dirne una.
> >
> > e di certo costrutti come il ritorno implicito, che impacchettano l'operazione di ritorno di un valore e ne passano la gestione al compilatore, non aiutano. Fai conto che tra Lino 2 e Lino 3 l'istruzione di ritorno e` stata PERSA in favore della performance. Ti faccio un esempio:
> >
> >> > a = b; > > a + c; > > return [register] a; > >
> >
> > Somma B e C e poi ritorna il registro A.
> > Il compilatore pero` la tradurrebbe in:
> >
> >> > mov eax, ebx > > add eax, ecx > > mov ebp, eax > > ret > >
> >
> > Ma se in Lino 3 scrivi:
> >
> >> > % = b; > > % + c; > > leave; > >
> >
> > ottieni:
> >
> >> > mov ebp, ebx > > add ebp, ecx > > ret > >
> >
> > che sono tre istruzioni, non quattro. Questo perche` come programmatore SAI che ritornerai B + C e usi direttamente il registro dedicato al valore di ritorno come accumulatore. Ovviamente un caso del genere puo` essere considerato da un compilatore sofisticato, ma quando cominci a prendere in considerazione fattori un po' piu` complessi, il compilatore dovrebbe capire cosa sta facendo in relazione a tutto il resto del codice di una funzione da ottimizzare. Piu` roba implicita hai, piu` perdi occasioni (o le complichi a dismisura) per ottimizzare. Per questo penso che linguaggi come Rust possano diventare piu` comodi del C++, ma non significativamente piu` performanti. Pero` se valuti la comodita` e una velocita` decente senza cercare il massimo, fai bene a seguirlo, io non ti seguo e non lo seguo perche` sono un vecchio che vive nel passato e che e` fissato con gli estremi: o vado in javascript e me ne frego della performance ma favorisco qualcosa che esegue out of the box vista l'onnipresenza dei browser, oppure il mio ideale rimane qualcosa come Linoleum. Qualcosa che si mette in mezzo il meno possibile tra te e il bare metal.
>
> Non scrivere 3 istruzioni per fare 1 + 1 è il tipo di compromesso che sembra ragionevole prendere per molti.
Quello si fa anche con un'istruzione sola, se in due registri e` gia` caricato 1. Ma capisco quel che vuoi dire e ti dico che quel passaggio, la serializzazione delle espressioni, introduce nel compilatore vari problemi NP-completi, per cominciare il register naming. Fin qui, CPU e listato C-like sono state due forme diverse e incompatibili. Cosa ci riservi il futuro non saprei, ma per ora e` un po' come l'annosa questione di stendere una sfera su un piano. Il mio approccio con Linoleum e` quello di evitare i passaggi indistricabili proprio come quello tra l'avere l'espressione 1+1 e l'avere le istruzioni corrispondenti: in Lino, scrivi direttamente le corrispondenti, in una forma non specifica della CPU bersaglio ma comunque adatta a un'architettura che e`, molto genericamente, una load-store.-
Re: [quack] A first-person engine in 265 linesScritto daavvelentaniCubicolarioil 2014-06-04 21:10:42.0 alle 2014-06-04 21:10:42.0Trollate totali: 18184Scritto da: altg
> Se per "stare in quella fascia" vanno bene anche perdite di performances spesso tra il 200 e il 300 percento, allora basta.
Palle.
> > > Ma se in Lino 3 scrivi:
> > >
> > >> > > % = b; > > > % + c; > > > leave; > > >
> > >
> > > ottieni:
> > >
> > >> > > mov ebp, ebx > > > add ebp, ecx > > > ret > > >
In Cint f(int a, int b) { return a + b; }
produce quel codice li` e fa constant folding.
I think happiness is love
- Vladimir Putin-
Re: [quack] A first-person engine in 265 linesScritto daaltgutente che non utieneil 2014-06-04 21:19:18.0 alle 2014-06-04 21:19:18.0Trollate totali: 11540> > Se per "stare in quella fascia" vanno bene anche perdite di performances spesso tra il 200 e il 300 percento, allora basta.

>
> Palle.
>
> > > > Ma se in Lino 3 scrivi:
> > > >
> > > >> > > > % = b; > > > > % + c; > > > > leave; > > > >
> > > >
> > > > ottieni:
> > > >
> > > >> > > > mov ebp, ebx > > > > add ebp, ecx > > > > ret > > > >
>
> In C
>
>> int f(int a, int b) { > return a + b; > } >
>
> produce quel codice li` e fa constant folding.
Immagino usi EAX per il ritorno, ma che il codice sia equivalente. E` un esempio semplice. Dovresti provare a tradurre per un po' listatini C in assembly, a mano, e fare benchmarking, poi lo vedi.
-
-
-
-
-
-
-
-
-
Re: [quack] A first-person engine in 265 linesScritto da: altg
> Io ultimamente faccio il tifo per questo sviluppo interamente HTML5
Quelli di Facebook invece vanno nella direzione contraria, dopo aver pianto&bestemmiato per fare un clienti HTML5 per i vari telefonini, hanno optato per "n" applicazioni native.
Avranno avuto le loro buone ragioni ...
> (lo so, all'inizio ero scettico, ma solo gl'imbecilli non cambiano opinione)
Mi pare che la citazione corretta (Benjamin Franklin ?) dicesse che gli stupidi non cambiano opinione.
Ma potrei cambiare opinione
`"la realta' non e' cosi' terrificante come vogliono farti credere" - Giambo ` - Wakko che cita Giambo-
Re: [quack] A first-person engine in 265 linesScritto daaltgutente che non utieneil 2014-06-04 13:46:43.0 alle 2014-06-04 13:46:43.0Trollate totali: 11540> > Io ultimamente faccio il tifo per questo sviluppo interamente HTML5
>
> Quelli di Facebook invece vanno nella direzione contraria, dopo aver pianto&bestemmiato per fare un clienti HTML5 per i vari telefonini, hanno optato per "n" applicazioni native.
> Avranno avuto le loro buone ragioni ...
Facebook e` partito con un'interfaccia utente piena di fronzolame assortito, malamente tenuta insieme dal box model e adatta ad un PC. Poi sono arrivati i dispositivi mobili e ti ci voglio vedere, tutto d'un tratto, a rendere consistente tutta quella roba cambiando anche paradigma d'interfaccia dalla WIMP alla touch. Cydonia ha essenzialmente un canvas come incarnazione HTML e tutto il rendering lo fa li`, bypassando le peculiarita` HTML+CSS che venivano sfruttate prima (tooltips, mouse hovering, iframes...) e per il resto evitando di arricchire la scena con fronzoli il cui rendering dipende dal browser. La scelta di facebook e` la piu` corretta per la loro ingarbugliatissima situazione.
> > (lo so, all'inizio ero scettico, ma solo gl'imbecilli non cambiano opinione)
>
> Mi pare che la citazione corretta (Benjamin Franklin ?) dicesse che gli stupidi non cambiano opinione.
> Ma potrei cambiare opinione
Te ci scherzi ma fra una trollata e l'altra, la dura verita` che s'intravede e` che cambi opinione giusto su quale parola usare in una citazione. Quindi trai le tue conclusioni.
-
Re: [quack] A first-person engine in 265 linesScritto da: Giambo
> Mi pare che la citazione corretta (Benjamin Franklin ?) dicesse che gli stupidi non cambiano opinione.
> Ma potrei cambiare opinione
Solo i morti e gli stupidi non cambiano mai opinione. (James Russell Lowell) (fonte)
Young professional woman and busy mom.
-
-
-
Re: [quack] A first-person engine in 265 linesScritto daNon Autenticatoil 2014-06-04 13:25:04.0 alle 2014-06-04 13:25:04.0Scritto da: ::1
> http://www.playfuljs.com/a-first-person-engine-in-...
grazie al cazzo, è tutta roba wrapperata incapsulata
scrivo un motore, lo faccio diventare una libreria, creo un nuovo programma, importo la libreria e gli dico di far partire il motore dandogli qualche argomento giusto per farlo sembrare originale
ecco fatto, ho scritto un motore con 10 righe di codice
prendi questo gabe nowell!
-
Re: [quack] A first-person engine in 265 linesScritto daSeuTrombeur de femmesil 2014-06-04 18:28:00.0 alle 2014-06-04 18:28:00.0Trollate totali: 2082Scritto da: ::1
> http://www.playfuljs.com/a-first-person-engine-in-...
Vabbè, io ho scritto un cms in 1 riga se è per quello.Atoms & Love-
Re: [quack] A first-person engine in 265 linesScritto daaltgutente che non utieneil 2014-06-04 19:12:35.0 alle 2014-06-04 19:12:35.0Trollate totali: 11540> > http://www.playfuljs.com/a-first-person-engine-in-...

>
> Vabbè, io ho scritto un cms in 1 riga se è per quello.
Una riga e quante colonne?
-
Re: [quack] A first-person engine in 265 linesScritto daSeuTrombeur de femmesil 2014-06-04 19:33:48.0 alle 2014-06-04 19:33:48.0Trollate totali: 2082Scritto da: altg
> > > http://www.playfuljs.com/a-first-person-engine-in-...
> >
> > Vabbè, io ho scritto un cms in 1 riga se è per quello.
>
> Una riga e quante colonne?
130? 200? Non le ho mai contate...Atoms & Love
-
-
-
