Da 2 a 5.000Originariamente inviato da Daisyland
Dopo aver letto tutto questo faccio una domanda, magari senza senso.
So che se ne parla in altri thread, ma team che progettano un sistema operativo in genere da quante persone sono composte ?
soprattutto per scrivere piccole parti di codice che devono essere particolarmente efficienti e CPU-bound.E, altra domanda, l'assembly oggi per cosa puo' essere utile, soprattutto ?
Un qualsiasi programma con interfaccia GUI, ad esempio, non (nella stragrande maggior parte dei casi) ha alcun interesse per porzioni di codice assembler.
il tempo che impiega un utente a cliccare un bottone o leggere la risposta è enormemente superiore alla differenza tra una certa procedura in C ed una in assembler (per fare un esempio).
---
Cambia invece il discorso ove, ad esempio, vuoi implementare un metodo efficiente (anzi il più efficiente possibile) per calcolare l'hash di una certa porzione di memoria, "zippare" o magari ottimizzare combinatorialmente dei parametri per una pianificazione di produzione.
In questo caso un "buon" programmatore [buon=almeno 10 anni di esperienza] può scriverti un codice anche 3 volte più veloce di uno C.
Ma c'è un grossissimo "ma".
Visto che le prestazioni NON scalano verticalmente, ma ormai solo orizzontalmente, un algoritmo computazionalmente pesante va affrontato parallelizzandolo, più che rendendolo efficiente nella sua codifica.
Ecco spiegato perchè anche per applicazioni CPU-bound, assembler è sempre meno impiegato.
Se per la legge di amdahl la cosa ti interessa bene, altrimenti ecco spiegato perchè oggi è assai poco diffuso (o comunque enormemente meno rispetto anche solo a 15-20 anni fa)
L'ultimo programma "in gran parte" in assembler che ho fatto era... la parte di calcolo delle statistiche per il totocalcio per migliorare il tempo di generazione.
Ma l'intera interfaccia è in Pascal.
L'ultimo programma 100% in assembler che ho scritto è... mmmhhh... un videogioco di calcio per amiga, mentre per C64 tutti i giochi erano in assembler

Rispondi quotando
