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

Wikibooks, manuali e libri di testo liberi.
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica
Riga 1: Riga 1:
{{P|tono colloquiale e espressioni assolutamente inappropriate (come "che idiozia...")|novembre 2008|[[Utente:Zeroalcubo]]}}
{{Assembly}}
{{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à).
Nell'introduzione abbiamo parlato dei motivi per cui è sconveniente studiare l'Assembly. Parliamone
==L'Assembly è difficile da imparare==
==L'Assembly è difficile da imparare==
L'assembly è difficile da imparare perchè rispetto ai linguaggi ad alto livello ha una struttura e anche un metodo di ragionamento più macchinoso (e più lontano al ragionamento dell'uomo), però una volta imparata un tipo di assembly (ce ne sono tanti) passare ad altri tipi è ovviamente facile.
L'assembly è difficile da imparare perchè rispetto ai linguaggi ad alto livello ha una struttura e anche un metodo di ragionamento più macchinoso (e più lontano al ragionamento dell'uomo), però una volta imparata un tipo di assembly (ce ne sono tanti) passare ad altri tipi è ovviamente facile.
Riga 9: Riga 8:


==Con l'Assembly è difficile fare debug==
==Con l'Assembly è difficile fare debug==
Se non hai esperienza con l'Assembly, sarà dura fare un debug dei suoi programmi. Ricordi come era trovare bachi nei tuoi primi programmi in C (o altri HLL)? Ogni volta che impari un nuovo linguaggio di programmazione è difficile '''debuggare'''.
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.


==L'Assembly è difficile da gestire==
==L'Assembly è difficile da gestire==
Anche i programmi in C sono difficili da gestire. Effettivamente, tutti i programmi sono difficili da gestire :). I programmatori inesperti tendono a scrivere programmi difficili da gestire. Scrivere programmi gestibili non è un talento. È un'abilità che si sviluppa con l'esperienza.
Tutti i programmi sono difficili da gestire, spesso i programmatori inesperti tendono a scrivere programmi difficili da gestire e scrivere programmi gestibili non è un talento. È un'abilità che si sviluppa con l'esperienza.

==Programmare in Assembly è una perdita di tempo==
==Programmare in Assembly è una perdita di tempo==
Solo il 15% del tempo in più. Infatti, bravi programmatori Assembly non hanno bisogno del doppio o del triplo del tempo per scrivere in Assembly. È vero che usando gli HLL si risparmia un po' di tempo; comunque, il risparmio è insufficiente per colmare i benefici dell'Assembly.
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==
==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.
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==
==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.
È assurdo come la gente spenda molti soldi per comprare computer più potenti di quello che hanno, ma non vogliono spendere un po' di tempo a scrivere i propri programmi in Assembly e quindi renderli più veloci sullo stesso hardware.

==L'Assembly non è portabile==
==L'Assembly non è portabile==
Questo è il problema più grande dell'Assembly. Un programma in linguaggio Assembly per Intel 80x86 scritto per IBM PC, non partirà su un Apple Macintosh. Poi, un programma Assembly scritto per un Apple Macintosh non partirà su un Amiga, a meno che non abbia lo stesso processore 680x0. Se hai bisogno di far partire lo stesso programma su diverse piattaforme avrai bisogno di riscrivere il programma secondo le convenzioni del processore scelto. Usando il C (o altri HLLs) non è comunque garantito che sarà compatibile sulle altre piattaforme. Programmi C scritti per IBM PC, non partiranno 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. I programmatori rifiutano l'Assembly perché non è portabile, e scrivono comunque programmi non portabili in C, che idiozia... Esistono diverse bugie, mezze-verità sull'assembly. Prima di raccontare ad inesperti che l'Assembly è difficile, prova ad impararlo...
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!


{{capitolo
{{capitolo

Versione delle 05:39, 11 gen 2011

Indice del libro

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à).

L'Assembly è difficile da imparare

L'assembly è difficile da imparare perchè rispetto ai linguaggi ad alto livello ha una struttura e anche un metodo di ragionamento più macchinoso (e più lontano al ragionamento dell'uomo), però una volta imparata un tipo di assembly (ce ne sono tanti) passare ad altri tipi è ovviamente facile.

L'Assembly è difficile da leggere e capire

L'assembly è difficile da leggere solo se non si conosce, però se il programma ha una struttura non adatta può risultare difficile da leggere a chiunque, per cui la facilità a leggere i programmi sia di basso che di alto livello dipende sempre dalla bravura del programmatore che li ha scritti.

Con l'Assembly è difficile fare debug

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.

L'Assembly è difficile da gestire

Tutti i programmi sono difficili da gestire, spesso i programmatori inesperti tendono a scrivere programmi difficili da gestire e scrivere programmi gestibili non è un talento. È 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. 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!

Modulo precedente

Introduzione

Torna a

Assembly

Modulo successivo

Perché studiare l'Assembly