Lo splendore e la povertà dell'OLP - pagina 2

 
Integer:
Perché dovrei capire i meccanismi di compilazione? Solo per credere che un cattivo risultato sia meglio di uno buono?

Scrivere i test correttamente e non ingannare le persone.

Non capite nemmeno cosa avete scritto nei vostri test e cosa state effettivamente testando.


Questa è la conseguenza della formazione di massa in dotnet e linguaggi simili. I programmatori non hanno assolutamente il desiderio di capire cosa funziona davvero e come funziona.

 
Renat:

Scrivere i test correttamente e non ingannare le persone.

Non hai nemmeno capito cosa hai scritto nel tuo test e cosa stai effettivamente testando.


Queste sono le conseguenze della formazione di massa in dotnet e linguaggi simili. I programmatori non hanno assolutamente il desiderio di capire cosa e come funzionano le cose nella realtà.

Ognuno ha i propri paraocchi sugli occhi, come i cavalli (per non vedere troppo).

Uno vede il suo, l'altro vede il suo. Ma questo non significa che entrambi siano giusti o sbagliati.

La verità è da qualche parte vicina.

Lo sviluppatore voleva una cosa e ne ha ottenuta un'altra. Non significa che il compito sia stato portato a termine. Però funziona. Forse non nel modo in cui ci si aspettava o si voleva.

L'utente fa il suo test (che è abbastanza prevedibile). Non significa che il test soddisfi tutte le parti.

La verità è là fuori.

La velocità delle operazioni conta troppo. Questo non è il mio capriccio, questa è la vita.

E bisogna dimostrarlo con prove, non con parole.

 
Vinin:

La velocità di funzionamento conta troppo. Questo non è il mio capriccio, questa è la vita.

E bisogna dimostrarlo con prove, non con parole.

Ho subito fatto notare gli errori nei test proposti. Poi ho spiegato il punto diverse volte.

 

I metodi virtuali saranno sempre più costosi dei metodi normali, ma i test di ottimizzazione dei compilatori dovrebbero essere fatti correttamente con una comprensione di cosa/come viene minimizzato e ottimizzato.

In questo caso, non abbiamo ancora implementato un metodo di ottimizzazione per convertire automaticamente una funzione virtuale in una regolare (altri compilatori lo fanno quando possibile), il che cambierà immediatamente i risultati di questo test e ingannerà di nuovo (una chiamata di metodo virtuale potrebbe essere improvvisamente più veloce di una regolare).

 
Renat:

I metodi virtuali saranno sempre più costosi dei metodi normali, ma i test di ottimizzazione dei compilatori dovrebbero essere fatti correttamente con una comprensione di cosa/come viene minimizzato e ottimizzato.

In questo caso, non abbiamo ancora implementato un metodo di ottimizzazione per convertire automaticamente una funzione virtuale in una regolare (altri compilatori lo fanno quando possibile), il che cambierà immediatamente i risultati di questo test e ingannerà di nuovo (una chiamata di metodo virtuale potrebbe essere improvvisamente più veloce di una regolare).

Cioè - a questo punto, Integer ha ragione. Ed era impossibile da riconoscere e spiegare in una volta sola. O qualcosa lo impedisce?
 
Vinin:
Cioè - in questa fase, Integer ha ragione. Non poteva ammettere e spiegare subito. O c'è qualcosa in mezzo?
Rileggete attentamente l'intero argomento, per favore.
 
Renat:

I metodi virtuali saranno sempre più costosi dei metodi convenzionali, ma i test di ottimizzazione dei compilatori dovrebbero essere fatti correttamente con una comprensione di cosa/come viene minimizzato e ottimizzato.

In questo caso non abbiamo implementato il metodo di ottimizzazione di convertire automaticamente una funzione virtuale in una funzione regolare (altri compilatori lo fanno quando possibile), il che cambierà immediatamente i risultati di questo test e fuorvierà di nuovo (una chiamata di un metodo virtuale potrebbe improvvisamente essere più veloce di uno regolare).

In realtà, non è il compilatore che viene testato, ma due metodi per risolvere lo stesso problema. Non importa come il frigorifero ronza oooh o wooh, è come si congela che conta.

 
Integer:

In realtà, non era il compilatore ad essere testato, ma due metodi per risolvere lo stesso problema. Non importa come il frigorifero ronza oooh o wooh, ciò che conta è come si congela.

Hai fatto un test sbagliato presentando un caso di test semplificato e degenerato. Non è un problema, è un esempio degenerato in niente.

Non hai prestato attenzione all'ottimizzatore del compilatore che ottimizza pesantemente l'opzione delle chiamate dirette ai manichini.

 
Renat:

Avete fatto un test sbagliato presentando un caso di test semplificato e degenerato. Questo non è un compito, ma esattamente un esempio degenerato in niente.

Non hai prestato attenzione all'ottimizzatore del compilatore che ottimizza pesantemente l'opzione delle chiamate dirette ai manichini.

Ci sono state altre due varianti di test dopo questo - 2 con funzioni non vuote e 3 con funzioni uniche - e i risultati sono stati simili. La variante 1 è stata ancora condotta in C#, ma il risultato è stato opposto.
 
Renat:
Rileggete attentamente l'intero argomento, per favore.
Si può leggere all'infinito, ma bisogna dare i fatti. Fate un test e mostrate i numeri. Dobbiamo dimostrare che Integer ha torto. Lui (e non solo lui) ha bisogno di un tale risultato. Anch'io posso parlare molto, ma cerco di non farlo senza fatti. Mi fido dei risultati dei test di Integer. Ma non c'era il contrario, solo parole