Assembly/Introduzione/Perché non studiare l'Assembly: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Riga 1:
{{Assembly}}
Alcuni dei motivi o delle voci comuni (anche infondate) per cui non si dovrebbe studiare l'assembly (anche se in realtà, una persona deve studiarlo solo per divertimento, conoscenza o utilità)Assembly.
 
==L'Assembly è difficile da imparare?==
L'Assembly viene considerato difficile da imparare perché più vicino al linguaggio macchina rispetto agli altri linguaggi di programmazione, anche se una volta imparato ad usare Assembly per un tipo di architettura, cambiare architettura sarà relativamente semplice.
Line 9 ⟶ 10:
Nonostante ciò, nella comprensione di codice Assembly la cosa più importante resta la bravura del programmatore nell'evitare codice inutile, ridondante e non documentato.
 
==Con l'Assembly è difficile fare debug==
==ModerniI moderni compilatori hanno eliminato la necessità di programmare in Assembly?==
Se non si ha esperienza con l'Assembly, è dura fare un debug dei suoi programmi. In qualsiasi linguaggio di programmazione è difficile fare debugging senza avere esperienza.
Questo non è vero e probabilmente non sarà mai vero.
 
L'astrazione dei linguaggi ad alto livello e la loro portabilità aggiungono un gran numero di layer tra noi e la macchina e diminuiscono la velocità di esecuzione dei programmi, problema di gran rilievo in casi in cui la velocità di esecuzione di un programma è determinante per il successo del programma stesso.
==L'Assembly è difficile da gestire==
Tutti i programmi sono difficili da gestire, spesso i programmatori inesperti tendono a scrivere programmi di difficile lettura e gestione. Scrivere programmi semplici, leggibili e gestibili è un'abilità che si sviluppa con l'esperienza.
 
==Programmare in Assembly è una perdita di tempo==
Solo il 15% del tempo in più. Infatti, i più bravi programmatori Assembly non hanno bisogno del doppio o del triplo del tempo per scrivere in Assembly. È vero che usando i linguaggi ad alto livello si risparmia un po' di tempo; comunque, il risparmio è insufficiente per colmare i benefici dell'Assembly.
 
==Moderni compilatori hanno eliminato la necessità di programmare in Assembly==
Questo non è vero e probabilmente non sarà mai vero. I compilatori stanno migliorando ogni giorno. Comunque, i programmatori scrivono programmi migliori quando usano Assembly. Se un programmatore Assembly scrivesse un programma in C, e poi lo compilasse manualmente, il risultato sarebbe pari o migliore rispetto ad un compilatore C. I compilatori lavorano molto di più rispetto ad un uomo per compilare i programmi.
 
==Oggi i computer sono talmente veloci che non hanno bisogno dell'Assembly==
Il tempo è denaro, perciò fare programmi più veloci potrebbe non essere richiesta di alcune persone, ma c'è sempre quel qualcuno a cui fa comodo, anche perché c'è sempre chi non spende tanti soldi per avere un computer recente, perciò si tiene i vecchi computer che vanno più lenti.
 
==L'Assembly non è portabile==
Questo è il problema più grande dell'Assembly, la sua portabilità.
Questo è il problema più grande dell'Assembly. Un programma in linguaggio Assembly per Intel 80x86 scritto per IBM PC, non partirà mai su un Apple Macintosh. Poi, un programma Assembly scritto per un Apple Macintosh non partirà mai su un Amiga, a meno che non abbia lo stesso processore 680x0. Se si ha bisogno di far partire lo stesso programma su diverse piattaforme sarà necessario riscrivere il programma secondo le convenzioni del processore scelto. Usando il C (o altri linguaggi ad alto livello) non è comunque garantito che sarà compatibile sulle altre piattaforme. Programmi C scritti per PC IBM, non partiranno mai su un Macintosh. E se dovessero partire, non darebbero gli stessi risultati. La non portabilità del linguaggio è forse la scusa più valida per non imparare l'Assembly (perché i motivi per farlo sono tanti). I programmatori che rifiutano l'Assembly perché non è portabile, non sono programmatori (o almeno non sono bravi). Esistono diverse bugie, mezze-verità sull'assembly. Prima di raccontare ad inesperti che l'Assembly è difficile, è necessario impararlo!
Ogni programma scritto in Assembly infatti presenta peculiarità univoche della piattaforma su cui stiamo sviluppando, il che rende la portabilità del codice Assembly quasi assente.
A fronte di questi svantaggi, il controllo sull'hardware e la sua velocità ancora rendono l'Assembly un must have per una grande fetta di programmatori.
 
{{capitolo