Il confine tra un tipo fondamentale e un oggetto è sfocato e spesso introdotto artificialmente. Ad esempio, in C una struct è solo un mucchio di record, solo un tipo derivato non-object. In C ++, una struct è una classe con tutti i campi pubblici, un oggetto. Tuttavia, C ++ è quasi totalmente compatibile all'indietro con C ... il bordo è davvero morbido qui.
Per la programmazione basata su prototipi è necessario avere oggetti mutabili in fase di esecuzione. DEVONO essere digitati in modo soft perché ogni modifica cambia in fase di esecuzione, una classe di un tipo cambia in un'altra: il suo tipo cambia.
Potresti mantenere i tipi fondamentali e derivati non-object come statici. Ma questo introduce una strana disparità, gli oggetti sono tipizzati in modo soft, i non oggetti sono tipizzati staticamente e tra i due deve essere stabilito un hard più difficile. Dovresti essere in grado di trasformare una struttura? Una stringa? Dovrebbe Numero essere una classe o un tipo fondamentale, o un insieme di tipi fondamentali, int / float / bignum / etc?
È semplicemente più naturale e facile da imparare, usare e scrivere per avere questa uniforme, tutti i tipi sono mutabili o nessun tipo è mutabile in fase di runtime. Se dichiari che un solo tipo (oggetto) è mutabile, ti ritroverai con mal di testa e problemi di entrambi i mondi.
Tipo statico:
- più facile da implementare
- più veloce / più efficiente
- sicura
- più facile mantenere / documentare i grandi sistemi a causa dell'astrazione.
La digitazione dinamica è:
- più veloce da scrivere,
- più conciso
- lingua più facile da imparare
- più indulgente per errori di progettazione.
Unendo i due, sacrificherai molto.
- L'implementazione diventa più difficile di una qualsiasi delle due precedenti.
- la velocità dipende se usi i tipi di soft o no ... Se lo fai, è basso, se non lo fai, perché scegliere la lingua?
- digita sicurezza è fuori dalla finestra per tutti i tipi di oggetto.
- seguire come un tipo si trasforma in un altro è un compito piuttosto difficile. Documentandolo - molto difficile.
- Hai ancora bisogno di fare tutta la contabilità con i tipi fondamentali, che uccide la concisione e la velocità di scrittura
- La complessità della lingua è più alta (più difficile da apprendere) di qualsiasi "specifica",
- il termine "permissivo" di un tipo digitato dinamico viene sostituito dalla tendenza ad alcuni errori molto complicati nei tipi di attributi non corrispondenti.